Skip to content

Commit 1a9bd25

Browse files
JimiCrobertohuertasm
authored andcommitted
Add ability to set the custom icons folder path. (vscode-icons#1087)
* Add ability to set the custom icons folder path. * Add Chinese (Simplified) translation. * Apply proposed changes. * Add German translation. * Add Itallian translation. * Add Spanish translation. * Apply function renamings. * Refactor 'restoreManifest' to use straightly the 'generateJson' func. * Add Russian translation. * Resolve conflicts. * Resolve conflicts again.
1 parent 8e7a66c commit 1a9bd25

22 files changed

+356
-146
lines changed

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,11 @@
166166
"default": false,
167167
"description": "%configuration.presets.foldersAllDefaultIcon.description%"
168168
},
169+
"vsicons.customIconFolderPath": {
170+
"type": "string",
171+
"default": "",
172+
"description": "%configuration.customIconFolderPath.description%"
173+
},
169174
"vsicons.associations.files": {
170175
"type": "array",
171176
"default": [],

package.nls.de.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"command.restoreIcons.title": "Icon-Manifest zurücksetzen",
1111
"command.resetProjectDetectionDefaults.title": "Projekterkennung auf Standardwerte zurücksetzen",
1212
"configuration.title": "vscode-icons Konfiguration",
13-
"configuration.dontShowNewVersionMessage.description": "Wenn auf 'true' gesetzt, zeigt die Erweiterung keine Benachrichtigung nach dem Installieren einer neuen Version an",
13+
"configuration.dontShowNewVersionMessage.description": "Wenn auf 'true' gesetzt, zeigt die Erweiterung keine Benachrichtigung nach dem Installieren einer neuen Version an.",
1414
"configuration.dontShowConfigManuallyChangedMessage.description": "Wenn auf 'true' gesetzt, wird bei manuellen Änderungen an der Konfiguration keine 'Neu starten'-Nachricht angezeigt.",
1515
"configuration.projectDetection.autoReload.description": "Wenn auf 'true' gesetzt, wird die Erweiterung nach Erkennen eines Projektes Code automatisch neu starten.",
1616
"configuration.projectDetection.disableDetect.description": "Wenn auf 'true' gesetzt, wird die Erweiterung nach zukünftigen Projekten, für die es optimierte Icons gibt, nicht weiter suchen.",
@@ -20,6 +20,7 @@
2020
"configuration.presets.jsonOfficial.description": "Wenn auf 'true' gesetzt, wird die Erweiterung das offizielle JSON Icon benutzen.",
2121
"configuration.presets.hideFolders.description": "Wenn auf 'true' gesetzt, werden keine Ordner-Icons angezeigt.",
2222
"configuration.presets.foldersAllDefaultIcon.description": "Wenn auf 'true' gesetzt, werden keine speziellen Ordner-Icons angezeigt.",
23+
"configuration.customIconFolderPath.description": "Der absolute Pfad zu dem Oberverzeichnis wo die benutzerdefinierten Icons in einem Unterordner liegen.",
2324
"configuration.associations.files.description": "Diese benutzerdefinierten Datei-Icon-Zuweisungen werden die standardmäßigen Zuweisungen überschreiben.",
2425
"configuration.associations.folders.description": "Diese benutzerdefinierten Ordner-Icon-Zuweisungen werden die standardmäßigen Zuweisungen überschreiben.",
2526
"configuration.associations.fileDefault.file.description": "Mittels dieser Einstellung ist es dir möglich, ein anderes standardmäßiges, dunkleres Datei-Icon zuzuweisen.",

package.nls.es.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"configuration.presets.jsonOfficial.description": "Si 'true', la extensión usará el icono oficial de JSON.",
2121
"configuration.presets.hideFolders.description": "Si 'true', los iconos de carpeta no serán visibles.",
2222
"configuration.presets.foldersAllDefaultIcon.description": "Si 'true', todas las carpetas tendrán el mismo icono genérico.",
23+
"configuration.customIconFolderPath.description": "La ruta física del directorio padre del directorio de iconos personalizados que reside en la máquina local.",
2324
"configuration.associations.files.description": "Estas asociaciones personalizadas sobrescribirán las asosociaciones de archivo definidas por defecto.",
2425
"configuration.associations.folders.description": "Estas asociaciones personalizadas sobrescribirán las asosociaciones de carpeta definidas por defecto.",
2526
"configuration.associations.fileDefault.file.description": "Este ajuste permite cambiar el icono de archivo por defecto para los temas oscuros.",

package.nls.it.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"configuration.presets.jsonOfficial.description": "Se 'true', l'estensione userà l'icona ufficiale JSON.",
2121
"configuration.presets.hideFolders.description": "Se 'true', tutte le icone delle cartelle saranno nascoste.",
2222
"configuration.presets.foldersAllDefaultIcon.description": "Se 'true', tutte le cartelle avranno l'icona predefinita.",
23+
"configuration.customIconFolderPath.description": "Il percorso fisico alla cartella padre, dove la cartella delle icone personalizzate risiede sulla macchina locale.",
2324
"configuration.associations.files.description": "Queste associazioni personalizzate sovrascriveranno le associazioni delle icone per file predefinite.",
2425
"configuration.associations.folders.description": "Queste associazioni personalizzate sovrascriveranno le associazioni delle icone per cartelle predefinite.",
2526
"configuration.associations.fileDefault.file.description": "Questa impostazione ti premetterà di cambiare l'icona oscura per file predefinita.",

package.nls.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"configuration.presets.jsonOfficial.description": "If set to true, the extension will use the official JSON icon.",
2121
"configuration.presets.hideFolders.description": "If set to true, all folders will be hidden.",
2222
"configuration.presets.foldersAllDefaultIcon.description": "If set to true, all folders will have the default folder icon.",
23+
"configuration.customIconFolderPath.description": "The physical path to the parent folder where the custom icons folder resides on your local machine",
2324
"configuration.associations.files.description": "These custom associations will override the file icon associations defined by default.",
2425
"configuration.associations.folders.description": "These custom associations will override the folder icon associations defined by default.",
2526
"configuration.associations.fileDefault.file.description": "This setting will let you change default dark file icon.",

package.nls.ru.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"configuration.presets.jsonOfficial.description": "Если установлено значение true, будет применяться официальный значок JSON файла",
2121
"configuration.presets.hideFolders.description": "Если установлено значение true, все значки папок будут скрыты",
2222
"configuration.presets.foldersAllDefaultIcon.description": "Если установлено значение true, все папки будут иметь стандартный значок",
23+
"configuration.customIconFolderPath.description": "Абсолютный путь до директории на этом компьютере в которой находится папка с пользовательскими значками",
2324
"configuration.associations.files.description": "Эти настройки переопределят настройки значков файлов по-умолчанию",
2425
"configuration.associations.folders.description": "Эти настройки переопределят настройки значков папок по-умолчанию",
2526
"configuration.associations.fileDefault.file.description": "Настройка позволяет переопределить темный значок файла по-умолчанию",

package.nls.template.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"configuration.presets.jsonOfficial.description": "",
2121
"configuration.presets.hideFolders.description": "",
2222
"configuration.presets.foldersAllDefaultIcon.description": "",
23+
"configuration.customIconFolderPath.description": "",
2324
"configuration.associations.files.description": "",
2425
"configuration.associations.folders.description": "",
2526
"configuration.associations.fileDefault.file.description": "",

package.nls.zh-cn.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"configuration.presets.jsonOfficial.description": "如果设置成 true,插件会自动使用官方 JSON 图标",
2121
"configuration.presets.hideFolders.description": "如果设置成 true,所有文件夹会隐藏",
2222
"configuration.presets.foldersAllDefaultIcon.description": "如果设置成 true,所有文件夹会恢复成默认图标",
23+
"configuration.customIconFolderPath.description": "指向位于您的计算机上含自定义图标的文件夹的父文件夹的物理路径",
2324
"configuration.associations.files.description": "这些自定义设置会覆盖掉系统默认的文件图标设置",
2425
"configuration.associations.folders.description": "这些自定义设置会覆盖掉系统默认的文件夹图标设置",
2526
"configuration.associations.fileDefault.file.description": "这个设置会改变默认的深色文件图标",

src/commands/index.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,8 @@ function generateManifest(
272272
customFiles: models.IFileCollection,
273273
customFolders: models.IFolderCollection,
274274
projectDetectionResult: models.IProjectDetectionResult = null): void {
275-
const iconGenerator = new iconManifest.IconGenerator(vscode, iconManifest.schema);
276275
const vsicons = getVsiconsConfig();
276+
const iconGenerator = new iconManifest.IconGenerator(vscode, iconManifest.schema, vsicons.customIconFolderPath);
277277
const hasProjectDetectionResult = projectDetectionResult &&
278278
typeof projectDetectionResult === 'object' &&
279279
'value' in projectDetectionResult;
@@ -312,13 +312,8 @@ function generateManifest(
312312
}
313313

314314
function restoreManifest(): void {
315-
const iconGenerator = new iconManifest.IconGenerator(vscode, iconManifest.schema, true);
316-
const json = iconManifest.mergeConfig(
317-
null,
318-
files,
319-
null,
320-
folders,
321-
iconGenerator);
315+
const iconGenerator = new iconManifest.IconGenerator(vscode, iconManifest.schema, '', /*avoidCustomDetection*/ true);
316+
const json = iconGenerator.generateJson(files, folders);
322317
iconGenerator.persist(extensionSettings.iconJsonFileName, json);
323318
}
324319

src/icon-manifest/build.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ import { vscode } from '../utils';
55
import { schema } from './defaultSchema';
66
import { extensionSettings } from '../settings';
77

8-
const iconGenerator = new IconGenerator(vscode, schema, true);
8+
const iconGenerator = new IconGenerator(vscode, schema, '', /*avoidCustomDetection*/ true);
99
const json = iconGenerator.generateJson(files, folders);
10-
iconGenerator.persist(extensionSettings.iconJsonFileName, json, true);
10+
iconGenerator.persist(extensionSettings.iconJsonFileName, json, /*updatePackageJson*/ true);

0 commit comments

Comments
 (0)