Skip to content

Commit bef7f2a

Browse files
authored
Merge pull request microsoft#159066 from microsoft/aeschli/terminalDecorationIcons
move terminal decorator icon ids to terminalIcons
2 parents ab78baf + 36ef1e4 commit bef7f2a

File tree

3 files changed

+11
-29
lines changed

3 files changed

+11
-29
lines changed

src/vs/base/common/codicons.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ export class Codicon implements CSSIcon {
9696
public static readonly circleFilled = new Codicon('circle-filled', { fontCharacter: '\\ea71' });
9797
public static readonly primitiveDot = new Codicon('primitive-dot', Codicon.circleFilled.definition);
9898
public static readonly closeDirty = new Codicon('close-dirty', Codicon.circleFilled.definition);
99-
public static readonly terminalDecorationSuccess = new Codicon('terminal-decoration-success', Codicon.circleFilled.definition);
10099
public static readonly debugBreakpoint = new Codicon('debug-breakpoint', Codicon.circleFilled.definition);
101100
public static readonly debugBreakpointDisabled = new Codicon('debug-breakpoint-disabled', Codicon.circleFilled.definition);
102101
public static readonly debugHint = new Codicon('debug-hint', Codicon.circleFilled.definition);
@@ -221,7 +220,6 @@ export class Codicon implements CSSIcon {
221220
public static readonly chromeRestore = new Codicon('chrome-restore', { fontCharacter: '\\eabb' });
222221
public static readonly circle = new Codicon('circle', { fontCharacter: '\\eabc' });
223222
public static readonly circleOutline = new Codicon('circle-outline', Codicon.circle.definition);
224-
public static readonly terminalDecorationIncomplete = new Codicon('terminal-decoration-incomplete', Codicon.circle.definition);
225223
public static readonly debugBreakpointUnverified = new Codicon('debug-breakpoint-unverified', Codicon.circle.definition);
226224
public static readonly circleSlash = new Codicon('circle-slash', { fontCharacter: '\\eabd' });
227225
public static readonly circuitBoard = new Codicon('circuit-board', { fontCharacter: '\\eabe' });
@@ -433,7 +431,6 @@ export class Codicon implements CSSIcon {
433431
public static readonly debugStackframeActive = new Codicon('debug-stackframe-active', { fontCharacter: '\\eb89' });
434432
public static readonly circleSmallFilled = new Codicon('circle-small-filled', { fontCharacter: '\\eb8a' });
435433
public static readonly debugStackframeDot = new Codicon('debug-stackframe-dot', Codicon.circleSmallFilled.definition);
436-
public static readonly terminalDecorationMark = new Codicon('terminal-decoration-mark', Codicon.circleSmallFilled.definition);
437434
public static readonly debugStackframe = new Codicon('debug-stackframe', { fontCharacter: '\\eb8b' });
438435
public static readonly debugStackframeFocused = new Codicon('debug-stackframe-focused', { fontCharacter: '\\eb8b' });
439436
public static readonly debugBreakpointUnsupported = new Codicon('debug-breakpoint-unsupported', { fontCharacter: '\\eb8c' });
@@ -554,7 +551,6 @@ export class Codicon implements CSSIcon {
554551
public static readonly indent = new Codicon('indent', { fontCharacter: '\\ebf9' });
555552
public static readonly recordSmall = new Codicon('record-small', { fontCharacter: '\\ebfa' });
556553
public static readonly errorSmall = new Codicon('error-small', { fontCharacter: '\\ebfb' });
557-
public static readonly terminalDecorationError = new Codicon('terminal-decoration-error', Codicon.errorSmall.definition);
558554
public static readonly arrowCircleDown = new Codicon('arrow-circle-down', { fontCharacter: '\\ebfc' });
559555
public static readonly arrowCircleLeft = new Codicon('arrow-circle-left', { fontCharacter: '\\ebfd' });
560556
public static readonly arrowCircleRight = new Codicon('arrow-circle-right', { fontCharacter: '\\ebfe' });

src/vs/workbench/contrib/terminal/browser/terminalIcons.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,8 @@ export const killTerminalIcon = registerIcon('terminal-kill', Codicon.trash, loc
1414
export const newTerminalIcon = registerIcon('terminal-new', Codicon.add, localize('newTerminalIcon', 'Icon for creating a new terminal instance.'));
1515

1616
export const configureTerminalProfileIcon = registerIcon('terminal-configure-profile', Codicon.gear, localize('configureTerminalProfileIcon', 'Icon for creating a new terminal profile.'));
17+
18+
export const terminalDecorationMark = registerIcon('terminal-decoration-mark', Codicon.circleSmallFilled, localize('terminalDecorationMark', 'Icon for a terminal decoration mark.'));
19+
export const terminalDecorationIncomplete = registerIcon('terminal-decoration-incomplete', Codicon.circle, localize('terminalDecorationIncomplete', 'Icon for a terminal decoration of a command that was incomplete.'));
20+
export const terminalDecorationError = registerIcon('terminal-decoration-error', Codicon.errorSmall, localize('terminalDecorationError', 'Icon for a terminal decoration of a command that errored.'));
21+
export const terminalDecorationSuccess = registerIcon('terminal-decoration-success', Codicon.circleFilled, localize('terminalDecorationSuccess', 'Icon for a terminal decoration of a command that was successful.'));

src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.ts

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { IDecoration, ITerminalAddon, Terminal } from 'xterm';
99
import * as dom from 'vs/base/browser/dom';
1010
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
1111
import { CommandInvalidationReason, ITerminalCapabilityStore, TerminalCapability } from 'vs/platform/terminal/common/capabilities/capabilities';
12-
import { IColorTheme, ICssStyleCollector, IThemeService, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
12+
import { IColorTheme, ICssStyleCollector, IThemeService, registerThemingParticipant, ThemeIcon } from 'vs/platform/theme/common/themeService';
1313
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
1414
import { IHoverService } from 'vs/workbench/services/hover/browser/hover';
1515
import { IAction, Separator } from 'vs/base/common/actions';
@@ -26,8 +26,8 @@ import { Color } from 'vs/base/common/color';
2626
import { IOpenerService } from 'vs/platform/opener/common/opener';
2727
import { IGenericMarkProperties } from 'vs/platform/terminal/common/terminalProcess';
2828
import { IQuickInputService, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput';
29-
import { Codicon } from 'vs/base/common/codicons';
3029
import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle';
30+
import { terminalDecorationError, terminalDecorationIncomplete, terminalDecorationMark, terminalDecorationSuccess } from 'vs/workbench/contrib/terminal/browser/terminalIcons';
3131

3232
const enum DecorationSelector {
3333
CommandDecoration = 'terminal-command-decoration',
@@ -333,7 +333,7 @@ export class DecorationAddon extends Disposable implements ITerminalAddon {
333333
element.classList.add(DecorationSelector.CommandDecoration, DecorationSelector.Codicon, DecorationSelector.XtermDecoration);
334334

335335
if (genericMarkProperties) {
336-
element.classList.add(DecorationSelector.DefaultColor, ...Codicon.terminalDecorationMark.classNamesArray);
336+
element.classList.add(DecorationSelector.DefaultColor, ...ThemeIcon.asClassNameArray(terminalDecorationMark));
337337
if (!genericMarkProperties.hoverMessage) {
338338
//disable the mouse pointer
339339
element.classList.add(DecorationSelector.Default);
@@ -343,12 +343,12 @@ export class DecorationAddon extends Disposable implements ITerminalAddon {
343343
this._updateCommandDecorationVisibility(element);
344344
if (exitCode === undefined) {
345345
element.classList.add(DecorationSelector.DefaultColor, DecorationSelector.Default);
346-
element.classList.add(...Codicon.terminalDecorationIncomplete.classNamesArray);
346+
element.classList.add(...ThemeIcon.asClassNameArray(terminalDecorationIncomplete));
347347
} else if (exitCode) {
348348
element.classList.add(DecorationSelector.ErrorColor);
349-
element.classList.add(...Codicon.terminalDecorationError.classNamesArray);
349+
element.classList.add(...ThemeIcon.asClassNameArray(terminalDecorationError));
350350
} else {
351-
element.classList.add(...Codicon.terminalDecorationSuccess.classNamesArray);
351+
element.classList.add(...ThemeIcon.asClassNameArray(terminalDecorationSuccess));
352352
}
353353
}
354354
}
@@ -454,32 +454,13 @@ export class DecorationAddon extends Disposable implements ITerminalAddon {
454454
quickPick.onDidAccept(async e => {
455455
quickPick.hide();
456456
const result = quickPick.activeItems[0];
457-
let iconSetting: string | undefined;
458457
switch (result.id) {
459458
case 'a': this._showToggleVisibilityQuickPick(); break;
460459
}
461-
if (iconSetting) {
462-
this._showChangeIconQuickPick(iconSetting);
463-
}
464460
});
465461
quickPick.show();
466462
}
467463

468-
private async _showChangeIconQuickPick(iconSetting: string) {
469-
type Item = IQuickPickItem & { icon: Codicon };
470-
const items: Item[] = [];
471-
for (const icon of Codicon.getAll()) {
472-
items.push({ label: `$(${icon.id})`, description: `${icon.id}`, icon });
473-
}
474-
const result = await this._quickInputService.pick(items, {
475-
matchOnDescription: true
476-
});
477-
if (result) {
478-
this._configurationService.updateValue(iconSetting, result.icon.id);
479-
this._showConfigureCommandDecorationsQuickPick();
480-
}
481-
}
482-
483464
private _showToggleVisibilityQuickPick() {
484465
const quickPick = this._quickInputService.createQuickPick();
485466
quickPick.hideInput = true;

0 commit comments

Comments
 (0)