From d0fa890a6521fce10ebda2a2bb793ca0a55b08d5 Mon Sep 17 00:00:00 2001 From: BeniBenj Date: Sat, 9 Dec 2023 15:00:13 +0100 Subject: [PATCH] Refactored getIconClasses function to accept optional ThemeIcon parameter and updated its usage across multiple files --- src/vs/editor/common/services/getIconClasses.ts | 6 +++++- src/vs/workbench/browser/labels.ts | 7 ++----- src/vs/workbench/browser/parts/editor/editorQuickAccess.ts | 2 +- .../contrib/search/browser/anythingQuickAccess.ts | 4 +++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/vs/editor/common/services/getIconClasses.ts b/src/vs/editor/common/services/getIconClasses.ts index bc3da1e5e6c..0df1d17f6ee 100644 --- a/src/vs/editor/common/services/getIconClasses.ts +++ b/src/vs/editor/common/services/getIconClasses.ts @@ -10,10 +10,14 @@ import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry' import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { FileKind } from 'vs/platform/files/common/files'; +import { ThemeIcon } from 'vs/base/common/themables'; const fileIconDirectoryRegex = /(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/; -export function getIconClasses(modelService: IModelService, languageService: ILanguageService, resource: uri | undefined, fileKind?: FileKind): string[] { +export function getIconClasses(modelService: IModelService, languageService: ILanguageService, resource: uri | undefined, fileKind?: FileKind, icon?: ThemeIcon): string[] { + if (icon) { + return [`codicon-${icon.id}`, 'product-icon']; + } // we always set these base classes even if we do not have a path const classes = fileKind === FileKind.ROOT_FOLDER ? ['rootfolder-icon'] : fileKind === FileKind.FOLDER ? ['folder-icon'] : ['file-icon']; diff --git a/src/vs/workbench/browser/labels.ts b/src/vs/workbench/browser/labels.ts index 4fe48917bf0..93309d1daf4 100644 --- a/src/vs/workbench/browser/labels.ts +++ b/src/vs/workbench/browser/labels.ts @@ -579,11 +579,8 @@ class ResourceLabelWidget extends IconLabel { if (this.options && !this.options.hideIcon) { if (!this.computedIconClasses) { - if (this.options.icon) { - this.computedIconClasses = [`codicon-${this.options.icon.id}`, 'product-icon']; - } else { - this.computedIconClasses = getIconClasses(this.modelService, this.languageService, resource, this.options.fileKind); - } + this.computedIconClasses = getIconClasses(this.modelService, this.languageService, resource, this.options.fileKind, this.options.icon); + } iconLabelOptions.extraClasses = this.computedIconClasses.slice(0); diff --git a/src/vs/workbench/browser/parts/editor/editorQuickAccess.ts b/src/vs/workbench/browser/parts/editor/editorQuickAccess.ts index 26553c5730f..225330438f6 100644 --- a/src/vs/workbench/browser/parts/editor/editorQuickAccess.ts +++ b/src/vs/workbench/browser/parts/editor/editorQuickAccess.ts @@ -157,7 +157,7 @@ export abstract class BaseEditorQuickAccessProvider extends PickerQuickAccessPro return isDirty ? localize('entryAriaLabelDirty', "{0}, unsaved changes", nameAndDescription) : nameAndDescription; })(), description, - iconClasses: getIconClasses(this.modelService, this.languageService, resource).concat(editor.getLabelExtraClasses()), + iconClasses: getIconClasses(this.modelService, this.languageService, resource, undefined, editor.getIcon()).concat(editor.getLabelExtraClasses()), italic: !this.editorGroupService.getGroup(groupId)?.isPinned(editor), buttons: (() => { return [ diff --git a/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts b/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts index 35317213619..44360742523 100644 --- a/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts +++ b/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts @@ -951,6 +951,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider getIconClasses(this.modelService, this.languageService, resource).concat(extraClasses)); + const iconClassesValue = new Lazy(() => getIconClasses(this.modelService, this.languageService, resource, undefined, icon).concat(extraClasses)); const buttonsValue = new Lazy(() => { const openSideBySideDirection = configuration.openSideBySideDirection;