mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-15 16:34:50 +01:00
Terminal: Don't use codicon.iconRegistry, use platform/theme/common/iconRegistry
This commit is contained in:
@@ -3,10 +3,11 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { Codicon, iconRegistry } from 'vs/base/common/codicons';
|
||||
import { Codicon } from 'vs/base/common/codicons';
|
||||
import { hash } from 'vs/base/common/hash';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { IExtensionTerminalProfile, ITerminalProfile } from 'vs/platform/terminal/common/terminal';
|
||||
import { getIconRegistry } from 'vs/platform/theme/common/iconRegistry';
|
||||
import { ColorScheme } from 'vs/platform/theme/common/theme';
|
||||
import { IColorTheme, ThemeIcon } from 'vs/platform/theme/common/themeService';
|
||||
import { ITerminalInstance } from 'vs/workbench/contrib/terminal/browser/terminal';
|
||||
@@ -94,7 +95,7 @@ export function getUriClasses(terminal: ITerminalInstance | IExtensionTerminalPr
|
||||
let uri = undefined;
|
||||
|
||||
if (extensionContributed) {
|
||||
if (typeof icon === 'string' && (icon.startsWith('$(') || iconRegistry.get(icon))) {
|
||||
if (typeof icon === 'string' && (icon.startsWith('$(') || getIconRegistry().getIcon(icon))) {
|
||||
return iconClasses;
|
||||
} else if (typeof icon === 'string') {
|
||||
uri = URI.parse(icon);
|
||||
|
||||
@@ -1798,15 +1798,16 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
}
|
||||
|
||||
async changeIcon() {
|
||||
const items: IQuickPickItem[] = [];
|
||||
type Item = IQuickPickItem & { icon: TerminalIcon };
|
||||
const items: Item[] = [];
|
||||
for (const icon of iconRegistry.all) {
|
||||
items.push({ label: `$(${icon.id})`, description: `${icon.id}` });
|
||||
items.push({ label: `$(${icon.id})`, description: `${icon.id}`, icon });
|
||||
}
|
||||
const result = await this._quickInputService.pick(items, {
|
||||
matchOnDescription: true
|
||||
});
|
||||
if (result && result.description) {
|
||||
this._icon = iconRegistry.get(result.description);
|
||||
if (result) {
|
||||
this._icon = result.icon;
|
||||
this._onIconChanged.fire(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { iconRegistry, Codicon } from 'vs/base/common/codicons';
|
||||
import { Codicon } from 'vs/base/common/codicons';
|
||||
import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { IQuickInputService, IKeyMods, IPickOptions, IQuickPickSeparator, IQuickInputButton, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput';
|
||||
import { IExtensionTerminalProfile, ITerminalProfile, ITerminalProfileObject, TerminalSettingPrefix } from 'vs/platform/terminal/common/terminal';
|
||||
@@ -14,6 +14,7 @@ import { IThemeService, ThemeIcon } from 'vs/platform/theme/common/themeService'
|
||||
import { ITerminalProfileService } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { IQuickPickTerminalObject, ITerminalInstance } from 'vs/workbench/contrib/terminal/browser/terminal';
|
||||
import { IPickerQuickAccessItem } from 'vs/platform/quickinput/browser/pickerQuickAccess';
|
||||
import { getIconRegistry } from 'vs/platform/theme/common/iconRegistry';
|
||||
|
||||
|
||||
type DefaultProfileName = string;
|
||||
@@ -144,10 +145,17 @@ export class TerminalProfileQuickpick {
|
||||
quickPickItems.push({ type: 'separator', label: nls.localize('ICreateContributedTerminalProfileOptions', "contributed") });
|
||||
const contributedProfiles: IProfileQuickPickItem[] = [];
|
||||
for (const contributed of this._terminalProfileService.contributedProfiles) {
|
||||
if (typeof contributed.icon === 'string' && contributed.icon.startsWith('$(')) {
|
||||
contributed.icon = contributed.icon.substring(2, contributed.icon.length - 1);
|
||||
let icon: ThemeIcon | undefined;
|
||||
if (typeof contributed.icon === 'string') {
|
||||
if (contributed.icon.startsWith('$(')) {
|
||||
icon = ThemeIcon.fromString(contributed.icon);
|
||||
} else {
|
||||
icon = ThemeIcon.fromId(contributed.icon);
|
||||
}
|
||||
}
|
||||
if (!icon || !getIconRegistry().getIcon(icon.id)) {
|
||||
icon = Codicon.terminal;
|
||||
}
|
||||
const icon = contributed.icon && typeof contributed.icon === 'string' ? (iconRegistry.get(contributed.icon) || Codicon.terminal) : Codicon.terminal;
|
||||
const uriClasses = getUriClasses(contributed, this._themeService.getColorTheme().type, true);
|
||||
const colorClass = getColorClass(contributed);
|
||||
const iconClasses = [];
|
||||
|
||||
@@ -15,7 +15,7 @@ import { IProcessEnvironment, OperatingSystem, OS } from 'vs/base/common/platfor
|
||||
import { IShellLaunchConfig, ITerminalProfile, ITerminalProfileObject, TerminalIcon, TerminalSettingId, TerminalSettingPrefix } from 'vs/platform/terminal/common/terminal';
|
||||
import { IShellLaunchConfigResolveOptions, ITerminalProfileResolverService, ITerminalProfileService } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import * as path from 'vs/base/common/path';
|
||||
import { Codicon, iconRegistry } from 'vs/base/common/codicons';
|
||||
import { Codicon } from 'vs/base/common/codicons';
|
||||
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
|
||||
import { debounce } from 'vs/base/common/decorators';
|
||||
import { ThemeIcon } from 'vs/platform/theme/common/themeService';
|
||||
@@ -172,7 +172,7 @@ export abstract class BaseTerminalProfileResolverService implements ITerminalPro
|
||||
return undefined;
|
||||
}
|
||||
if (typeof icon === 'string') {
|
||||
return iconRegistry.get(icon);
|
||||
return ThemeIcon.fromId(icon);
|
||||
}
|
||||
if (ThemeIcon.isThemeIcon(icon)) {
|
||||
return icon;
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
import * as dom from 'vs/base/browser/dom';
|
||||
import { timeout } from 'vs/base/common/async';
|
||||
import { Codicon, iconRegistry } from 'vs/base/common/codicons';
|
||||
import { debounce } from 'vs/base/common/decorators';
|
||||
import { Emitter, Event } from 'vs/base/common/event';
|
||||
import { dispose, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
|
||||
@@ -20,7 +19,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { ICreateContributedTerminalProfileOptions, IShellLaunchConfig, ITerminalLaunchError, ITerminalsLayoutInfo, ITerminalsLayoutInfoById, TerminalLocation, TerminalLocationString } from 'vs/platform/terminal/common/terminal';
|
||||
import { iconForeground } from 'vs/platform/theme/common/colorRegistry';
|
||||
import { IconDefinition } from 'vs/platform/theme/common/iconRegistry';
|
||||
import { getIconRegistry, IconContribution } from 'vs/platform/theme/common/iconRegistry';
|
||||
import { ColorScheme } from 'vs/platform/theme/common/theme';
|
||||
import { IThemeService, Themable, ThemeIcon } from 'vs/platform/theme/common/themeService';
|
||||
import { VirtualWorkspaceContext } from 'vs/workbench/browser/contextkeys';
|
||||
@@ -1126,16 +1125,16 @@ class TerminalEditorStyle extends Themable {
|
||||
);
|
||||
}
|
||||
if (ThemeIcon.isThemeIcon(icon)) {
|
||||
const codicon = iconRegistry.get(icon.id);
|
||||
if (codicon) {
|
||||
let def: Codicon | IconDefinition = codicon;
|
||||
while ('definition' in def) {
|
||||
def = def.definition;
|
||||
const iconRegistry = getIconRegistry();
|
||||
const iconContribution = iconRegistry.getIcon(icon.id);
|
||||
if (iconContribution) {
|
||||
const def = IconContribution.getDefinition(iconContribution, iconRegistry);
|
||||
if (def) {
|
||||
css += (
|
||||
`.monaco-workbench .terminal-tab.codicon-${icon.id}::before` +
|
||||
`{content: '${def.fontCharacter}' !important; font-family: ${dom.asCSSPropertyValue(def.fontId ?? 'codicon')} !important;}`
|
||||
);
|
||||
}
|
||||
css += (
|
||||
`.monaco-workbench .terminal-tab.codicon-${icon.id}::before` +
|
||||
`{content: '${def.fontCharacter}' !important;}`
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user