material-icon-theme 4.15.0 → 4.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/.eslintrc.json +51 -51
  2. package/.github/FUNDING.yml +3 -3
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +34 -34
  4. package/.github/ISSUE_TEMPLATE/icon_request.md +27 -27
  5. package/.github/workflows/build.yml +45 -45
  6. package/.github/workflows/color-check.yml +22 -22
  7. package/.github/workflows/release.yml +73 -73
  8. package/.prettierrc +7 -7
  9. package/.vscode/extensions.json +3 -3
  10. package/.vscode/launch.json +43 -43
  11. package/.vscode/settings.json +14 -14
  12. package/.vscode/tasks.json +32 -32
  13. package/.vscodeignore +20 -20
  14. package/CHANGELOG.md +1171 -1125
  15. package/CONTRIBUTING.md +62 -62
  16. package/LICENSE.md +8 -8
  17. package/README.md +208 -209
  18. package/build/web-extension.webpack.config.js +62 -62
  19. package/build/webpack.config.js +39 -39
  20. package/changelog.config.json +4 -4
  21. package/icons/architecture.svg +5 -0
  22. package/icons/astyle.svg +4 -4
  23. package/icons/azure.svg +10 -1
  24. package/icons/blitz.svg +4 -4
  25. package/icons/buildkite.svg +9 -1
  26. package/icons/cypress.svg +4 -4
  27. package/icons/dart_generated.svg +9 -0
  28. package/icons/dependabot.svg +4 -4
  29. package/icons/dinophp.svg +16 -16
  30. package/icons/figma.svg +10 -10
  31. package/icons/folder-angular-open.svg +2 -2
  32. package/icons/folder-angular.svg +2 -2
  33. package/icons/folder-buildkite-open.svg +9 -0
  34. package/icons/folder-buildkite.svg +8 -0
  35. package/icons/folder-cypress-open.svg +5 -5
  36. package/icons/folder-cypress.svg +5 -5
  37. package/icons/folder-java-open.svg +2 -2
  38. package/icons/folder-java.svg +2 -2
  39. package/icons/folder-lua-open.svg +1 -0
  40. package/icons/folder-lua.svg +1 -0
  41. package/icons/folder-next-open.svg +2 -2
  42. package/icons/folder-next.svg +2 -2
  43. package/icons/folder-nuxt-open.svg +2 -1
  44. package/icons/folder-nuxt.svg +2 -1
  45. package/icons/folder-queue-open.svg +2 -2
  46. package/icons/folder-queue.svg +2 -2
  47. package/icons/folder-resolver-open.svg +2 -2
  48. package/icons/folder-resolver.svg +2 -2
  49. package/icons/folder-serverless-open.svg +5 -5
  50. package/icons/folder-serverless.svg +5 -5
  51. package/icons/folder-shader-open.svg +8 -0
  52. package/icons/folder-shader.svg +7 -0
  53. package/icons/folder-target-open.svg +2 -2
  54. package/icons/folder-target.svg +2 -2
  55. package/icons/folder-unity-open.svg +2 -2
  56. package/icons/folder-unity.svg +2 -2
  57. package/icons/folder-vercel-open.svg +4 -4
  58. package/icons/folder-vercel.svg +4 -4
  59. package/icons/folder-verdaccio-open.svg +8 -0
  60. package/icons/folder-verdaccio.svg +8 -0
  61. package/icons/gleam.svg +4 -4
  62. package/icons/gridsome.svg +4 -4
  63. package/icons/hardhat.svg +3 -3
  64. package/icons/lighthouse.svg +2 -2
  65. package/icons/ndst.svg +7 -7
  66. package/icons/next.svg +3 -3
  67. package/icons/next_light.svg +2 -2
  68. package/icons/nuxt.svg +5 -1
  69. package/icons/odin.svg +6 -6
  70. package/icons/otne.svg +16 -0
  71. package/icons/parcel.svg +4 -4
  72. package/icons/playwright.svg +7 -7
  73. package/icons/plop.svg +4 -0
  74. package/icons/pnpm.svg +9 -9
  75. package/icons/pnpm_light.svg +7 -7
  76. package/icons/poetry.svg +1 -1
  77. package/icons/processing.svg +10 -10
  78. package/icons/remix.svg +4 -4
  79. package/icons/remix_light.svg +4 -4
  80. package/icons/rescript-interface.svg +5 -0
  81. package/icons/rome.svg +5 -5
  82. package/icons/serverless.svg +4 -4
  83. package/icons/shader.svg +4 -0
  84. package/icons/siyuan.svg +9 -9
  85. package/icons/steadybit.svg +1 -1
  86. package/icons/svgr.svg +4 -4
  87. package/icons/tauri.svg +9 -9
  88. package/icons/template.svg +4 -4
  89. package/icons/tobi.svg +4 -4
  90. package/icons/tobimake.svg +14 -14
  91. package/icons/turborepo.svg +12 -12
  92. package/icons/turborepo_light.svg +12 -12
  93. package/icons/verdaccio.svg +5 -0
  94. package/images/contributors.png +0 -0
  95. package/images/fileIcons.png +0 -0
  96. package/images/folderIcons.png +0 -0
  97. package/logo.svg +21 -21
  98. package/material-colors.yml +257 -257
  99. package/package.json +264 -264
  100. package/package.nls.de.json +35 -35
  101. package/package.nls.es.json +32 -32
  102. package/package.nls.fr.json +32 -32
  103. package/package.nls.ja.json +35 -35
  104. package/package.nls.json +35 -35
  105. package/package.nls.nl.json +35 -35
  106. package/package.nls.pl.json +35 -35
  107. package/package.nls.pt-BR.json +32 -32
  108. package/package.nls.pt-PT.json +32 -32
  109. package/package.nls.ru.json +32 -32
  110. package/package.nls.zh-CN.json +32 -32
  111. package/package.nls.zh-TW.json +32 -32
  112. package/src/commands/activate.ts +26 -26
  113. package/src/commands/explorerArrows.ts +55 -55
  114. package/src/commands/folderColor.ts +96 -96
  115. package/src/commands/folders.ts +55 -55
  116. package/src/commands/grayscale.ts +55 -55
  117. package/src/commands/iconPacks.ts +68 -68
  118. package/src/commands/index.ts +30 -30
  119. package/src/commands/opacity.ts +46 -46
  120. package/src/commands/restoreConfig.ts +14 -14
  121. package/src/commands/saturation.ts +46 -46
  122. package/src/extension.ts +42 -35
  123. package/src/helpers/changeDetection.ts +73 -68
  124. package/src/helpers/customIcons.ts +8 -8
  125. package/src/helpers/fileConfig.ts +37 -37
  126. package/src/helpers/index.ts +100 -100
  127. package/src/helpers/objects.ts +58 -58
  128. package/src/helpers/types.ts +7 -7
  129. package/src/helpers/versioning.ts +73 -73
  130. package/src/i18n/index.ts +78 -78
  131. package/src/i18n/lang-de.ts +54 -54
  132. package/src/i18n/lang-en.ts +53 -53
  133. package/src/i18n/lang-es.ts +53 -53
  134. package/src/i18n/lang-fr.ts +53 -53
  135. package/src/i18n/lang-ja.ts +54 -54
  136. package/src/i18n/lang-nl.ts +54 -54
  137. package/src/i18n/lang-pl.ts +52 -52
  138. package/src/i18n/lang-pt-br.ts +53 -53
  139. package/src/i18n/lang-pt-pt.ts +53 -53
  140. package/src/i18n/lang-ru.ts +52 -52
  141. package/src/i18n/lang-uk.ts +54 -54
  142. package/src/i18n/lang-zh-cn.ts +52 -52
  143. package/src/i18n/lang-zh-tw.ts +52 -52
  144. package/src/icons/fileIcons.ts +2046 -1836
  145. package/src/icons/folderIcons.ts +773 -750
  146. package/src/icons/generator/constants.ts +29 -29
  147. package/src/icons/generator/fileGenerator.ts +216 -216
  148. package/src/icons/generator/folderGenerator.ts +340 -340
  149. package/src/icons/generator/iconOpacity.ts +111 -111
  150. package/src/icons/generator/iconSaturation.ts +140 -140
  151. package/src/icons/generator/index.ts +7 -7
  152. package/src/icons/generator/jsonGenerator.ts +187 -187
  153. package/src/icons/generator/languageGenerator.ts +127 -127
  154. package/src/icons/index.ts +4 -4
  155. package/src/icons/languageIcons.ts +136 -134
  156. package/src/messages/outdated.ts +33 -33
  157. package/src/messages/reload.ts +32 -32
  158. package/src/messages/start.ts +12 -12
  159. package/src/messages/update.ts +48 -48
  160. package/src/messages/welcome.ts +47 -47
  161. package/src/models/helpers/index.ts +1 -1
  162. package/src/models/helpers/themeStatus.ts +5 -5
  163. package/src/models/i18n/index.ts +1 -1
  164. package/src/models/i18n/translation.ts +50 -50
  165. package/src/models/iconConfiguration.ts +37 -37
  166. package/src/models/icons/defaultIcon.ts +16 -16
  167. package/src/models/icons/files/fileIcon.ts +49 -49
  168. package/src/models/icons/files/fileTypes.ts +14 -14
  169. package/src/models/icons/files/index.ts +2 -2
  170. package/src/models/icons/folders/folderIcon.ts +34 -34
  171. package/src/models/icons/folders/folderTheme.ts +23 -23
  172. package/src/models/icons/folders/index.ts +2 -2
  173. package/src/models/icons/iconJsonOptions.ts +23 -23
  174. package/src/models/icons/iconPack.ts +12 -12
  175. package/src/models/icons/index.ts +6 -6
  176. package/src/models/icons/languages/index.ts +1 -1
  177. package/src/models/icons/languages/languageIdentifier.ts +26 -26
  178. package/src/models/index.ts +4 -4
  179. package/src/models/scripts/contributors/contributor.ts +22 -22
  180. package/src/models/scripts/contributors/contributorsConfig.ts +10 -10
  181. package/src/scripts/contributors/contributors.css +24 -24
  182. package/src/scripts/contributors/index.ts +138 -138
  183. package/src/scripts/helpers/painter.ts +5 -5
  184. package/src/scripts/helpers/screenshots.ts +32 -32
  185. package/src/scripts/helpers/similarity.ts +47 -47
  186. package/src/scripts/helpers/titleCase.ts +7 -7
  187. package/src/scripts/icons/checks/checkIconAvailability.ts +215 -215
  188. package/src/scripts/icons/checks/checkIconConflicts.ts +154 -154
  189. package/src/scripts/icons/checks/checkIconUsage.ts +141 -141
  190. package/src/scripts/icons/checks/index.ts +7 -7
  191. package/src/scripts/icons/generateJson.ts +11 -11
  192. package/src/scripts/preview/index.ts +40 -40
  193. package/src/scripts/preview/preview.ts +165 -165
  194. package/src/scripts/preview/style.css +48 -48
  195. package/src/test/runTest.ts +26 -26
  196. package/src/test/spec/i18n/i18n.spec.ts +61 -61
  197. package/src/test/spec/icons/fileIcons.spec.ts +250 -250
  198. package/src/test/spec/icons/folderIcons.spec.ts +418 -418
  199. package/src/test/spec/icons/languageIcons.spec.ts +184 -184
  200. package/src/test/spec/index.ts +36 -36
  201. package/src/web/extension.ts +10 -10
  202. package/svgo.config.js +11 -11
  203. package/tsconfig.json +23 -23
  204. package/icons/nuxt_light.svg +0 -1
@@ -1,55 +1,55 @@
1
- import * as vscode from 'vscode';
2
- import { folderIcons } from '../icons';
3
- import * as helpers from './../helpers';
4
- import * as i18n from './../i18n';
5
-
6
- /** Command to toggle the folder icons. */
7
- export const changeFolderTheme = async () => {
8
- try {
9
- const status = getFolderIconTheme();
10
- const response = await showQuickPickItems(status);
11
- if (response) {
12
- handleQuickPickActions(response);
13
- }
14
- } catch (error) {
15
- console.error(error);
16
- }
17
- };
18
-
19
- /** Show QuickPick items to select preferred configuration for the folder icons. */
20
- const showQuickPickItems = (activeTheme: string) => {
21
- const options = folderIcons.map(
22
- (theme): vscode.QuickPickItem => ({
23
- description: helpers.capitalizeFirstLetter(theme.name),
24
- detail:
25
- theme.name === 'none'
26
- ? i18n.translate('folders.disabled')
27
- : i18n.translate(
28
- 'folders.theme.description',
29
- helpers.capitalizeFirstLetter(theme.name)
30
- ),
31
- label: theme.name === activeTheme ? '\u2714' : '\u25FB',
32
- })
33
- );
34
-
35
- return vscode.window.showQuickPick(options, {
36
- placeHolder: i18n.translate('folders.toggleIcons'),
37
- ignoreFocusOut: false,
38
- matchOnDescription: true,
39
- });
40
- };
41
-
42
- /** Handle the actions from the QuickPick. */
43
- const handleQuickPickActions = (value: vscode.QuickPickItem) => {
44
- if (!value || !value.description) return;
45
- return helpers.setThemeConfig(
46
- 'folders.theme',
47
- value.description.toLowerCase(),
48
- true
49
- );
50
- };
51
-
52
- /** Get the current folder theme. */
53
- export const getFolderIconTheme = (): string => {
54
- return helpers.getMaterialIconsJSON()?.options?.folders?.theme ?? '';
55
- };
1
+ import * as vscode from 'vscode';
2
+ import { folderIcons } from '../icons';
3
+ import * as helpers from './../helpers';
4
+ import * as i18n from './../i18n';
5
+
6
+ /** Command to toggle the folder icons. */
7
+ export const changeFolderTheme = async () => {
8
+ try {
9
+ const status = getFolderIconTheme();
10
+ const response = await showQuickPickItems(status);
11
+ if (response) {
12
+ handleQuickPickActions(response);
13
+ }
14
+ } catch (error) {
15
+ console.error(error);
16
+ }
17
+ };
18
+
19
+ /** Show QuickPick items to select preferred configuration for the folder icons. */
20
+ const showQuickPickItems = (activeTheme: string) => {
21
+ const options = folderIcons.map(
22
+ (theme): vscode.QuickPickItem => ({
23
+ description: helpers.capitalizeFirstLetter(theme.name),
24
+ detail:
25
+ theme.name === 'none'
26
+ ? i18n.translate('folders.disabled')
27
+ : i18n.translate(
28
+ 'folders.theme.description',
29
+ helpers.capitalizeFirstLetter(theme.name)
30
+ ),
31
+ label: theme.name === activeTheme ? '\u2714' : '\u25FB',
32
+ })
33
+ );
34
+
35
+ return vscode.window.showQuickPick(options, {
36
+ placeHolder: i18n.translate('folders.toggleIcons'),
37
+ ignoreFocusOut: false,
38
+ matchOnDescription: true,
39
+ });
40
+ };
41
+
42
+ /** Handle the actions from the QuickPick. */
43
+ const handleQuickPickActions = (value: vscode.QuickPickItem) => {
44
+ if (!value || !value.description) return;
45
+ return helpers.setThemeConfig(
46
+ 'folders.theme',
47
+ value.description.toLowerCase(),
48
+ true
49
+ );
50
+ };
51
+
52
+ /** Get the current folder theme. */
53
+ export const getFolderIconTheme = (): string => {
54
+ return helpers.getMaterialIconsJSON()?.options?.folders?.theme ?? '';
55
+ };
@@ -1,55 +1,55 @@
1
- import * as vscode from 'vscode';
2
- import * as helpers from './../helpers';
3
- import * as i18n from './../i18n';
4
-
5
- /** Command to toggle grayscale. */
6
- export const toggleGrayscale = async () => {
7
- try {
8
- const status = checkGrayscaleStatus();
9
- const response = await showQuickPickItems(status);
10
- if (response) {
11
- handleQuickPickActions(response);
12
- }
13
- } catch (error) {
14
- console.error(error);
15
- }
16
- };
17
-
18
- /** Show QuickPick items to select preferred configuration for grayscale icons. */
19
- const showQuickPickItems = (status: boolean) => {
20
- const on: vscode.QuickPickItem = {
21
- description: i18n.translate('toggleSwitch.on'),
22
- detail: i18n.translate('grayscale.enable'),
23
- label: status ? '\u2714' : '\u25FB',
24
- };
25
- const off: vscode.QuickPickItem = {
26
- description: i18n.translate('toggleSwitch.off'),
27
- detail: i18n.translate('grayscale.disable'),
28
- label: !status ? '\u2714' : '\u25FB',
29
- };
30
- return vscode.window.showQuickPick([on, off], {
31
- placeHolder: i18n.translate('grayscale.toggle'),
32
- ignoreFocusOut: false,
33
- matchOnDescription: true,
34
- });
35
- };
36
-
37
- /** Handle the actions from the QuickPick. */
38
- const handleQuickPickActions = (value: vscode.QuickPickItem) => {
39
- if (!value || !value.description) return;
40
- switch (value.description) {
41
- case i18n.translate('toggleSwitch.on'): {
42
- return helpers.setThemeConfig('saturation', 0, true);
43
- }
44
- case i18n.translate('toggleSwitch.off'): {
45
- return helpers.setThemeConfig('saturation', 1, true);
46
- }
47
- default:
48
- return;
49
- }
50
- };
51
-
52
- /** Is grayscale icons enabled? */
53
- export const checkGrayscaleStatus = (): boolean => {
54
- return helpers.getMaterialIconsJSON()?.options?.saturation === 0;
55
- };
1
+ import * as vscode from 'vscode';
2
+ import * as helpers from './../helpers';
3
+ import * as i18n from './../i18n';
4
+
5
+ /** Command to toggle grayscale. */
6
+ export const toggleGrayscale = async () => {
7
+ try {
8
+ const status = checkGrayscaleStatus();
9
+ const response = await showQuickPickItems(status);
10
+ if (response) {
11
+ handleQuickPickActions(response);
12
+ }
13
+ } catch (error) {
14
+ console.error(error);
15
+ }
16
+ };
17
+
18
+ /** Show QuickPick items to select preferred configuration for grayscale icons. */
19
+ const showQuickPickItems = (status: boolean) => {
20
+ const on: vscode.QuickPickItem = {
21
+ description: i18n.translate('toggleSwitch.on'),
22
+ detail: i18n.translate('grayscale.enable'),
23
+ label: status ? '\u2714' : '\u25FB',
24
+ };
25
+ const off: vscode.QuickPickItem = {
26
+ description: i18n.translate('toggleSwitch.off'),
27
+ detail: i18n.translate('grayscale.disable'),
28
+ label: !status ? '\u2714' : '\u25FB',
29
+ };
30
+ return vscode.window.showQuickPick([on, off], {
31
+ placeHolder: i18n.translate('grayscale.toggle'),
32
+ ignoreFocusOut: false,
33
+ matchOnDescription: true,
34
+ });
35
+ };
36
+
37
+ /** Handle the actions from the QuickPick. */
38
+ const handleQuickPickActions = (value: vscode.QuickPickItem) => {
39
+ if (!value || !value.description) return;
40
+ switch (value.description) {
41
+ case i18n.translate('toggleSwitch.on'): {
42
+ return helpers.setThemeConfig('saturation', 0, true);
43
+ }
44
+ case i18n.translate('toggleSwitch.off'): {
45
+ return helpers.setThemeConfig('saturation', 1, true);
46
+ }
47
+ default:
48
+ return;
49
+ }
50
+ };
51
+
52
+ /** Is grayscale icons enabled? */
53
+ export const checkGrayscaleStatus = (): boolean => {
54
+ return helpers.getMaterialIconsJSON()?.options?.saturation === 0;
55
+ };
@@ -1,68 +1,68 @@
1
- import * as vscode from 'vscode';
2
- import { IconPack } from '../models/index';
3
- import * as helpers from './../helpers';
4
- import * as i18n from './../i18n';
5
-
6
- /** Command to toggle the icons packs */
7
- export const toggleIconPacks = async () => {
8
- try {
9
- const activeIconPack = getActiveIconPack();
10
- const response = await showQuickPickItems(activeIconPack);
11
- if (response) {
12
- handleQuickPickActions(response);
13
- }
14
- } catch (error) {
15
- console.error(error);
16
- }
17
- };
18
-
19
- /** Show QuickPick items to select preferred configuration for the icon packs. */
20
- const showQuickPickItems = (activePack: string) => {
21
- const packs = [...getAllIconPacks().sort(), 'none'];
22
- const options = packs.map((pack): vscode.QuickPickItem => {
23
- const packLabel = helpers.toTitleCase(pack.replace('_', ' + '));
24
- const active = isPackActive(activePack, pack);
25
- const iconPacksDeactivated = pack === 'none' && activePack === '';
26
-
27
- return {
28
- description: packLabel,
29
- detail: i18n.translate(
30
- `iconPacks.${pack === 'none' ? 'disabled' : 'description'}`,
31
- packLabel
32
- ),
33
- label: iconPacksDeactivated ? '\u2714' : active ? '\u2714' : '\u25FB',
34
- };
35
- });
36
-
37
- return vscode.window.showQuickPick(options, {
38
- placeHolder: i18n.translate('iconPacks.selectPack'),
39
- ignoreFocusOut: false,
40
- matchOnDescription: true,
41
- matchOnDetail: true,
42
- });
43
- };
44
-
45
- /** Handle the actions from the QuickPick. */
46
- const handleQuickPickActions = (value: vscode.QuickPickItem) => {
47
- if (!value || !value.description) return;
48
- const decision = value.description.replace(' + ', '_').toLowerCase();
49
-
50
- helpers.setThemeConfig(
51
- 'activeIconPack',
52
- decision === 'none' ? '' : decision,
53
- true
54
- );
55
- };
56
-
57
- const getActiveIconPack = (): string => {
58
- return helpers.getMaterialIconsJSON()?.options?.activeIconPack ?? '';
59
- };
60
-
61
- /** Get all packs that can be used in this icon theme. */
62
- export const getAllIconPacks = (): string[] => {
63
- return Object.values(IconPack).map((p) => p.toLowerCase());
64
- };
65
-
66
- const isPackActive = (activePack: string, pack: string) => {
67
- return activePack.toLowerCase() === pack.toLowerCase();
68
- };
1
+ import * as vscode from 'vscode';
2
+ import { IconPack } from '../models/index';
3
+ import * as helpers from './../helpers';
4
+ import * as i18n from './../i18n';
5
+
6
+ /** Command to toggle the icons packs */
7
+ export const toggleIconPacks = async () => {
8
+ try {
9
+ const activeIconPack = getActiveIconPack();
10
+ const response = await showQuickPickItems(activeIconPack);
11
+ if (response) {
12
+ handleQuickPickActions(response);
13
+ }
14
+ } catch (error) {
15
+ console.error(error);
16
+ }
17
+ };
18
+
19
+ /** Show QuickPick items to select preferred configuration for the icon packs. */
20
+ const showQuickPickItems = (activePack: string) => {
21
+ const packs = [...getAllIconPacks().sort(), 'none'];
22
+ const options = packs.map((pack): vscode.QuickPickItem => {
23
+ const packLabel = helpers.toTitleCase(pack.replace('_', ' + '));
24
+ const active = isPackActive(activePack, pack);
25
+ const iconPacksDeactivated = pack === 'none' && activePack === '';
26
+
27
+ return {
28
+ description: packLabel,
29
+ detail: i18n.translate(
30
+ `iconPacks.${pack === 'none' ? 'disabled' : 'description'}`,
31
+ packLabel
32
+ ),
33
+ label: iconPacksDeactivated ? '\u2714' : active ? '\u2714' : '\u25FB',
34
+ };
35
+ });
36
+
37
+ return vscode.window.showQuickPick(options, {
38
+ placeHolder: i18n.translate('iconPacks.selectPack'),
39
+ ignoreFocusOut: false,
40
+ matchOnDescription: true,
41
+ matchOnDetail: true,
42
+ });
43
+ };
44
+
45
+ /** Handle the actions from the QuickPick. */
46
+ const handleQuickPickActions = (value: vscode.QuickPickItem) => {
47
+ if (!value || !value.description) return;
48
+ const decision = value.description.replace(' + ', '_').toLowerCase();
49
+
50
+ helpers.setThemeConfig(
51
+ 'activeIconPack',
52
+ decision === 'none' ? '' : decision,
53
+ true
54
+ );
55
+ };
56
+
57
+ const getActiveIconPack = (): string => {
58
+ return helpers.getMaterialIconsJSON()?.options?.activeIconPack ?? '';
59
+ };
60
+
61
+ /** Get all packs that can be used in this icon theme. */
62
+ export const getAllIconPacks = (): string[] => {
63
+ return Object.values(IconPack).map((p) => p.toLowerCase());
64
+ };
65
+
66
+ const isPackActive = (activePack: string, pack: string) => {
67
+ return activePack.toLowerCase() === pack.toLowerCase();
68
+ };
@@ -1,30 +1,30 @@
1
- import * as vscode from 'vscode';
2
- import { activateIcons } from './activate';
3
- import { toggleExplorerArrows } from './explorerArrows';
4
- import { changeFolderColor } from './folderColor';
5
- import { changeFolderTheme } from './folders';
6
- import { toggleGrayscale } from './grayscale';
7
- import { toggleIconPacks } from './iconPacks';
8
- import { changeOpacity } from './opacity';
9
- import { restoreDefaultConfig } from './restoreConfig';
10
- import { changeSaturation } from './saturation';
11
-
12
- const commands: { [commmand: string]: () => Promise<void> } = {
13
- activateIcons,
14
- toggleIconPacks,
15
- changeFolderTheme,
16
- changeFolderColor,
17
- restoreDefaultConfig,
18
- toggleExplorerArrows,
19
- changeOpacity,
20
- toggleGrayscale,
21
- changeSaturation,
22
- };
23
-
24
- export const registered = Object.keys(commands).map((commandName) => {
25
- const callCommand = () => commands[commandName]();
26
- return vscode.commands.registerCommand(
27
- `material-icon-theme.${commandName}`,
28
- callCommand
29
- );
30
- });
1
+ import * as vscode from 'vscode';
2
+ import { activateIcons } from './activate';
3
+ import { toggleExplorerArrows } from './explorerArrows';
4
+ import { changeFolderColor } from './folderColor';
5
+ import { changeFolderTheme } from './folders';
6
+ import { toggleGrayscale } from './grayscale';
7
+ import { toggleIconPacks } from './iconPacks';
8
+ import { changeOpacity } from './opacity';
9
+ import { restoreDefaultConfig } from './restoreConfig';
10
+ import { changeSaturation } from './saturation';
11
+
12
+ const commands: { [commmand: string]: () => Promise<void> } = {
13
+ activateIcons,
14
+ toggleIconPacks,
15
+ changeFolderTheme,
16
+ changeFolderColor,
17
+ restoreDefaultConfig,
18
+ toggleExplorerArrows,
19
+ changeOpacity,
20
+ toggleGrayscale,
21
+ changeSaturation,
22
+ };
23
+
24
+ export const registered = Object.keys(commands).map((commandName) => {
25
+ const callCommand = () => commands[commandName]();
26
+ return vscode.commands.registerCommand(
27
+ `material-icon-theme.${commandName}`,
28
+ callCommand
29
+ );
30
+ });
@@ -1,46 +1,46 @@
1
- import * as vscode from 'vscode';
2
- import { getDefaultIconOptions, validateOpacityValue } from '../icons';
3
- import * as helpers from './../helpers';
4
- import * as i18n from './../i18n';
5
-
6
- /** Command to toggle the folder icons. */
7
- export const changeOpacity = async () => {
8
- try {
9
- const currentOpacityValue = getCurrentOpacityValue();
10
- const response = await showInput(currentOpacityValue);
11
- if (response) {
12
- await setOpacityConfig(+response);
13
- }
14
- } catch (error) {
15
- console.error(error);
16
- }
17
- };
18
-
19
- /** Show input to enter the opacity value. */
20
- const showInput = (opacity: number) => {
21
- return vscode.window.showInputBox({
22
- placeHolder: i18n.translate('opacity.inputPlaceholder'),
23
- ignoreFocusOut: true,
24
- value: opacity.toString(),
25
- validateInput: validateOpacityInput,
26
- });
27
- };
28
-
29
- /** Validate the opacity value which was inserted by the user. */
30
- const validateOpacityInput = (opacityInput: string) => {
31
- if (!validateOpacityValue(+opacityInput)) {
32
- return i18n.translate('opacity.wrongValue');
33
- }
34
- return undefined;
35
- };
36
-
37
- /** Get the current value of the opacity of the icons. */
38
- export const getCurrentOpacityValue = (): number => {
39
- const defaultOptions = getDefaultIconOptions();
40
- const config = helpers.getMaterialIconsJSON();
41
- return config?.options?.opacity ?? defaultOptions.opacity;
42
- };
43
-
44
- const setOpacityConfig = (opacity: number) => {
45
- return helpers.setThemeConfig('opacity', opacity, true);
46
- };
1
+ import * as vscode from 'vscode';
2
+ import { getDefaultIconOptions, validateOpacityValue } from '../icons';
3
+ import * as helpers from './../helpers';
4
+ import * as i18n from './../i18n';
5
+
6
+ /** Command to toggle the folder icons. */
7
+ export const changeOpacity = async () => {
8
+ try {
9
+ const currentOpacityValue = getCurrentOpacityValue();
10
+ const response = await showInput(currentOpacityValue);
11
+ if (response) {
12
+ await setOpacityConfig(+response);
13
+ }
14
+ } catch (error) {
15
+ console.error(error);
16
+ }
17
+ };
18
+
19
+ /** Show input to enter the opacity value. */
20
+ const showInput = (opacity: number) => {
21
+ return vscode.window.showInputBox({
22
+ placeHolder: i18n.translate('opacity.inputPlaceholder'),
23
+ ignoreFocusOut: true,
24
+ value: opacity.toString(),
25
+ validateInput: validateOpacityInput,
26
+ });
27
+ };
28
+
29
+ /** Validate the opacity value which was inserted by the user. */
30
+ const validateOpacityInput = (opacityInput: string) => {
31
+ if (!validateOpacityValue(+opacityInput)) {
32
+ return i18n.translate('opacity.wrongValue');
33
+ }
34
+ return undefined;
35
+ };
36
+
37
+ /** Get the current value of the opacity of the icons. */
38
+ export const getCurrentOpacityValue = (): number => {
39
+ const defaultOptions = getDefaultIconOptions();
40
+ const config = helpers.getMaterialIconsJSON();
41
+ return config?.options?.opacity ?? defaultOptions.opacity;
42
+ };
43
+
44
+ const setOpacityConfig = (opacity: number) => {
45
+ return helpers.setThemeConfig('opacity', opacity, true);
46
+ };
@@ -1,14 +1,14 @@
1
- import { setThemeConfig } from './../helpers';
2
-
3
- /** Restore all configurations to default. */
4
- export const restoreDefaultConfig = async () => {
5
- await setThemeConfig('activeIconPack', undefined, true);
6
- await setThemeConfig('folders.theme', undefined, true);
7
- await setThemeConfig('folders.color', undefined, true);
8
- await setThemeConfig('hidesExplorerArrows', undefined, true);
9
- await setThemeConfig('opacity', undefined, true);
10
- await setThemeConfig('saturation', undefined, true);
11
- await setThemeConfig('files.associations', undefined, true);
12
- await setThemeConfig('folders.associations', undefined, true);
13
- await setThemeConfig('languages.associations', undefined, true);
14
- };
1
+ import { setThemeConfig } from './../helpers';
2
+
3
+ /** Restore all configurations to default. */
4
+ export const restoreDefaultConfig = async () => {
5
+ await setThemeConfig('activeIconPack', undefined, true);
6
+ await setThemeConfig('folders.theme', undefined, true);
7
+ await setThemeConfig('folders.color', undefined, true);
8
+ await setThemeConfig('hidesExplorerArrows', undefined, true);
9
+ await setThemeConfig('opacity', undefined, true);
10
+ await setThemeConfig('saturation', undefined, true);
11
+ await setThemeConfig('files.associations', undefined, true);
12
+ await setThemeConfig('folders.associations', undefined, true);
13
+ await setThemeConfig('languages.associations', undefined, true);
14
+ };
@@ -1,46 +1,46 @@
1
- import * as vscode from 'vscode';
2
- import { getDefaultIconOptions, validateSaturationValue } from '../icons';
3
- import * as helpers from './../helpers';
4
- import * as i18n from './../i18n';
5
-
6
- /** Command to toggle the folder icons. */
7
- export const changeSaturation = async () => {
8
- try {
9
- const currentSaturationValue = getCurrentSaturationValue();
10
- const response = await showInput(currentSaturationValue);
11
- if (response) {
12
- await setSaturationConfig(+response);
13
- }
14
- } catch (error) {
15
- console.error(error);
16
- }
17
- };
18
-
19
- /** Show input to enter the saturation value. */
20
- const showInput = (saturation: number) => {
21
- return vscode.window.showInputBox({
22
- placeHolder: i18n.translate('saturation.inputPlaceholder'),
23
- ignoreFocusOut: true,
24
- value: saturation.toString(),
25
- validateInput: validateSaturationInput,
26
- });
27
- };
28
-
29
- /** Validate the saturation value which was inserted by the user. */
30
- const validateSaturationInput = (saturationInput: string) => {
31
- if (!validateSaturationValue(+saturationInput)) {
32
- return i18n.translate('saturation.wrongValue');
33
- }
34
- return undefined;
35
- };
36
-
37
- /** Get the current value of the saturation of the icons. */
38
- export const getCurrentSaturationValue = (): number => {
39
- const defaultOptions = getDefaultIconOptions();
40
- const config = helpers.getMaterialIconsJSON();
41
- return config?.options?.saturation ?? defaultOptions.saturation;
42
- };
43
-
44
- const setSaturationConfig = (saturation: number) => {
45
- return helpers.setThemeConfig('saturation', saturation, true);
46
- };
1
+ import * as vscode from 'vscode';
2
+ import { getDefaultIconOptions, validateSaturationValue } from '../icons';
3
+ import * as helpers from './../helpers';
4
+ import * as i18n from './../i18n';
5
+
6
+ /** Command to toggle the folder icons. */
7
+ export const changeSaturation = async () => {
8
+ try {
9
+ const currentSaturationValue = getCurrentSaturationValue();
10
+ const response = await showInput(currentSaturationValue);
11
+ if (response) {
12
+ await setSaturationConfig(+response);
13
+ }
14
+ } catch (error) {
15
+ console.error(error);
16
+ }
17
+ };
18
+
19
+ /** Show input to enter the saturation value. */
20
+ const showInput = (saturation: number) => {
21
+ return vscode.window.showInputBox({
22
+ placeHolder: i18n.translate('saturation.inputPlaceholder'),
23
+ ignoreFocusOut: true,
24
+ value: saturation.toString(),
25
+ validateInput: validateSaturationInput,
26
+ });
27
+ };
28
+
29
+ /** Validate the saturation value which was inserted by the user. */
30
+ const validateSaturationInput = (saturationInput: string) => {
31
+ if (!validateSaturationValue(+saturationInput)) {
32
+ return i18n.translate('saturation.wrongValue');
33
+ }
34
+ return undefined;
35
+ };
36
+
37
+ /** Get the current value of the saturation of the icons. */
38
+ export const getCurrentSaturationValue = (): number => {
39
+ const defaultOptions = getDefaultIconOptions();
40
+ const config = helpers.getMaterialIconsJSON();
41
+ return config?.options?.saturation ?? defaultOptions.saturation;
42
+ };
43
+
44
+ const setSaturationConfig = (saturation: number) => {
45
+ return helpers.setThemeConfig('saturation', saturation, true);
46
+ };