material-icon-theme 3.7.1 → 4.15.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 (920) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.json +51 -0
  3. package/.github/FUNDING.yml +3 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +34 -0
  5. package/.github/ISSUE_TEMPLATE/icon_request.md +27 -0
  6. package/.github/workflows/build.yml +45 -0
  7. package/.github/workflows/color-check.yml +22 -0
  8. package/.github/workflows/release.yml +73 -0
  9. package/.prettierrc +7 -0
  10. package/.vscode/extensions.json +3 -0
  11. package/.vscode/launch.json +43 -37
  12. package/.vscode/settings.json +14 -9
  13. package/.vscode/tasks.json +32 -20
  14. package/.vscodeignore +21 -19
  15. package/CHANGELOG.md +1125 -723
  16. package/CONTRIBUTING.md +62 -47
  17. package/LICENSE.md +8 -8
  18. package/README.md +209 -149
  19. package/build/web-extension.webpack.config.js +62 -0
  20. package/build/webpack.config.js +39 -0
  21. package/changelog.config.json +4 -0
  22. package/icons/3d.svg +1 -1
  23. package/icons/abc.svg +1 -0
  24. package/icons/actionscript.svg +1 -3
  25. package/icons/ada.svg +1 -0
  26. package/icons/adonis.svg +1 -0
  27. package/icons/advpl_include.svg +1 -0
  28. package/icons/advpl_prw.svg +1 -0
  29. package/icons/advpl_ptm.svg +1 -0
  30. package/icons/advpl_tlpp.svg +1 -0
  31. package/icons/android.svg +1 -1
  32. package/icons/angular-component.svg +1 -3
  33. package/icons/angular-directive.svg +1 -3
  34. package/icons/angular-guard.svg +1 -3
  35. package/icons/angular-pipe.svg +1 -3
  36. package/icons/angular-resolver.svg +1 -3
  37. package/icons/angular-service.svg +1 -3
  38. package/icons/angular.svg +1 -3
  39. package/icons/apiblueprint.svg +1 -5
  40. package/icons/apollo.svg +1 -0
  41. package/icons/applescript.svg +1 -3
  42. package/icons/appveyor.svg +1 -5
  43. package/icons/arduino.svg +1 -1
  44. package/icons/asciidoc.svg +1 -1
  45. package/icons/assembly.svg +1 -4
  46. package/icons/astro.svg +1 -0
  47. package/icons/astyle.svg +4 -0
  48. package/icons/audio.svg +1 -4
  49. package/icons/aurelia.svg +1 -107
  50. package/icons/authors.svg +1 -1
  51. package/icons/autohotkey.svg +1 -3
  52. package/icons/autoit.svg +1 -21
  53. package/icons/azure-pipelines.svg +1 -1
  54. package/icons/azure.svg +1 -1
  55. package/icons/babel.svg +1 -1
  56. package/icons/ballerina.svg +1 -1
  57. package/icons/bazel.svg +1 -1
  58. package/icons/bicep.svg +1 -0
  59. package/icons/bitbucket.svg +1 -1
  60. package/icons/bithound.svg +1 -1
  61. package/icons/blink.svg +1 -4
  62. package/icons/blink_light.svg +1 -4
  63. package/icons/blitz.svg +4 -0
  64. package/icons/bower.svg +1 -1
  65. package/icons/brainfuck.svg +1 -0
  66. package/icons/browserlist.svg +1 -6
  67. package/icons/browserlist_light.svg +1 -7
  68. package/icons/buck.svg +1 -0
  69. package/icons/bucklescript.svg +1 -3
  70. package/icons/buildkite.svg +1 -1
  71. package/icons/c.svg +1 -1
  72. package/icons/cabal.svg +1 -8
  73. package/icons/cake.svg +1 -1
  74. package/icons/capacitor.svg +1 -0
  75. package/icons/certificate.svg +1 -3
  76. package/icons/changelog.svg +1 -1
  77. package/icons/chess.svg +1 -0
  78. package/icons/chess_light.svg +1 -0
  79. package/icons/circleci.svg +1 -14
  80. package/icons/circleci_light.svg +1 -14
  81. package/icons/clojure.svg +1 -1
  82. package/icons/cloudfoundry.svg +1 -24
  83. package/icons/cmake.svg +1 -7
  84. package/icons/coala.svg +1 -0
  85. package/icons/cobol.svg +1 -0
  86. package/icons/coconut.svg +1 -0
  87. package/icons/code-climate.svg +1 -4
  88. package/icons/code-climate_light.svg +1 -4
  89. package/icons/codecov.svg +1 -0
  90. package/icons/codeowners.svg +1 -0
  91. package/icons/coffee.svg +1 -3
  92. package/icons/coldfusion.svg +1 -7
  93. package/icons/command.svg +1 -0
  94. package/icons/commitlint.svg +1 -0
  95. package/icons/conduct.svg +1 -4
  96. package/icons/console.svg +1 -3
  97. package/icons/contributing.svg +1 -4
  98. package/icons/cpp.svg +1 -1
  99. package/icons/credits.svg +1 -3
  100. package/icons/crystal.svg +1 -4
  101. package/icons/crystal_light.svg +1 -4
  102. package/icons/csharp.svg +1 -3
  103. package/icons/css-map.svg +1 -1
  104. package/icons/css.svg +1 -3
  105. package/icons/cucumber.svg +1 -4
  106. package/icons/cuda.svg +1 -4
  107. package/icons/cypress.svg +4 -0
  108. package/icons/d.svg +1 -1
  109. package/icons/dart.svg +1 -9
  110. package/icons/database.svg +1 -1
  111. package/icons/denizenscript.svg +1 -0
  112. package/icons/dependabot.svg +4 -0
  113. package/icons/dhall.svg +1 -0
  114. package/icons/diff.svg +1 -1
  115. package/icons/dinophp.svg +16 -0
  116. package/icons/disc.svg +1 -0
  117. package/icons/django.svg +1 -1
  118. package/icons/docker.svg +1 -4
  119. package/icons/document.svg +1 -3
  120. package/icons/dotjs.svg +1 -8
  121. package/icons/drawio.svg +1 -0
  122. package/icons/drone.svg +1 -6
  123. package/icons/drone_light.svg +1 -6
  124. package/icons/dune.svg +1 -0
  125. package/icons/edge.svg +1 -1
  126. package/icons/editorconfig.svg +1 -9
  127. package/icons/ejs.svg +1 -7
  128. package/icons/elixir.svg +1 -1
  129. package/icons/elm.svg +1 -1
  130. package/icons/email.svg +1 -3
  131. package/icons/ember.svg +1 -0
  132. package/icons/erlang.svg +1 -5
  133. package/icons/eslint.svg +1 -3
  134. package/icons/exe.svg +1 -3
  135. package/icons/fastlane.svg +1 -1
  136. package/icons/favicon.svg +1 -3
  137. package/icons/figma.svg +10 -0
  138. package/icons/file.svg +1 -3
  139. package/icons/firebase.svg +1 -9
  140. package/icons/flash.svg +1 -12
  141. package/icons/flow.svg +1 -7
  142. package/icons/folder-admin-open.svg +1 -0
  143. package/icons/folder-admin.svg +1 -0
  144. package/icons/folder-android-open.svg +1 -1
  145. package/icons/folder-android.svg +1 -1
  146. package/icons/folder-angular-open.svg +2 -0
  147. package/icons/folder-angular.svg +2 -0
  148. package/icons/folder-animation-open.svg +1 -1
  149. package/icons/folder-animation.svg +1 -1
  150. package/icons/folder-ansible-open.svg +1 -1
  151. package/icons/folder-ansible.svg +1 -1
  152. package/icons/folder-api-open.svg +1 -4
  153. package/icons/folder-api.svg +1 -4
  154. package/icons/folder-apollo-open.svg +1 -0
  155. package/icons/folder-apollo.svg +1 -0
  156. package/icons/folder-app-open.svg +1 -1
  157. package/icons/folder-app.svg +1 -1
  158. package/icons/folder-archive-open.svg +1 -1
  159. package/icons/folder-archive.svg +1 -1
  160. package/icons/folder-audio-open.svg +1 -2
  161. package/icons/folder-audio.svg +1 -2
  162. package/icons/folder-aurelia-open.svg +1 -2
  163. package/icons/folder-aurelia.svg +1 -2
  164. package/icons/folder-aws-open.svg +1 -2
  165. package/icons/folder-aws.svg +1 -2
  166. package/icons/folder-azure-pipelines-open.svg +1 -0
  167. package/icons/folder-azure-pipelines.svg +1 -0
  168. package/icons/folder-base-open.svg +1 -0
  169. package/icons/folder-base.svg +1 -0
  170. package/icons/folder-batch-open.svg +1 -1
  171. package/icons/folder-batch.svg +1 -1
  172. package/icons/folder-benchmark-open.svg +1 -1
  173. package/icons/folder-benchmark.svg +1 -1
  174. package/icons/folder-bower-open.svg +1 -2
  175. package/icons/folder-bower.svg +1 -2
  176. package/icons/folder-cart-open.svg +1 -0
  177. package/icons/folder-cart.svg +1 -0
  178. package/icons/folder-ci-open.svg +1 -1
  179. package/icons/folder-ci.svg +1 -1
  180. package/icons/folder-circleci-open.svg +1 -2
  181. package/icons/folder-circleci.svg +1 -1
  182. package/icons/folder-class-open.svg +1 -1
  183. package/icons/folder-class.svg +1 -1
  184. package/icons/folder-client-open.svg +1 -1
  185. package/icons/folder-client.svg +1 -1
  186. package/icons/folder-cluster-open.svg +1 -8
  187. package/icons/folder-cluster.svg +1 -8
  188. package/icons/folder-cobol-open.svg +1 -0
  189. package/icons/folder-cobol.svg +1 -0
  190. package/icons/folder-command-open.svg +1 -4
  191. package/icons/folder-command.svg +1 -4
  192. package/icons/folder-components-open.svg +1 -2
  193. package/icons/folder-components.svg +1 -2
  194. package/icons/folder-config-open.svg +1 -2
  195. package/icons/folder-config.svg +1 -2
  196. package/icons/folder-connection-open.svg +1 -0
  197. package/icons/folder-connection.svg +1 -0
  198. package/icons/folder-constant-open.svg +1 -1
  199. package/icons/folder-constant.svg +1 -1
  200. package/icons/folder-container-open.svg +1 -1
  201. package/icons/folder-container.svg +1 -1
  202. package/icons/folder-content-open.svg +1 -1
  203. package/icons/folder-content.svg +1 -1
  204. package/icons/folder-context-open.svg +1 -0
  205. package/icons/folder-context.svg +1 -0
  206. package/icons/folder-contract-open.svg +1 -0
  207. package/icons/folder-contract.svg +1 -0
  208. package/icons/folder-controller-open.svg +1 -1
  209. package/icons/folder-controller.svg +1 -1
  210. package/icons/folder-core-open.svg +1 -1
  211. package/icons/folder-core.svg +1 -1
  212. package/icons/folder-coverage-open.svg +1 -1
  213. package/icons/folder-coverage.svg +1 -1
  214. package/icons/folder-css-open.svg +1 -2
  215. package/icons/folder-css.svg +1 -2
  216. package/icons/folder-custom-open.svg +1 -1
  217. package/icons/folder-custom.svg +1 -1
  218. package/icons/folder-cypress-open.svg +5 -0
  219. package/icons/folder-cypress.svg +5 -0
  220. package/icons/folder-database-open.svg +1 -2
  221. package/icons/folder-database.svg +1 -2
  222. package/icons/folder-debug-open.svg +1 -1
  223. package/icons/folder-debug.svg +1 -1
  224. package/icons/folder-delta-open.svg +1 -4
  225. package/icons/folder-delta.svg +1 -4
  226. package/icons/folder-dist-open.svg +1 -2
  227. package/icons/folder-dist.svg +1 -2
  228. package/icons/folder-docker-open.svg +1 -2
  229. package/icons/folder-docker.svg +1 -5
  230. package/icons/folder-docs-open.svg +1 -2
  231. package/icons/folder-docs.svg +1 -2
  232. package/icons/folder-download-open.svg +1 -1
  233. package/icons/folder-download.svg +1 -1
  234. package/icons/folder-dump-open.svg +1 -1
  235. package/icons/folder-dump.svg +1 -1
  236. package/icons/folder-environment-open.svg +1 -1
  237. package/icons/folder-environment.svg +1 -1
  238. package/icons/folder-error-open.svg +1 -0
  239. package/icons/folder-error.svg +1 -0
  240. package/icons/folder-event-open.svg +1 -0
  241. package/icons/folder-event.svg +1 -0
  242. package/icons/folder-examples-open.svg +1 -1
  243. package/icons/folder-examples.svg +1 -1
  244. package/icons/folder-expo-open.svg +1 -1
  245. package/icons/folder-expo.svg +1 -4
  246. package/icons/folder-export-open.svg +1 -1
  247. package/icons/folder-export.svg +1 -5
  248. package/icons/folder-fastlane-open.svg +1 -1
  249. package/icons/folder-fastlane.svg +1 -1
  250. package/icons/folder-firebase-open.svg +1 -0
  251. package/icons/folder-firebase.svg +1 -0
  252. package/icons/folder-flow-open.svg +1 -1
  253. package/icons/folder-flow.svg +1 -1
  254. package/icons/folder-font-open.svg +1 -1
  255. package/icons/folder-font.svg +1 -1
  256. package/icons/folder-functions-open.svg +1 -1
  257. package/icons/folder-functions.svg +1 -1
  258. package/icons/folder-generator-open.svg +1 -1
  259. package/icons/folder-generator.svg +1 -1
  260. package/icons/folder-git-open.svg +1 -1
  261. package/icons/folder-git.svg +1 -1
  262. package/icons/folder-github-open.svg +1 -2
  263. package/icons/folder-github.svg +1 -2
  264. package/icons/folder-gitlab-open.svg +1 -2
  265. package/icons/folder-gitlab.svg +1 -2
  266. package/icons/folder-global-open.svg +1 -2
  267. package/icons/folder-global.svg +1 -2
  268. package/icons/folder-gradle-open.svg +1 -2
  269. package/icons/folder-gradle.svg +1 -2
  270. package/icons/folder-graphql-open.svg +1 -1
  271. package/icons/folder-graphql.svg +1 -1
  272. package/icons/folder-guard-open.svg +1 -1
  273. package/icons/folder-guard.svg +1 -1
  274. package/icons/folder-gulp-open.svg +1 -0
  275. package/icons/folder-gulp.svg +1 -0
  276. package/icons/folder-helper-open.svg +1 -1
  277. package/icons/folder-helper.svg +1 -1
  278. package/icons/folder-home-open.svg +1 -0
  279. package/icons/folder-home.svg +1 -0
  280. package/icons/folder-hook-open.svg +1 -1
  281. package/icons/folder-hook.svg +1 -1
  282. package/icons/folder-husky-open.svg +1 -0
  283. package/icons/folder-husky.svg +1 -0
  284. package/icons/folder-i18n-open.svg +1 -2
  285. package/icons/folder-i18n.svg +1 -2
  286. package/icons/folder-images-open.svg +1 -2
  287. package/icons/folder-images.svg +1 -2
  288. package/icons/folder-import-open.svg +1 -1
  289. package/icons/folder-import.svg +1 -1
  290. package/icons/folder-include-open.svg +1 -2
  291. package/icons/folder-include.svg +1 -2
  292. package/icons/folder-intellij-open.svg +1 -0
  293. package/icons/folder-intellij-open_light.svg +1 -0
  294. package/icons/folder-intellij.svg +1 -0
  295. package/icons/folder-intellij_light.svg +1 -0
  296. package/icons/folder-interface-open.svg +1 -0
  297. package/icons/folder-interface.svg +1 -0
  298. package/icons/folder-ios-open.svg +1 -1
  299. package/icons/folder-ios.svg +1 -1
  300. package/icons/folder-java-open.svg +2 -0
  301. package/icons/folder-java.svg +2 -0
  302. package/icons/folder-javascript-open.svg +1 -2
  303. package/icons/folder-javascript.svg +1 -2
  304. package/icons/folder-jinja-open.svg +1 -2
  305. package/icons/folder-jinja-open_light.svg +1 -2
  306. package/icons/folder-jinja.svg +1 -2
  307. package/icons/folder-jinja_light.svg +1 -2
  308. package/icons/folder-job-open.svg +1 -1
  309. package/icons/folder-job.svg +1 -1
  310. package/icons/folder-json-open.svg +1 -0
  311. package/icons/folder-json.svg +1 -0
  312. package/icons/folder-keys-open.svg +1 -1
  313. package/icons/folder-keys.svg +1 -1
  314. package/icons/folder-kubernetes-open.svg +1 -1
  315. package/icons/folder-kubernetes.svg +1 -5
  316. package/icons/folder-layout-open.svg +1 -1
  317. package/icons/folder-layout.svg +1 -1
  318. package/icons/folder-less-open.svg +1 -1
  319. package/icons/folder-less.svg +1 -1
  320. package/icons/folder-lib-open.svg +1 -2
  321. package/icons/folder-lib.svg +1 -2
  322. package/icons/folder-log-open.svg +1 -2
  323. package/icons/folder-log.svg +1 -2
  324. package/icons/folder-mail-open.svg +1 -1
  325. package/icons/folder-mail.svg +1 -1
  326. package/icons/folder-mappings-open.svg +1 -1
  327. package/icons/folder-mappings.svg +1 -1
  328. package/icons/folder-markdown-open.svg +1 -2
  329. package/icons/folder-markdown.svg +1 -2
  330. package/icons/folder-messages-open.svg +1 -1
  331. package/icons/folder-messages.svg +1 -1
  332. package/icons/folder-meta-open.svg +1 -1
  333. package/icons/folder-meta.svg +1 -1
  334. package/icons/folder-middleware-open.svg +1 -1
  335. package/icons/folder-middleware.svg +1 -1
  336. package/icons/folder-mjml-open.svg +1 -0
  337. package/icons/folder-mjml.svg +1 -0
  338. package/icons/folder-mobile-open.svg +1 -0
  339. package/icons/folder-mobile.svg +1 -0
  340. package/icons/folder-mock-open.svg +1 -1
  341. package/icons/folder-mock.svg +1 -1
  342. package/icons/folder-next-open.svg +2 -0
  343. package/icons/folder-next.svg +2 -0
  344. package/icons/folder-ngrx-actions-open.svg +1 -2
  345. package/icons/folder-ngrx-actions.svg +1 -2
  346. package/icons/folder-ngrx-effects-open.svg +1 -2
  347. package/icons/folder-ngrx-effects.svg +1 -2
  348. package/icons/folder-ngrx-entities-open.svg +1 -2
  349. package/icons/folder-ngrx-entities.svg +1 -2
  350. package/icons/folder-ngrx-reducer-open.svg +1 -2
  351. package/icons/folder-ngrx-reducer.svg +1 -2
  352. package/icons/folder-ngrx-selectors-open.svg +1 -0
  353. package/icons/folder-ngrx-selectors.svg +1 -0
  354. package/icons/folder-ngrx-state-open.svg +1 -1
  355. package/icons/folder-ngrx-state.svg +1 -1
  356. package/icons/folder-ngrx-store-open.svg +1 -1
  357. package/icons/folder-ngrx-store.svg +1 -1
  358. package/icons/folder-node-open.svg +1 -1
  359. package/icons/folder-node.svg +1 -1
  360. package/icons/folder-nuxt-open.svg +1 -0
  361. package/icons/folder-nuxt.svg +1 -0
  362. package/icons/folder-other-open.svg +1 -1
  363. package/icons/folder-other.svg +1 -1
  364. package/icons/folder-packages-open.svg +1 -1
  365. package/icons/folder-packages.svg +1 -1
  366. package/icons/folder-php-open.svg +1 -2
  367. package/icons/folder-php.svg +1 -2
  368. package/icons/folder-phpmailer-open.svg +1 -2
  369. package/icons/folder-phpmailer.svg +1 -2
  370. package/icons/folder-pipe-open.svg +1 -1
  371. package/icons/folder-pipe.svg +1 -1
  372. package/icons/folder-plugin-open.svg +1 -1
  373. package/icons/folder-plugin.svg +1 -1
  374. package/icons/folder-prisma-open.svg +1 -1
  375. package/icons/folder-prisma.svg +1 -1
  376. package/icons/folder-private-open.svg +1 -1
  377. package/icons/folder-private.svg +1 -1
  378. package/icons/folder-project-open.svg +1 -0
  379. package/icons/folder-project.svg +1 -0
  380. package/icons/folder-public-open.svg +1 -2
  381. package/icons/folder-public.svg +1 -2
  382. package/icons/folder-python-open.svg +1 -1
  383. package/icons/folder-python.svg +1 -1
  384. package/icons/folder-quasar-open.svg +1 -0
  385. package/icons/folder-quasar.svg +1 -0
  386. package/icons/folder-queue-open.svg +2 -0
  387. package/icons/folder-queue.svg +2 -0
  388. package/icons/folder-react-components-open.svg +1 -2
  389. package/icons/folder-react-components.svg +1 -2
  390. package/icons/folder-redux-actions-open.svg +1 -1
  391. package/icons/folder-redux-actions.svg +1 -1
  392. package/icons/folder-redux-reducer-open.svg +1 -2
  393. package/icons/folder-redux-reducer.svg +1 -2
  394. package/icons/folder-redux-selector-open.svg +1 -0
  395. package/icons/folder-redux-selector.svg +1 -0
  396. package/icons/folder-redux-store-open.svg +1 -2
  397. package/icons/folder-redux-store.svg +1 -2
  398. package/icons/folder-resolver-open.svg +2 -0
  399. package/icons/folder-resolver.svg +2 -0
  400. package/icons/folder-resource-open.svg +1 -2
  401. package/icons/folder-resource.svg +1 -2
  402. package/icons/folder-review-open.svg +1 -1
  403. package/icons/folder-review.svg +1 -1
  404. package/icons/folder-routes-open.svg +1 -1
  405. package/icons/folder-routes.svg +1 -1
  406. package/icons/folder-rules-open.svg +1 -1
  407. package/icons/folder-rules.svg +1 -1
  408. package/icons/folder-sass-open.svg +1 -1
  409. package/icons/folder-sass.svg +1 -1
  410. package/icons/folder-scala-open.svg +1 -0
  411. package/icons/folder-scala.svg +1 -0
  412. package/icons/folder-scripts-open.svg +1 -2
  413. package/icons/folder-scripts.svg +1 -2
  414. package/icons/folder-secure-open.svg +1 -1
  415. package/icons/folder-secure.svg +1 -1
  416. package/icons/folder-server-open.svg +1 -1
  417. package/icons/folder-server.svg +1 -1
  418. package/icons/folder-serverless-open.svg +5 -1
  419. package/icons/folder-serverless.svg +5 -1
  420. package/icons/folder-shared-open.svg +1 -1
  421. package/icons/folder-shared.svg +1 -1
  422. package/icons/folder-src-open.svg +1 -2
  423. package/icons/folder-src.svg +1 -2
  424. package/icons/folder-stack-open.svg +1 -1
  425. package/icons/folder-stack.svg +1 -1
  426. package/icons/folder-stencil-open.svg +1 -0
  427. package/icons/folder-stencil.svg +1 -0
  428. package/icons/folder-storybook-open.svg +1 -0
  429. package/icons/folder-storybook.svg +1 -0
  430. package/icons/folder-stylus-open.svg +1 -1
  431. package/icons/folder-stylus.svg +1 -1
  432. package/icons/folder-sublime-open.svg +1 -2
  433. package/icons/folder-sublime.svg +1 -2
  434. package/icons/folder-svelte-open.svg +1 -0
  435. package/icons/folder-svelte.svg +1 -0
  436. package/icons/folder-svg-open.svg +1 -1
  437. package/icons/folder-svg.svg +1 -1
  438. package/icons/folder-syntax-open.svg +1 -1
  439. package/icons/folder-syntax.svg +1 -1
  440. package/icons/folder-target-open.svg +2 -0
  441. package/icons/folder-target.svg +2 -0
  442. package/icons/folder-tasks-open.svg +1 -1
  443. package/icons/folder-tasks.svg +1 -1
  444. package/icons/folder-temp-open.svg +1 -2
  445. package/icons/folder-temp.svg +1 -2
  446. package/icons/folder-template-open.svg +1 -1
  447. package/icons/folder-template.svg +1 -1
  448. package/icons/folder-terraform-open.svg +1 -0
  449. package/icons/folder-terraform.svg +1 -0
  450. package/icons/folder-test-open.svg +1 -1
  451. package/icons/folder-test.svg +1 -1
  452. package/icons/folder-theme-open.svg +1 -2
  453. package/icons/folder-theme.svg +1 -2
  454. package/icons/folder-tools-open.svg +1 -1
  455. package/icons/folder-tools.svg +1 -1
  456. package/icons/folder-typescript-open.svg +1 -1
  457. package/icons/folder-typescript.svg +1 -1
  458. package/icons/folder-unity-open.svg +2 -0
  459. package/icons/folder-unity.svg +2 -0
  460. package/icons/folder-update-open.svg +1 -0
  461. package/icons/folder-update.svg +1 -0
  462. package/icons/folder-upload-open.svg +1 -1
  463. package/icons/folder-upload.svg +1 -1
  464. package/icons/folder-utils-open.svg +1 -1
  465. package/icons/folder-utils.svg +1 -1
  466. package/icons/folder-vercel-open.svg +4 -0
  467. package/icons/folder-vercel.svg +4 -0
  468. package/icons/folder-video-open.svg +1 -2
  469. package/icons/folder-video.svg +1 -2
  470. package/icons/folder-views-open.svg +1 -1
  471. package/icons/folder-views.svg +1 -1
  472. package/icons/folder-vm-open.svg +1 -1
  473. package/icons/folder-vm.svg +1 -1
  474. package/icons/folder-vscode-open.svg +1 -2
  475. package/icons/folder-vscode.svg +1 -2
  476. package/icons/folder-vue-directives-open.svg +1 -0
  477. package/icons/folder-vue-directives.svg +1 -0
  478. package/icons/folder-vue-open.svg +1 -1
  479. package/icons/folder-vue.svg +1 -1
  480. package/icons/folder-vuepress-open.svg +1 -0
  481. package/icons/folder-vuepress.svg +1 -0
  482. package/icons/folder-vuex-store-open.svg +1 -1
  483. package/icons/folder-vuex-store.svg +1 -1
  484. package/icons/folder-wakatime-open.svg +1 -2
  485. package/icons/folder-wakatime.svg +1 -2
  486. package/icons/folder-webpack-open.svg +1 -2
  487. package/icons/folder-webpack.svg +1 -2
  488. package/icons/folder-wordpress-open.svg +1 -2
  489. package/icons/folder-wordpress.svg +1 -1
  490. package/icons/folder-yarn-open.svg +1 -0
  491. package/icons/folder-yarn.svg +1 -0
  492. package/icons/font.svg +1 -3
  493. package/icons/forth.svg +1 -0
  494. package/icons/fortran.svg +1 -0
  495. package/icons/foxpro.svg +1 -1
  496. package/icons/fsharp.svg +1 -7
  497. package/icons/fusebox.svg +1 -20
  498. package/icons/gatsby.svg +1 -5
  499. package/icons/gcp.svg +1 -0
  500. package/icons/gemfile.svg +1 -1
  501. package/icons/gemini.svg +1 -0
  502. package/icons/git.svg +1 -4
  503. package/icons/gitlab.svg +1 -43
  504. package/icons/gitpod.svg +1 -0
  505. package/icons/gleam.svg +4 -0
  506. package/icons/go-mod.svg +1 -0
  507. package/icons/go.svg +1 -8
  508. package/icons/go_gopher.svg +1 -25
  509. package/icons/godot-assets.svg +1 -1
  510. package/icons/godot.svg +1 -1
  511. package/icons/gradle.svg +1 -3
  512. package/icons/grain.svg +1 -0
  513. package/icons/graphcool.svg +1 -6
  514. package/icons/graphql.svg +1 -11
  515. package/icons/gridsome.svg +4 -0
  516. package/icons/groovy.svg +1 -3
  517. package/icons/grunt.svg +1 -1
  518. package/icons/gulp.svg +1 -3
  519. package/icons/h.svg +1 -6
  520. package/icons/hack.svg +1 -2
  521. package/icons/haml.svg +1 -5
  522. package/icons/handlebars.svg +1 -3
  523. package/icons/hardhat.svg +4 -0
  524. package/icons/haskell.svg +1 -8
  525. package/icons/haxe.svg +1 -17
  526. package/icons/hcl.svg +1 -1
  527. package/icons/hcl_light.svg +1 -1
  528. package/icons/helm.svg +1 -1
  529. package/icons/heroku.svg +1 -1
  530. package/icons/hex.svg +1 -0
  531. package/icons/horusec.svg +1 -0
  532. package/icons/hpp.svg +1 -7
  533. package/icons/html.svg +1 -3
  534. package/icons/http.svg +1 -3
  535. package/icons/husky.svg +1 -0
  536. package/icons/i18n.svg +1 -1
  537. package/icons/idris.svg +1 -0
  538. package/icons/image.svg +1 -3
  539. package/icons/imba.svg +1 -0
  540. package/icons/ionic.svg +1 -1
  541. package/icons/istanbul.svg +1 -1
  542. package/icons/jar.svg +1 -0
  543. package/icons/java.svg +1 -3
  544. package/icons/javaclass.svg +1 -0
  545. package/icons/javascript-map.svg +1 -6
  546. package/icons/javascript.svg +1 -3
  547. package/icons/jenkins.svg +1 -1
  548. package/icons/jest.svg +1 -1
  549. package/icons/jinja.svg +1 -17
  550. package/icons/jinja_light.svg +1 -17
  551. package/icons/jsconfig.svg +1 -0
  552. package/icons/json.svg +1 -1
  553. package/icons/julia.svg +1 -9
  554. package/icons/jupyter.svg +1 -1
  555. package/icons/karma.svg +1 -8
  556. package/icons/key.svg +1 -3
  557. package/icons/kivy.svg +1 -9
  558. package/icons/kl.svg +1 -8
  559. package/icons/kotlin.svg +1 -14
  560. package/icons/kusto.svg +1 -0
  561. package/icons/laravel.svg +1 -5
  562. package/icons/lerna.svg +1 -0
  563. package/icons/less.svg +1 -1
  564. package/icons/lib.svg +1 -3
  565. package/icons/lighthouse.svg +3 -0
  566. package/icons/lilypond.svg +1 -0
  567. package/icons/liquid.svg +1 -0
  568. package/icons/lisp.svg +1 -0
  569. package/icons/livescript.svg +1 -18
  570. package/icons/lock.svg +1 -3
  571. package/icons/log.svg +1 -4
  572. package/icons/lolcode.svg +1 -0
  573. package/icons/lua.svg +1 -7
  574. package/icons/makefile.svg +1 -1
  575. package/icons/markdown.svg +1 -3
  576. package/icons/markojs.svg +1 -12
  577. package/icons/mathematica.svg +1 -3
  578. package/icons/matlab.svg +1 -8
  579. package/icons/maven.svg +1 -0
  580. package/icons/mdx.svg +1 -1
  581. package/icons/merlin.svg +1 -5
  582. package/icons/meson.svg +1 -0
  583. package/icons/minecraft.svg +1 -0
  584. package/icons/mint.svg +1 -1
  585. package/icons/mjml.svg +1 -4
  586. package/icons/mocha.svg +1 -2
  587. package/icons/modernizr.svg +1 -0
  588. package/icons/moonscript.svg +1 -0
  589. package/icons/mxml.svg +1 -3
  590. package/icons/ndst.svg +7 -0
  591. package/icons/nest-controller.svg +1 -0
  592. package/icons/nest-decorator.svg +1 -0
  593. package/icons/nest-filter.svg +1 -0
  594. package/icons/nest-gateway.svg +1 -0
  595. package/icons/nest-guard.svg +1 -0
  596. package/icons/nest-middleware.svg +1 -0
  597. package/icons/nest-module.svg +1 -0
  598. package/icons/nest-pipe.svg +1 -0
  599. package/icons/nest-resolver.svg +1 -0
  600. package/icons/nest-service.svg +1 -0
  601. package/icons/nest.svg +1 -0
  602. package/icons/netlify.svg +1 -0
  603. package/icons/next.svg +3 -0
  604. package/icons/next_light.svg +3 -0
  605. package/icons/nginx.svg +1 -0
  606. package/icons/ngrx-actions.svg +1 -4
  607. package/icons/ngrx-effects.svg +1 -4
  608. package/icons/ngrx-entity.svg +1 -4
  609. package/icons/ngrx-reducer.svg +1 -4
  610. package/icons/ngrx-selectors.svg +1 -0
  611. package/icons/ngrx-state.svg +1 -4
  612. package/icons/nim.svg +1 -1
  613. package/icons/nix.svg +1 -6
  614. package/icons/nodejs.svg +1 -3
  615. package/icons/nodejs_alt.svg +1 -1
  616. package/icons/nodemon.svg +1 -7
  617. package/icons/npm.svg +1 -8
  618. package/icons/nrwl.svg +1 -0
  619. package/icons/nuget.svg +1 -0
  620. package/icons/nunjucks.svg +1 -3
  621. package/icons/nuxt.svg +1 -0
  622. package/icons/nuxt_light.svg +1 -0
  623. package/icons/ocaml.svg +1 -1
  624. package/icons/odin.svg +6 -0
  625. package/icons/opa.svg +1 -0
  626. package/icons/opam.svg +1 -0
  627. package/icons/parcel.svg +4 -0
  628. package/icons/pascal.svg +1 -0
  629. package/icons/pawn.svg +1 -0
  630. package/icons/pdf.svg +1 -1
  631. package/icons/percy.svg +1 -0
  632. package/icons/perl.svg +1 -3
  633. package/icons/php-cs-fixer.svg +1 -0
  634. package/icons/php.svg +1 -1
  635. package/icons/php_elephant.svg +1 -4
  636. package/icons/php_elephant_pink.svg +1 -0
  637. package/icons/phpunit.svg +1 -0
  638. package/icons/pipeline.svg +1 -0
  639. package/icons/playwright.svg +7 -0
  640. package/icons/pnpm.svg +9 -0
  641. package/icons/pnpm_light.svg +7 -0
  642. package/icons/poetry.svg +1 -0
  643. package/icons/postcss.svg +1 -9
  644. package/icons/posthtml.svg +1 -0
  645. package/icons/powerpoint.svg +1 -3
  646. package/icons/powershell.svg +1 -1
  647. package/icons/prettier.svg +1 -35
  648. package/icons/prisma.svg +1 -1
  649. package/icons/processing.svg +10 -5
  650. package/icons/prolog.svg +1 -0
  651. package/icons/proto.svg +1 -0
  652. package/icons/protractor.svg +1 -1
  653. package/icons/pug.svg +1 -22
  654. package/icons/puppet.svg +1 -13
  655. package/icons/purescript.svg +1 -1
  656. package/icons/python-misc.svg +1 -1
  657. package/icons/python.svg +1 -8
  658. package/icons/qsharp.svg +1 -0
  659. package/icons/quasar.svg +1 -0
  660. package/icons/r.svg +1 -4
  661. package/icons/racket.svg +1 -1
  662. package/icons/raml.svg +1 -1
  663. package/icons/razor.svg +1 -1
  664. package/icons/react.svg +1 -3
  665. package/icons/react_ts.svg +1 -1
  666. package/icons/readme.svg +1 -3
  667. package/icons/reason.svg +1 -3
  668. package/icons/red.svg +1 -8
  669. package/icons/redux-action.svg +1 -1
  670. package/icons/redux-reducer.svg +1 -1
  671. package/icons/redux-selector.svg +1 -0
  672. package/icons/redux-store.svg +1 -1
  673. package/icons/remix.svg +4 -0
  674. package/icons/remix_light.svg +4 -0
  675. package/icons/renovate.svg +1 -0
  676. package/icons/replit.svg +1 -0
  677. package/icons/rescript.svg +1 -0
  678. package/icons/restql.svg +1 -60
  679. package/icons/riot.svg +1 -3
  680. package/icons/roadmap.svg +1 -0
  681. package/icons/robot.svg +1 -1
  682. package/icons/robots.svg +1 -0
  683. package/icons/rollup.svg +1 -50
  684. package/icons/rome.svg +5 -0
  685. package/icons/routing.svg +1 -3
  686. package/icons/rubocop.svg +1 -0
  687. package/icons/rubocop_light.svg +1 -0
  688. package/icons/ruby.svg +1 -3
  689. package/icons/rust.svg +1 -3
  690. package/icons/salesforce.svg +1 -0
  691. package/icons/san.svg +1 -1
  692. package/icons/sas.svg +1 -0
  693. package/icons/sass.svg +1 -1
  694. package/icons/sbt.svg +1 -6
  695. package/icons/scala.svg +1 -1
  696. package/icons/scheme.svg +1 -1
  697. package/icons/search.svg +1 -0
  698. package/icons/semantic-release.svg +1 -1
  699. package/icons/semantic-release_light.svg +1 -1
  700. package/icons/sentry.svg +1 -0
  701. package/icons/sequelize.svg +1 -31
  702. package/icons/serverless.svg +4 -0
  703. package/icons/settings.svg +1 -3
  704. package/icons/shaderlab.svg +1 -3
  705. package/icons/silverstripe.svg +1 -0
  706. package/icons/siyuan.svg +9 -0
  707. package/icons/sketch.svg +1 -0
  708. package/icons/slim.svg +1 -4
  709. package/icons/slug.svg +1 -0
  710. package/icons/smarty.svg +1 -3
  711. package/icons/sml.svg +1 -0
  712. package/icons/snowpack.svg +1 -0
  713. package/icons/snowpack_light.svg +1 -0
  714. package/icons/snyk.svg +1 -23
  715. package/icons/solidity.svg +1 -7
  716. package/icons/steadybit.svg +1 -0
  717. package/icons/stencil.svg +1 -1
  718. package/icons/stitches.svg +1 -0
  719. package/icons/stitches_light.svg +1 -0
  720. package/icons/storybook.svg +1 -1
  721. package/icons/stryker.svg +1 -0
  722. package/icons/stylelint.svg +1 -12
  723. package/icons/stylelint_light.svg +1 -12
  724. package/icons/stylus.svg +1 -1
  725. package/icons/sublime.svg +1 -1
  726. package/icons/svelte.svg +1 -0
  727. package/icons/svg.svg +1 -1
  728. package/icons/svgo.svg +1 -0
  729. package/icons/svgr.svg +4 -0
  730. package/icons/swc.svg +1 -12
  731. package/icons/swift.svg +1 -1
  732. package/icons/table.svg +1 -3
  733. package/icons/tailwindcss.svg +1 -1
  734. package/icons/tauri.svg +9 -0
  735. package/icons/tcl.svg +1 -0
  736. package/icons/teal.svg +1 -0
  737. package/icons/template.svg +4 -0
  738. package/icons/terraform.svg +1 -12
  739. package/icons/test-js.svg +1 -1
  740. package/icons/test-jsx.svg +1 -4
  741. package/icons/test-ts.svg +1 -1
  742. package/icons/tex.svg +1 -1
  743. package/icons/textlint.svg +1 -0
  744. package/icons/tilt.svg +1 -0
  745. package/icons/tobi.svg +4 -0
  746. package/icons/tobimake.svg +14 -0
  747. package/icons/todo.svg +1 -1
  748. package/icons/travis.svg +1 -13
  749. package/icons/tsconfig.svg +1 -0
  750. package/icons/tune.svg +1 -7
  751. package/icons/turborepo.svg +12 -0
  752. package/icons/turborepo_light.svg +12 -0
  753. package/icons/twig.svg +1 -3
  754. package/icons/twine.svg +1 -0
  755. package/icons/typescript-def.svg +1 -6
  756. package/icons/typescript.svg +1 -3
  757. package/icons/uml.svg +1 -0
  758. package/icons/uml_light.svg +1 -0
  759. package/icons/url.svg +1 -3
  760. package/icons/vagrant.svg +1 -1
  761. package/icons/vala.svg +1 -0
  762. package/icons/velocity.svg +1 -1
  763. package/icons/vercel.svg +1 -0
  764. package/icons/vercel_light.svg +1 -0
  765. package/icons/verilog.svg +1 -3
  766. package/icons/vfl.svg +1 -16
  767. package/icons/video.svg +1 -4
  768. package/icons/vim.svg +1 -0
  769. package/icons/virtual.svg +1 -1
  770. package/icons/visualstudio.svg +1 -4
  771. package/icons/vite.svg +1 -0
  772. package/icons/vlang.svg +1 -0
  773. package/icons/vscode.svg +1 -9
  774. package/icons/vue-config.svg +1 -1
  775. package/icons/vue.svg +1 -1
  776. package/icons/vuex-store.svg +1 -1
  777. package/icons/wakatime.svg +1 -21
  778. package/icons/wakatime_light.svg +1 -21
  779. package/icons/wallaby.svg +1 -1
  780. package/icons/watchman.svg +1 -4
  781. package/icons/webassembly.svg +1 -1
  782. package/icons/webhint.svg +1 -5
  783. package/icons/webpack.svg +1 -6
  784. package/icons/wepy.svg +1 -1
  785. package/icons/windicss.svg +1 -0
  786. package/icons/wolframlanguage.svg +1 -13
  787. package/icons/word.svg +1 -3
  788. package/icons/xaml.svg +1 -3
  789. package/icons/xml.svg +1 -4
  790. package/icons/yaml.svg +1 -1
  791. package/icons/yang.svg +1 -1
  792. package/icons/yarn.svg +1 -3
  793. package/icons/zig.svg +1 -0
  794. package/icons/zip.svg +1 -3
  795. package/images/bloop.png +0 -0
  796. package/images/contributors.png +0 -0
  797. package/images/fileIcons.png +0 -0
  798. package/images/folderIcons.png +0 -0
  799. package/images/stepsize.png +0 -0
  800. package/logo.svg +21 -21
  801. package/material-colors.yml +257 -0
  802. package/package.json +264 -220
  803. package/package.nls.de.json +35 -34
  804. package/package.nls.es.json +32 -31
  805. package/package.nls.fr.json +32 -31
  806. package/package.nls.ja.json +35 -0
  807. package/package.nls.json +35 -34
  808. package/package.nls.nl.json +35 -0
  809. package/package.nls.pl.json +35 -0
  810. package/package.nls.pt-BR.json +32 -31
  811. package/package.nls.pt-PT.json +32 -31
  812. package/package.nls.ru.json +32 -31
  813. package/package.nls.zh-CN.json +32 -31
  814. package/package.nls.zh-TW.json +32 -0
  815. package/src/commands/activate.ts +26 -30
  816. package/src/commands/explorerArrows.ts +55 -0
  817. package/src/commands/folderColor.ts +96 -88
  818. package/src/commands/folders.ts +55 -41
  819. package/src/commands/grayscale.ts +55 -54
  820. package/src/commands/iconPacks.ts +68 -65
  821. package/src/commands/index.ts +30 -27
  822. package/src/commands/opacity.ts +46 -47
  823. package/src/commands/restoreConfig.ts +14 -14
  824. package/src/commands/saturation.ts +46 -47
  825. package/src/extension.ts +35 -35
  826. package/src/helpers/changeDetection.ts +68 -58
  827. package/src/helpers/customIcons.ts +8 -0
  828. package/src/helpers/fileConfig.ts +37 -0
  829. package/src/helpers/index.ts +100 -87
  830. package/src/helpers/objects.ts +58 -55
  831. package/src/helpers/types.ts +7 -0
  832. package/src/helpers/versioning.ts +73 -58
  833. package/src/i18n/index.ts +78 -82
  834. package/src/i18n/lang-de.ts +54 -43
  835. package/src/i18n/lang-en.ts +53 -52
  836. package/src/i18n/lang-es.ts +53 -43
  837. package/src/i18n/lang-fr.ts +53 -43
  838. package/src/i18n/lang-ja.ts +54 -0
  839. package/src/i18n/lang-nl.ts +54 -0
  840. package/src/i18n/lang-pl.ts +52 -0
  841. package/src/i18n/lang-pt-br.ts +53 -43
  842. package/src/i18n/lang-pt-pt.ts +53 -43
  843. package/src/i18n/lang-ru.ts +52 -43
  844. package/src/i18n/lang-uk.ts +54 -22
  845. package/src/i18n/lang-zh-cn.ts +52 -43
  846. package/src/i18n/lang-zh-tw.ts +52 -0
  847. package/src/icons/fileIcons.ts +1836 -784
  848. package/src/icons/folderIcons.ts +750 -183
  849. package/src/icons/generator/constants.ts +29 -29
  850. package/src/icons/generator/fileGenerator.ts +216 -116
  851. package/src/icons/generator/folderGenerator.ts +340 -182
  852. package/src/icons/generator/iconOpacity.ts +111 -89
  853. package/src/icons/generator/iconSaturation.ts +140 -118
  854. package/src/icons/generator/index.ts +7 -7
  855. package/src/icons/generator/jsonGenerator.ts +187 -98
  856. package/src/icons/generator/languageGenerator.ts +127 -67
  857. package/src/icons/index.ts +4 -4
  858. package/src/icons/languageIcons.ts +134 -74
  859. package/src/messages/outdated.ts +33 -24
  860. package/src/messages/reload.ts +32 -32
  861. package/src/messages/start.ts +12 -13
  862. package/src/messages/update.ts +48 -48
  863. package/src/messages/welcome.ts +47 -47
  864. package/src/models/helpers/index.ts +1 -0
  865. package/src/models/helpers/themeStatus.ts +5 -0
  866. package/src/models/i18n/index.ts +1 -1
  867. package/src/models/i18n/translation.ts +50 -50
  868. package/src/models/iconConfiguration.ts +37 -37
  869. package/src/models/icons/defaultIcon.ts +16 -16
  870. package/src/models/icons/files/fileIcon.ts +49 -40
  871. package/src/models/icons/files/fileTypes.ts +14 -14
  872. package/src/models/icons/files/index.ts +2 -2
  873. package/src/models/icons/folders/folderIcon.ts +34 -34
  874. package/src/models/icons/folders/folderTheme.ts +23 -23
  875. package/src/models/icons/folders/index.ts +2 -2
  876. package/src/models/icons/iconJsonOptions.ts +23 -23
  877. package/src/models/icons/iconPack.ts +12 -11
  878. package/src/models/icons/index.ts +6 -6
  879. package/src/models/icons/languages/index.ts +1 -1
  880. package/src/models/icons/languages/languageIdentifier.ts +26 -26
  881. package/src/models/index.ts +4 -4
  882. package/src/models/scripts/contributors/contributor.ts +22 -0
  883. package/src/models/scripts/contributors/contributorsConfig.ts +10 -0
  884. package/src/scripts/contributors/contributors.css +24 -0
  885. package/src/scripts/contributors/index.ts +138 -0
  886. package/src/scripts/helpers/painter.ts +5 -5
  887. package/src/scripts/helpers/screenshots.ts +32 -0
  888. package/src/scripts/helpers/similarity.ts +47 -42
  889. package/src/scripts/helpers/titleCase.ts +7 -4
  890. package/src/scripts/icons/checks/checkIconAvailability.ts +215 -151
  891. package/src/scripts/icons/checks/checkIconConflicts.ts +154 -115
  892. package/src/scripts/icons/checks/checkIconUsage.ts +141 -110
  893. package/src/scripts/icons/checks/index.ts +7 -7
  894. package/src/scripts/icons/generateJson.ts +11 -10
  895. package/src/scripts/preview/index.ts +40 -24
  896. package/src/scripts/preview/preview.ts +165 -112
  897. package/src/scripts/preview/style.css +48 -43
  898. package/src/test/runTest.ts +26 -0
  899. package/src/test/spec/i18n/i18n.spec.ts +61 -0
  900. package/src/test/spec/icons/fileIcons.spec.ts +250 -0
  901. package/src/test/spec/icons/folderIcons.spec.ts +418 -0
  902. package/src/test/spec/icons/languageIcons.spec.ts +184 -0
  903. package/src/test/spec/index.ts +36 -0
  904. package/src/web/extension.ts +10 -0
  905. package/svgo.config.js +12 -0
  906. package/tsconfig.json +23 -20
  907. package/.travis.yml +0 -20
  908. package/appveyor.yml +0 -24
  909. package/icons/processing_light.svg +0 -5
  910. package/icons/stencil_light.svg +0 -1
  911. package/src/commands/folderArrows.ts +0 -60
  912. package/src/models/advancedWorkspaceConfiguration.ts +0 -7
  913. package/src/scripts/preview/screenshots.ts +0 -28
  914. package/src/test/i18n/i18n.test.ts +0 -37
  915. package/src/test/icons/fileIcons.test.ts +0 -185
  916. package/src/test/icons/folderIcons.test.ts +0 -356
  917. package/src/test/icons/languageIcons.test.ts +0 -138
  918. package/src/test/index.ts +0 -23
  919. package/tslint.json +0 -104
  920. package/webpack.config.js +0 -40
@@ -1,65 +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
- handleQuickPickActions(response);
12
- } catch (error) {
13
- console.error(error);
14
- }
15
- };
16
-
17
- /** Show QuickPick items to select preferred configuration for the icon packs. */
18
- const showQuickPickItems = (activePack: string) => {
19
- const packs = [...getAllIconPacks().sort(), 'none'];
20
- const options = packs.map((pack): vscode.QuickPickItem => {
21
- const packLabel = helpers.toTitleCase(pack.replace('_', ' + '));
22
- const active = isPackActive(activePack, pack);
23
- const iconPacksDeactivated = pack === 'none' && activePack === '';
24
-
25
- return {
26
- description: packLabel,
27
- detail: i18n.translate(`iconPacks.${pack === 'none' ? 'disabled' : 'description'}`, packLabel),
28
- label: iconPacksDeactivated ? '\u2714' : active ? '\u2714' : '\u25FB'
29
- };
30
- });
31
-
32
- return vscode.window.showQuickPick(options, {
33
- placeHolder: i18n.translate('iconPacks.selectPack'),
34
- ignoreFocusOut: false,
35
- matchOnDescription: true,
36
- matchOnDetail: true
37
- });
38
- };
39
-
40
- /** Handle the actions from the QuickPick. */
41
- const handleQuickPickActions = (value: vscode.QuickPickItem) => {
42
- if (!value || !value.description) return;
43
- const decision = value.description.replace(' + ', '_').toLowerCase();
44
-
45
- helpers.setThemeConfig('activeIconPack', decision === 'none' ? '' : decision, true);
46
- };
47
-
48
- const getActiveIconPack = (): string => {
49
- return helpers.getMaterialIconsJSON().options.activeIconPack;
50
- };
51
-
52
- /** Get all packs that can be used in this icon theme. */
53
- export const getAllIconPacks = () => {
54
- const packs: string[] = [];
55
- for (let item in IconPack) {
56
- if (isNaN(Number(item))) {
57
- packs.push(IconPack[item].toLowerCase());
58
- }
59
- }
60
- return packs;
61
- };
62
-
63
- const isPackActive = (activePack: string, pack: string) => {
64
- return activePack.toLowerCase() === pack.toLowerCase();
65
- };
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,27 +1,30 @@
1
- import * as vscode from 'vscode';
2
- import { activateIcons } from './activate';
3
- import { toggleFolderArrows } from './folderArrows';
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 = {
13
- activateIcons,
14
- toggleIconPacks,
15
- changeFolderTheme,
16
- changeFolderColor,
17
- restoreDefaultConfig,
18
- toggleFolderArrows,
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(`material-icon-theme.${commandName}`, callCommand);
27
- });
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,47 +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 = Number(await showInput(currentOpacityValue));
11
- return setOpacityConfig(response);
12
- } catch (error) {
13
- console.error(error);
14
- }
15
- };
16
-
17
- /** Show input to enter the opacity value. */
18
- const showInput = (opacity: number) => {
19
- return vscode.window.showInputBox({
20
- placeHolder: i18n.translate('opacity.inputPlaceholder'),
21
- ignoreFocusOut: true,
22
- value: String(opacity),
23
- validateInput: validateOpacityInput
24
- });
25
- };
26
-
27
- /** Validate the opacity value which was inserted by the user. */
28
- const validateOpacityInput = (opacityInput: string) => {
29
- if (!validateOpacityValue(+opacityInput)) {
30
- return i18n.translate('opacity.wrongValue');
31
- }
32
- return undefined;
33
- };
34
-
35
- /** Get the current value of the opacity of the icons. */
36
- export const getCurrentOpacityValue = (): number => {
37
- const defaultOptions = getDefaultIconOptions();
38
- const config = helpers.getMaterialIconsJSON();
39
- return config.options.opacity === undefined ?
40
- defaultOptions.opacity : config.options.opacity;
41
- };
42
-
43
- const setOpacityConfig = (opacity: number) => {
44
- if (opacity !== undefined) {
45
- return helpers.setThemeConfig('opacity', opacity, true);
46
- }
47
- };
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 * as helpers from './../helpers';
2
-
3
- /** Restore all configurations to default. */
4
- export const restoreDefaultConfig = () => {
5
- helpers.setThemeConfig('activeIconPack', undefined, true);
6
- helpers.setThemeConfig('folders.theme', undefined, true);
7
- helpers.setThemeConfig('folders.color', undefined, true);
8
- helpers.setThemeConfig('hidesExplorerArrows', undefined, true);
9
- helpers.setThemeConfig('opacity', undefined, true);
10
- helpers.setThemeConfig('saturation', undefined, true);
11
- helpers.setThemeConfig('files.associations', undefined, true);
12
- helpers.setThemeConfig('folders.associations', undefined, true);
13
- helpers.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,47 +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 = Number(await showInput(currentSaturationValue));
11
- setSaturationConfig(response);
12
- } catch (error) {
13
- console.error(error);
14
- }
15
- };
16
-
17
- /** Show input to enter the saturation value. */
18
- const showInput = (saturation: number) => {
19
- return vscode.window.showInputBox({
20
- placeHolder: i18n.translate('saturation.inputPlaceholder'),
21
- ignoreFocusOut: true,
22
- value: String(saturation),
23
- validateInput: validateSaturationInput
24
- });
25
- };
26
-
27
- /** Validate the saturation value which was inserted by the user. */
28
- const validateSaturationInput = (saturationInput: string) => {
29
- if (!validateSaturationValue(+saturationInput)) {
30
- return i18n.translate('saturation.wrongValue');
31
- }
32
- return undefined;
33
- };
34
-
35
- /** Get the current value of the saturation of the icons. */
36
- export const getCurrentSaturationValue = (): number => {
37
- const defaultOptions = getDefaultIconOptions();
38
- const config = helpers.getMaterialIconsJSON();
39
- return config.options.saturation === undefined ?
40
- defaultOptions.saturation : config.options.saturation;
41
- };
42
-
43
- const setSaturationConfig = (saturation: number) => {
44
- if (saturation !== undefined) {
45
- return helpers.setThemeConfig('saturation', saturation, true);
46
- }
47
- };
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
+ };
package/src/extension.ts CHANGED
@@ -1,35 +1,35 @@
1
- 'use strict';
2
-
3
- import * as vscode from 'vscode';
4
- import * as commands from './commands';
5
- import { detectConfigChanges } from './helpers/changeDetection';
6
- import { checkThemeStatus } from './helpers/versioning';
7
- import * as i18n from './i18n';
8
- import { showStartMessages } from './messages/start';
9
-
10
- /**
11
- * This method is called when the extension is activated.
12
- * It initializes the core functionality of the extension.
13
- */
14
- export const activate = async (context: vscode.ExtensionContext) => {
15
- try {
16
- await i18n.initTranslations();
17
- const status = await checkThemeStatus(context.globalState);
18
- showStartMessages(status);
19
-
20
- // Subscribe to the extension commands
21
- context.subscriptions.push(...commands.registered);
22
-
23
- // Initially trigger the config change detection
24
- detectConfigChanges();
25
-
26
- // Observe changes in the config
27
- vscode.workspace.onDidChangeConfiguration(detectConfigChanges);
28
- } catch (error) {
29
- console.error(error);
30
- }
31
- };
32
-
33
- /** This method is called when the extension is deactivated */
34
- export const deactivate = () => {
35
- };
1
+ 'use strict';
2
+
3
+ import * as vscode from 'vscode';
4
+ import * as commands from './commands';
5
+ import { detectConfigChanges } from './helpers/changeDetection';
6
+ import { checkThemeStatus, versionKey } from './helpers/versioning';
7
+ import * as i18n from './i18n';
8
+ import { showStartMessages } from './messages/start';
9
+
10
+ /**
11
+ * This method is called when the extension is activated.
12
+ * It initializes the core functionality of the extension.
13
+ */
14
+ export const activate = async (context: vscode.ExtensionContext) => {
15
+ try {
16
+ await i18n.initTranslations();
17
+ context.globalState.setKeysForSync([versionKey]);
18
+ const status = await checkThemeStatus(context.globalState);
19
+ showStartMessages(status);
20
+
21
+ // Subscribe to the extension commands
22
+ context.subscriptions.push(...commands.registered);
23
+
24
+ // Initially trigger the config change detection
25
+ detectConfigChanges();
26
+
27
+ // Observe changes in the config
28
+ vscode.workspace.onDidChangeConfiguration(detectConfigChanges);
29
+ } catch (error) {
30
+ console.error(error);
31
+ }
32
+ };
33
+
34
+ /** This method is called when the extension is deactivated */
35
+ export const deactivate = () => {};
@@ -1,58 +1,68 @@
1
- import { getConfigProperties, getMaterialIconsJSON, getThemeConfig, promptToReload } from '.';
2
- import { createIconFile } from '../icons/index';
3
- import { IconJsonOptions } from '../models';
4
- import { getObjectPropertyValue, setObjectPropertyValue } from './objects';
5
-
6
- /** Compare the workspace and the user configurations with the current setup of the icons. */
7
- export const detectConfigChanges = () => {
8
- const configs = Object.keys(getConfigProperties())
9
- .map(c => c.split('.').slice(1).join('.'));
10
-
11
- const changes = compareConfigs(configs);
12
-
13
- // if there's nothing to update
14
- if (Object.keys(changes.updatedConfigs).length === 0) return;
15
-
16
- try {
17
- // update icon json file with new options
18
- createIconFile(changes.updatedConfigs, changes.updatedJSONConfig);
19
-
20
- // check if a reload of the editor is required
21
- const configRequiresReload = ['opacity', 'saturation', 'folders.color', 'hidesExplorerArrows'];
22
- const reloadRequired = configRequiresReload.some(r => getObjectPropertyValue(changes.updatedConfigs, r) !== undefined);
23
- if (reloadRequired) {
24
- promptToReload();
25
- }
26
- } catch (error) {
27
- console.error(error);
28
- }
29
- };
30
-
31
- /**
32
- * Compares a specific configuration in the settings with a current configuration state.
33
- * The current configuration state is read from the icons json file.
34
- * @param configs List of configuration names
35
- * @returns List of configurations that needs to be updated.
36
- */
37
- const compareConfigs = (configs: string[]): { updatedConfigs: IconJsonOptions, updatedJSONConfig: IconJsonOptions } => {
38
- const json = getMaterialIconsJSON();
39
- return configs.reduce((result, configName) => {
40
- // no further actions (e.g. reload) required
41
- if (/show(Welcome|Update|Reload)Message/g.test(configName)) return result;
42
-
43
- try {
44
- const themeConfig = getThemeConfig(configName);
45
- const configValue = themeConfig.globalValue !== undefined ? themeConfig.globalValue : themeConfig.defaultValue;
46
- const currentState = getObjectPropertyValue(json.options, configName);
47
-
48
- if (JSON.stringify(configValue) !== JSON.stringify(currentState)) {
49
- setObjectPropertyValue(json.options, configName, configValue);
50
- setObjectPropertyValue(result.updatedConfigs, configName, configValue);
51
- }
52
- } catch (error) {
53
- console.error(error);
54
- }
55
-
56
- return result;
57
- }, { updatedConfigs: {}, updatedJSONConfig: json.options });
58
- };
1
+ import { getConfigProperties, getMaterialIconsJSON, getThemeConfig } from '.';
2
+ import { createIconFile } from '../icons/index';
3
+ import { IconJsonOptions } from '../models';
4
+ import { getObjectPropertyValue, setObjectPropertyValue } from './objects';
5
+
6
+ /** Compare the workspace and the user configurations with the current setup of the icons. */
7
+ export const detectConfigChanges = () => {
8
+ const changes = compareConfigs();
9
+
10
+ // if there's nothing to update
11
+ if (Object.keys(changes.updatedConfigs).length === 0) return;
12
+
13
+ try {
14
+ // update icon json file with new options
15
+ createIconFile(changes.updatedConfigs, changes.updatedJSONConfig);
16
+ } catch (error) {
17
+ console.error(error);
18
+ }
19
+ };
20
+
21
+ /**
22
+ * Compares a specific configuration in the settings with a current configuration state.
23
+ * The current configuration state is read from the icons json file.
24
+ * @returns List of configurations that needs to be updated.
25
+ */
26
+ const compareConfigs = (): {
27
+ updatedConfigs: IconJsonOptions;
28
+ updatedJSONConfig: IconJsonOptions;
29
+ } => {
30
+ const configs = Object.keys(getConfigProperties())
31
+ .map((c) => c.split('.').slice(1).join('.'))
32
+ // remove configurable notification messages
33
+ .filter((c) => !/show(Welcome|Update|Reload)Message/g.test(c));
34
+
35
+ const json = getMaterialIconsJSON();
36
+ return configs.reduce(
37
+ (result, configName) => {
38
+ try {
39
+ const themeConfig = getThemeConfig(configName) ?? {
40
+ globalValue: '',
41
+ defaultValue: '',
42
+ };
43
+ const configValue = themeConfig.globalValue ?? themeConfig.defaultValue;
44
+ const currentState = getObjectPropertyValue(
45
+ json.options ?? {},
46
+ configName
47
+ );
48
+
49
+ if (JSON.stringify(configValue) !== JSON.stringify(currentState)) {
50
+ setObjectPropertyValue(json.options as {}, configName, configValue);
51
+ setObjectPropertyValue(
52
+ result.updatedConfigs,
53
+ configName,
54
+ configValue
55
+ );
56
+ }
57
+ } catch (error) {
58
+ console.error(error);
59
+ }
60
+
61
+ return result;
62
+ },
63
+ {
64
+ updatedConfigs: {} as IconJsonOptions,
65
+ updatedJSONConfig: json.options as IconJsonOptions,
66
+ }
67
+ );
68
+ };
@@ -0,0 +1,8 @@
1
+ import { IconJsonOptions } from '../models';
2
+ import * as path from 'path';
3
+
4
+ export const getCustomIconPaths = (options: IconJsonOptions) => {
5
+ return Object.values(options?.files?.associations ?? {})
6
+ .filter((v) => v.match(/^[.\/]+/)) // <- custom dirs have a relative path to the dist folder
7
+ .map((v) => path.dirname(path.join(__dirname, v)));
8
+ };