From 7dd3beac02d726e20af31eaf164f7f6cb0fa4201 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 26 Sep 2016 10:05:37 +0200 Subject: [PATCH] Folder icons do not respect theme (fixes #12443) --- src/vs/workbench/browser/labels.ts | 33 ++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/vs/workbench/browser/labels.ts b/src/vs/workbench/browser/labels.ts index 718d1978fc1..fedacda0e3a 100644 --- a/src/vs/workbench/browser/labels.ts +++ b/src/vs/workbench/browser/labels.ts @@ -135,27 +135,38 @@ export function getIconClasses(modeService: IModeService, arg1?: uri | string, i path = arg1.fsPath; } + // we always set these base classes even if we do not have a path const classes = isFolder ? ['folder-icon'] : ['file-icon']; if (path) { const basename = paths.basename(path); const dotSegments = basename.split('.'); - const name = dotSegments[0]; // file.txt => "file", .dockerfile => "", file.some.txt => "file" - if (name) { - classes.push(`${cssEscape(name.toLowerCase())}-name-file-icon`); + // Folders + if (isFolder) { + if (basename) { + classes.push(`${basename.toLowerCase()}-name-folder-icon`); + } } - const extensions = dotSegments.splice(1); - if (extensions.length > 0) { - for (let i = 0; i < extensions.length; i++) { - classes.push(`${cssEscape(extensions.slice(i).join('.').toLowerCase())}-ext-file-icon`); // add each combination of all found extensions if more than one + // Files + else { + const name = dotSegments[0]; // file.txt => "file", .dockerfile => "", file.some.txt => "file" + if (name) { + classes.push(`${cssEscape(name.toLowerCase())}-name-file-icon`); } - } - const langId = modeService.getModeIdByFilenameOrFirstLine(path); - if (langId) { - classes.push(`${cssEscape(langId)}-lang-file-icon`); + const extensions = dotSegments.splice(1); + if (extensions.length > 0) { + for (let i = 0; i < extensions.length; i++) { + classes.push(`${cssEscape(extensions.slice(i).join('.').toLowerCase())}-ext-file-icon`); // add each combination of all found extensions if more than one + } + } + + const langId = modeService.getModeIdByFilenameOrFirstLine(path); + if (langId) { + classes.push(`${cssEscape(langId)}-lang-file-icon`); + } } } -- GitLab