From c17276feb3e79b0b3f2b3b542045fce423bcae08 Mon Sep 17 00:00:00 2001 From: Jonathan Lermitage Date: Mon, 8 Jan 2024 18:44:25 +0100 Subject: [PATCH] well played... --- CHANGELOG.md | 956 ----------- CONTRIBUTION.md | 36 - KNOWN_ISSUES.md | 1 - Makefile | 123 -- README.md | 47 +- build.gradle.kts | 537 ------- docs/DEV_FAQ.md | 17 - docs/LICENSE_FAQ.md | 3 + gradle.properties | 42 - gradlew | 249 --- gradlew.bat | 92 -- misc/pluginIcon.free.svg | 1 - misc/pluginIcon.lifetime.svg | 1 - settings.gradle.kts | 10 - .../extra/icons/BaseIconProvider.java | 383 ----- .../extra/icons/ExtraIconPatcher.java | 133 -- .../extra/icons/ExtraIconProvider.java | 1401 ----------------- .../intellij/extra/icons/Globals.java | 14 - .../intellij/extra/icons/IconType.java | 13 - .../lermitage/intellij/extra/icons/Model.java | 418 ----- .../intellij/extra/icons/ModelCondition.java | 400 ----- .../intellij/extra/icons/ModelTag.java | 39 - .../intellij/extra/icons/ModelType.java | 47 - .../intellij/extra/icons/UIType.java | 8 - .../extra/icons/UITypeIconsPreference.java | 9 - .../EnablerServicesProjectActivity.java | 25 - .../ExtraIconsLicenseCheckIDEActivity.java | 130 -- .../HintNotificationsProjectActivity.java | 124 -- .../RefreshIconsListenerProjectActivity.java | 128 -- .../VFSChangesListenersProjectActivity.java | 64 - .../intellij/extra/icons/cfg/IconPack.java | 48 - .../extra/icons/cfg/SettingsForm.form | 639 -------- .../extra/icons/cfg/SettingsForm.java | 871 ---------- .../cfg/dialogs/AskSingleTextDialog.form | 54 - .../cfg/dialogs/AskSingleTextDialog.java | 41 - .../dialogs/IconPackUninstallerDialog.form | 57 - .../dialogs/IconPackUninstallerDialog.java | 59 - .../cfg/dialogs/ModelConditionDialog.form | 167 -- .../cfg/dialogs/ModelConditionDialog.java | 284 ---- .../extra/icons/cfg/dialogs/ModelDialog.form | 181 --- .../extra/icons/cfg/dialogs/ModelDialog.java | 497 ------ .../models/PluginIconsSettingsTableModel.java | 52 - .../models/UserIconsSettingsTableModel.java | 45 - .../providers/IDEConfigurableProvider.java | 18 - .../ProjectConfigurableProvider.java | 25 - .../cfg/services/SettingsIDEService.java | 112 -- .../cfg/services/SettingsProjectService.java | 52 - .../icons/cfg/services/SettingsService.java | 122 -- .../icons/enablers/AbstractFolderEnabler.java | 28 - .../enablers/AbstractInFolderEnabler.java | 186 --- .../extra/icons/enablers/IconEnabler.java | 15 - .../icons/enablers/IconEnablerProvider.java | 33 - .../extra/icons/enablers/IconEnablerType.java | 27 - .../GitSubmoduleFolderEnablerService.java | 137 -- .../services/HelmFolderEnablerService.java | 28 - .../InAngularFolderEnablerService.java | 28 - .../InFlutterFolderEnablerService.java | 48 - .../InGraphQLFolderEnablerService.java | 34 - .../services/InHelmFolderEnablerService.java | 28 - .../InWritersideFolderEnablerService.java | 28 - .../icons/lic/ExtraIconsLicenseCheck.java | 324 ---- .../icons/lic/ExtraIconsLicenseStatus.java | 17 - .../extra/icons/lic/ExtraIconsPluginType.java | 59 - .../icons/messaging/RefreshIconsNotifier.java | 31 - .../RefreshIconsNotifierService.java | 55 - .../icons/services/FacetsFinderService.java | 58 - .../extra/icons/utils/Base64Utils.java | 14 - .../extra/icons/utils/BundledIcon.java | 9 - .../icons/utils/ComboBoxWithImageItem.java | 41 - .../utils/ComboBoxWithImageRenderer.java | 77 - .../utils/ExtraIconsErrorReportSubmitter.java | 176 --- .../extra/icons/utils/FileChooserUtils.java | 77 - .../intellij/extra/icons/utils/I18nUtils.java | 59 - .../intellij/extra/icons/utils/IJUtils.java | 101 -- .../extra/icons/utils/IconPackUtils.java | 44 - .../intellij/extra/icons/utils/IconUtils.java | 218 --- .../intellij/extra/icons/utils/OS.java | 26 - .../extra/icons/utils/ProjectUtils.java | 37 - src/main/resources/ExtraIconsI18n.properties | 160 -- .../resources/ExtraIconsI18n_zh.properties | 163 -- src/main/resources/META-INF/plugin.xml | 125 -- src/main/resources/META-INF/pluginIcon.svg | 1 - src/main/resources/extra-icons/7zip.svg | 1 - src/main/resources/extra-icons/aac.svg | 1 - src/main/resources/extra-icons/aac_dark.svg | 1 - .../resources/extra-icons/allcontributors.svg | 1 - .../extra-icons/allcontributors_dark.svg | 1 - src/main/resources/extra-icons/android.svg | 1 - .../resources/extra-icons/android_alt.svg | 1 - .../extra-icons/angular-component-test.svg | 1 - .../extra-icons/angular-component.svg | 1 - .../extra-icons/angular-controller-test.svg | 1 - .../extra-icons/angular-controller.svg | 1 - .../extra-icons/angular-directive-test.svg | 1 - .../extra-icons/angular-directive.svg | 1 - .../extra-icons/angular-guard-test.svg | 1 - .../resources/extra-icons/angular-guard.svg | 1 - .../extra-icons/angular-module-test.svg | 1 - .../resources/extra-icons/angular-module.svg | 1 - .../extra-icons/angular-pipe-test.svg | 1 - .../resources/extra-icons/angular-pipe.svg | 1 - .../extra-icons/angular-resolver-test.svg | 1 - .../extra-icons/angular-resolver.svg | 1 - .../extra-icons/angular-service-test.svg | 1 - .../resources/extra-icons/angular-service.svg | 1 - src/main/resources/extra-icons/angular2.svg | 1 - .../extra-icons/angular_renaissance.svg | 1 - src/main/resources/extra-icons/apk.svg | 1 - src/main/resources/extra-icons/apple.svg | 1 - src/main/resources/extra-icons/appveyor.svg | 1 - src/main/resources/extra-icons/archive.svg | 1 - src/main/resources/extra-icons/archunit.svg | 1 - src/main/resources/extra-icons/asciidoc.svg | 1 - .../resources/extra-icons/asciidoc_alt.svg | 1 - src/main/resources/extra-icons/authors.svg | 1 - .../resources/extra-icons/authors_alt.svg | 1 - .../resources/extra-icons/authors_alt2.svg | 1 - .../resources/extra-icons/authors_alt3.svg | 1 - .../resources/extra-icons/authors_alt4.svg | 1 - src/main/resources/extra-icons/avro.svg | 1 - src/main/resources/extra-icons/avro_dark.svg | 1 - src/main/resources/extra-icons/babel.svg | 1 - src/main/resources/extra-icons/babel_alt.svg | 1 - src/main/resources/extra-icons/babel_dark.svg | 1 - src/main/resources/extra-icons/backup.svg | 1 - src/main/resources/extra-icons/bamboo.svg | 1 - src/main/resources/extra-icons/bash.svg | 1 - src/main/resources/extra-icons/bash_dark.svg | 1 - src/main/resources/extra-icons/berkshelf.svg | 1 - .../resources/extra-icons/berkshelflock.svg | 1 - src/main/resources/extra-icons/bicep.svg | 1 - src/main/resources/extra-icons/bicep_alt.svg | 1 - src/main/resources/extra-icons/bicep_alt2.svg | 1 - src/main/resources/extra-icons/binary.svg | 1 - src/main/resources/extra-icons/binary_alt.svg | 1 - .../resources/extra-icons/binary_alt2.svg | 1 - .../extra-icons/binary_alt2_dark.svg | 1 - src/main/resources/extra-icons/bitbucket.svg | 1 - src/main/resources/extra-icons/bitnami.svg | 1 - .../resources/extra-icons/bitnami_dark.svg | 1 - src/main/resources/extra-icons/bower.svg | 1 - .../resources/extra-icons/browserslist.svg | 1 - .../extra-icons/browserslist_dark.svg | 1 - src/main/resources/extra-icons/bug.svg | 1 - src/main/resources/extra-icons/build.svg | 1 - src/main/resources/extra-icons/c.svg | 1 - src/main/resources/extra-icons/cache2k.svg | 17 - src/main/resources/extra-icons/caddy.svg | 1 - src/main/resources/extra-icons/cargo.svg | 1 - src/main/resources/extra-icons/cassandra.svg | 1 - .../resources/extra-icons/cassandra_dark.svg | 1 - .../resources/extra-icons/certificate.svg | 1 - .../resources/extra-icons/certificate_alt.svg | 1 - .../extra-icons/certificate_alt_dark.svg | 1 - src/main/resources/extra-icons/changelog.svg | 1 - .../resources/extra-icons/changelog_dark.svg | 1 - src/main/resources/extra-icons/circleci.svg | 1 - .../resources/extra-icons/circleci_dark.svg | 1 - src/main/resources/extra-icons/cirrus.svg | 1 - .../resources/extra-icons/cirrus_dark.svg | 1 - src/main/resources/extra-icons/cmd.svg | 1 - src/main/resources/extra-icons/cmd_dark.svg | 1 - src/main/resources/extra-icons/codacy.svg | 1 - .../resources/extra-icons/codacy_dark.svg | 1 - .../resources/extra-icons/codeception.svg | 1 - .../extra-icons/codeception_dark.svg | 1 - src/main/resources/extra-icons/codecov.svg | 1 - src/main/resources/extra-icons/codefresh.svg | 1 - .../resources/extra-icons/codefresh_dark.svg | 1 - src/main/resources/extra-icons/codeship.svg | 1 - .../resources/extra-icons/codeship_alt.png | Bin 667 -> 0 bytes .../resources/extra-icons/codeship_alt@2x.png | Bin 1439 -> 0 bytes .../extra-icons/codeship_alt@2x_dark.png | Bin 1500 -> 0 bytes .../extra-icons/codeship_alt_dark.png | Bin 574 -> 0 bytes .../resources/extra-icons/codeship_dark.svg | 1 - src/main/resources/extra-icons/commitlint.svg | 1 - src/main/resources/extra-icons/composer.svg | 1 - .../resources/extra-icons/composer_alt.svg | 1 - src/main/resources/extra-icons/config.svg | 1 - src/main/resources/extra-icons/contact.svg | 1 - .../resources/extra-icons/contributing.svg | 1 - .../extra-icons/contributing_alt.png | Bin 543 -> 0 bytes .../extra-icons/contributing_alt2.svg | 1 - .../extra-icons/contributing_alt@2x.png | Bin 1150 -> 0 bytes src/main/resources/extra-icons/cookie.svg | 1 - .../resources/extra-icons/cookie_dark.svg | 1 - src/main/resources/extra-icons/coveragerc.svg | 1 - src/main/resources/extra-icons/coveralls.svg | 1 - src/main/resources/extra-icons/cpp.svg | 1 - src/main/resources/extra-icons/crowdin.svg | 1 - src/main/resources/extra-icons/css-map.svg | 1 - src/main/resources/extra-icons/css.svg | 1 - src/main/resources/extra-icons/csv_alt.svg | 1 - src/main/resources/extra-icons/cypress.svg | 1 - src/main/resources/extra-icons/deb.svg | 1 - src/main/resources/extra-icons/deb_dark.svg | 1 - src/main/resources/extra-icons/deno.svg | 1 - src/main/resources/extra-icons/dependabot.svg | 1 - .../resources/extra-icons/dependabot_alt.svg | 1 - .../extra-icons/dependabot_alt_dark.svg | 1 - src/main/resources/extra-icons/deptective.svg | 1 - src/main/resources/extra-icons/detekt.svg | 1 - src/main/resources/extra-icons/docker_.svg | 1 - src/main/resources/extra-icons/docker_alt.svg | 1 - .../resources/extra-icons/docker_alt2.svg | 1 - .../resources/extra-icons/dockercompose_.svg | 1 - .../extra-icons/dockercompose_alt.svg | 1 - .../extra-icons/dockercompose_alt2.svg | 1 - .../resources/extra-icons/dockerignore.svg | 1 - .../extra-icons/dockerignore_alt.svg | 1 - .../extra-icons/dockerignore_alt2.svg | 1 - .../extra-icons/dockerignore_alt2_dark.svg | 1 - .../extra-icons/dockerignore_dark.svg | 1 - src/main/resources/extra-icons/drawio.svg | 1 - src/main/resources/extra-icons/drawio_alt.svg | 1 - .../resources/extra-icons/drawio_alt2.png | Bin 591 -> 0 bytes .../resources/extra-icons/drawio_alt2@2x.png | Bin 1216 -> 0 bytes .../resources/extra-icons/editorconfig.svg | 1 - .../extra-icons/editorconfig_alt.svg | 1 - .../extra-icons/editorconfig_alt2.svg | 1 - .../extra-icons/editorconfig_alt2_dark.svg | 1 - .../resources/extra-icons/elastic-cerebro.svg | 1 - .../extra-icons/elastic-cerebro_dark.svg | 1 - .../resources/extra-icons/elasticsearch.svg | 1 - .../extra-icons/elasticsearch_dark.svg | 1 - src/main/resources/extra-icons/elixir.svg | 1 - src/main/resources/extra-icons/email.svg | 1 - src/main/resources/extra-icons/env.svg | 1 - src/main/resources/extra-icons/env_alt.svg | 1 - src/main/resources/extra-icons/env_alt2.svg | 1 - src/main/resources/extra-icons/epub.svg | 1 - src/main/resources/extra-icons/eslint.svg | 1 - src/main/resources/extra-icons/expo.svg | 1 - src/main/resources/extra-icons/expo_dark.svg | 1 - .../resources/extra-icons/expo_folder.svg | 1 - src/main/resources/extra-icons/faq.svg | 1 - src/main/resources/extra-icons/faq_alt.svg | 1 - src/main/resources/extra-icons/faq_alt2.svg | 1 - src/main/resources/extra-icons/faq_alt3.svg | 1 - .../resources/extra-icons/faq_alt3_dark.svg | 1 - src/main/resources/extra-icons/faq_alt4.svg | 1 - .../extra-icons/flutter-analysisoptions.svg | 1 - .../extra-icons/flutter-metadata.svg | 1 - src/main/resources/extra-icons/flutter.svg | 1 - .../resources/extra-icons/flutterlock.svg | 1 - .../extra-icons/flutterlock_dark.svg | 1 - src/main/resources/extra-icons/flyway.svg | 1 - src/main/resources/extra-icons/flyway_alt.svg | 1 - .../resources/extra-icons/flyway_alt2.png | Bin 1302 -> 0 bytes .../resources/extra-icons/flyway_alt2@2x.png | Bin 1483 -> 0 bytes .../extra-icons/flyway_alt2@2x_dark.png | Bin 1497 -> 0 bytes .../extra-icons/flyway_alt2_dark.png | Bin 1304 -> 0 bytes .../resources/extra-icons/flyway_alt_dark.svg | 1 - .../resources/extra-icons/flyway_dark.svg | 1 - .../resources/extra-icons/folder_circleci.svg | 1 - src/main/resources/extra-icons/folder_db2.svg | 1 - .../extra-icons/folder_dependabot.svg | 1 - .../extra-icons/folder_dependabot_alt.svg | 1 - .../resources/extra-icons/folder_docker.svg | 1 - .../resources/extra-icons/folder_fleet.svg | 1 - .../resources/extra-icons/folder_flyway.svg | 1 - .../resources/extra-icons/folder_github.svg | 1 - .../resources/extra-icons/folder_gitlab.svg | 1 - .../resources/extra-icons/folder_gradle.svg | 1 - src/main/resources/extra-icons/folder_h2.svg | 1 - .../resources/extra-icons/folder_hsqldb.svg | 1 - .../resources/extra-icons/folder_idea.svg | 1 - .../resources/extra-icons/folder_jpabuddy.svg | 1 - .../extra-icons/folder_jpabuddy_alt.svg | 1 - .../extra-icons/folder_jpabuddy_alt2.svg | 1 - .../extra-icons/folder_jpabuddy_alt3.svg | 1 - .../extra-icons/folder_liquibase.svg | 1 - .../resources/extra-icons/folder_mariadb.svg | 1 - .../extra-icons/folder_mariadb_dark.svg | 1 - .../resources/extra-icons/folder_mergify.svg | 1 - .../resources/extra-icons/folder_mvnw.svg | 1 - .../resources/extra-icons/folder_mysql.svg | 1 - .../extra-icons/folder_mysql_dark.svg | 1 - .../extra-icons/folder_node_modules.svg | 1 - .../extra-icons/folder_node_modules_alt.svg | 1 - .../resources/extra-icons/folder_nuget.svg | 1 - .../resources/extra-icons/folder_oracle.svg | 1 - .../extra-icons/folder_os_android.svg | 1 - .../extra-icons/folder_os_android_dark.svg | 1 - .../resources/extra-icons/folder_os_ios.svg | 1 - .../extra-icons/folder_os_ios_dark.svg | 1 - .../resources/extra-icons/folder_os_linux.svg | 1 - .../extra-icons/folder_os_linux_dark.svg | 1 - .../resources/extra-icons/folder_os_macos.svg | 1 - .../extra-icons/folder_os_macos_dark.svg | 1 - .../resources/extra-icons/folder_os_web.svg | 1 - .../extra-icons/folder_os_web_dark.svg | 1 - .../extra-icons/folder_os_windows.svg | 1 - .../extra-icons/folder_os_windows_dark.svg | 1 - .../extra-icons/folder_postgresql.svg | 1 - .../extra-icons/folder_pytest_cache.svg | 1 - .../extra-icons/folder_python_venv.svg | 1 - .../extra-icons/folder_semaphoreci.svg | 1 - .../resources/extra-icons/folder_sqlite.svg | 1 - .../extra-icons/folder_sqlserver.svg | 1 - .../extra-icons/folder_storybook.svg | 1 - .../resources/extra-icons/folder_teamcity.svg | 1 - src/main/resources/extra-icons/folder_tmp.svg | 1 - .../resources/extra-icons/folder_vscode.svg | 1 - src/main/resources/extra-icons/form.svg | 1 - src/main/resources/extra-icons/form_dark.svg | 1 - src/main/resources/extra-icons/gatling.svg | 1 - .../resources/extra-icons/generated_pom.svg | 1 - .../extra-icons/generated_pom_alt.svg | 1 - src/main/resources/extra-icons/git.svg | 1 - .../resources/extra-icons/git_submodule.svg | 1 - .../extra-icons/git_submodule_alt.svg | 1 - .../resources/extra-icons/github_action.svg | 1 - .../extra-icons/github_action_dark.svg | 1 - src/main/resources/extra-icons/gitlab.svg | 1 - src/main/resources/extra-icons/gitlab_alt.svg | 1 - .../resources/extra-icons/gitlab_next.svg | 1 - src/main/resources/extra-icons/gitpod.svg | 1 - src/main/resources/extra-icons/glowroot.svg | 1 - src/main/resources/extra-icons/gocd.svg | 1 - src/main/resources/extra-icons/gocd_dark.svg | 1 - .../extra-icons/golangarchlinter.svg | 1 - src/main/resources/extra-icons/gomod.svg | 1 - src/main/resources/extra-icons/gomod_alt.svg | 1 - src/main/resources/extra-icons/goreleaser.svg | 1 - .../resources/extra-icons/goreleaser_alt.svg | 1 - src/main/resources/extra-icons/gradle.svg | 1 - .../resources/extra-icons/gradle_dark.svg | 1 - .../resources/extra-icons/gradle_kotlin.svg | 1 - .../extra-icons/gradle_kotlin_colored.svg | 1 - .../gradle_kotlin_colored_dark.svg | 1 - .../extra-icons/gradle_kotlin_dark.svg | 1 - .../resources/extra-icons/gradle_lock.svg | 1 - .../extra-icons/gradle_lock_dark.svg | 1 - src/main/resources/extra-icons/gradlew.svg | 1 - .../resources/extra-icons/gradlew_dark.svg | 1 - src/main/resources/extra-icons/grafana.svg | 1 - src/main/resources/extra-icons/graphql.svg | 1 - .../resources/extra-icons/graphql_config.svg | 1 - .../extra-icons/graphql_config_dark.svg | 1 - .../resources/extra-icons/graphql_dark.svg | 1 - .../resources/extra-icons/graphql_schema.svg | 1 - .../extra-icons/graphql_schema_dark.svg | 1 - src/main/resources/extra-icons/grunt.svg | 1 - src/main/resources/extra-icons/h.svg | 1 - src/main/resources/extra-icons/hadolint.svg | 1 - .../resources/extra-icons/hadolint_dark.svg | 1 - src/main/resources/extra-icons/haxe.svg | 1 - src/main/resources/extra-icons/haxehxml.svg | 1 - src/main/resources/extra-icons/helm.svg | 1 - src/main/resources/extra-icons/helmChart.svg | 1 - .../extra-icons/helmChartsDirectory.svg | 1 - .../resources/extra-icons/helmDirectory.svg | 1 - src/main/resources/extra-icons/helmNotes.svg | 1 - .../extra-icons/helmRequirementsYaml.svg | 1 - .../extra-icons/helmTemplatesDirectory.svg | 1 - .../helmTemplatesTestDirectory.svg | 1 - .../extra-icons/helmUndeployable.svg | 1 - src/main/resources/extra-icons/helmValues.svg | 1 - src/main/resources/extra-icons/helmlogo.svg | 1 - .../resources/extra-icons/helmlogo_alt.svg | 1 - src/main/resources/extra-icons/hibernate.svg | 1 - src/main/resources/extra-icons/htaccess.svg | 1 - src/main/resources/extra-icons/html5.svg | 1 - src/main/resources/extra-icons/html5_alt.svg | 1 - src/main/resources/extra-icons/html5_alt2.svg | 1 - .../resources/extra-icons/html5_alt2_dark.svg | 1 - src/main/resources/extra-icons/http.png | Bin 454 -> 0 bytes src/main/resources/extra-icons/http@2x.png | Bin 1179 -> 0 bytes .../resources/extra-icons/http@2x_dark.png | Bin 1330 -> 0 bytes src/main/resources/extra-icons/http_alt.svg | 1 - src/main/resources/extra-icons/http_dark.png | Bin 513 -> 0 bytes .../extra-icons/ide/abstractException_.svg | 1 - src/main/resources/extra-icons/ide/canary.svg | 1 - src/main/resources/extra-icons/ide/chrome.svg | 1 - src/main/resources/extra-icons/ide/edge.svg | 1 - .../resources/extra-icons/ide/enumKotlin_.svg | 1 - .../extra-icons/ide/enumKotlin_alt.svg | 1 - .../extra-icons/ide/enumKotlin_alt2.svg | 1 - src/main/resources/extra-icons/ide/enum_.svg | 1 - .../resources/extra-icons/ide/enum_alt.svg | 1 - .../resources/extra-icons/ide/enum_alt2.svg | 1 - .../extra-icons/ide/exceptionClass_.svg | 1 - .../resources/extra-icons/ide/explorer.svg | 1 - .../resources/extra-icons/ide/firefox.svg | 1 - .../extra-icons/ide/firefoxDeveloper.svg | 1 - src/main/resources/extra-icons/ide/opera.svg | 1 - src/main/resources/extra-icons/ide/safari.svg | 1 - .../resources/extra-icons/ide/vivaldi.svg | 1 - src/main/resources/extra-icons/ide/yaml_.svg | 1 - .../resources/extra-icons/ide/yaml__dark.svg | 1 - .../resources/extra-icons/ide/yaml_alt.svg | 1 - .../resources/extra-icons/ide/yaml_alt2.svg | 1 - .../extra-icons/ide/yaml_alt2_dark.svg | 1 - src/main/resources/extra-icons/imgbot.svg | 1 - .../resources/extra-icons/imgbot_dark.svg | 1 - src/main/resources/extra-icons/jar.svg | 1 - src/main/resources/extra-icons/jar_dark.svg | 1 - src/main/resources/extra-icons/java.svg | 1 - src/main/resources/extra-icons/java_alt.png | Bin 655 -> 0 bytes .../resources/extra-icons/java_alt@2x.png | Bin 1526 -> 0 bytes .../extra-icons/java_alt@2x_dark.png | Bin 1337 -> 0 bytes .../resources/extra-icons/java_alt_dark.png | Bin 645 -> 0 bytes .../resources/extra-icons/javascript-map.svg | 1 - .../extra-icons/javascript-map_dark.svg | 1 - src/main/resources/extra-icons/javascript.svg | 1 - .../resources/extra-icons/javascript_alt.svg | 1 - .../extra-icons/javascript_alt_dark.svg | 1 - .../resources/extra-icons/javascript_dark.svg | 1 - src/main/resources/extra-icons/jenkins.svg | 1 - .../resources/extra-icons/jenkins_alt.png | Bin 857 -> 0 bytes .../resources/extra-icons/jenkins_alt@2x.png | Bin 2186 -> 0 bytes src/main/resources/extra-icons/jest.svg | 1 - src/main/resources/extra-icons/jest_dark.svg | 1 - src/main/resources/extra-icons/jetbrains.svg | 1 - src/main/resources/extra-icons/jfr.svg | 1 - src/main/resources/extra-icons/jfr_dark.svg | 1 - src/main/resources/extra-icons/jgitver.svg | 1 - .../resources/extra-icons/jgitver_dark.svg | 1 - src/main/resources/extra-icons/jinja.svg | 1 - src/main/resources/extra-icons/jinja_dark.svg | 1 - src/main/resources/extra-icons/jitpack.svg | 1 - .../resources/extra-icons/jitpack_dark.svg | 1 - src/main/resources/extra-icons/jsbeautify.svg | 1 - .../resources/extra-icons/jsbeautify_alt.svg | 1 - src/main/resources/extra-icons/jsconfig.svg | 1 - src/main/resources/extra-icons/jshint.svg | 1 - .../resources/extra-icons/jshint_dark.svg | 1 - src/main/resources/extra-icons/json.svg | 1 - src/main/resources/extra-icons/jsx.svg | 1 - src/main/resources/extra-icons/junit5.png | Bin 728 -> 0 bytes src/main/resources/extra-icons/junit5@2x.png | Bin 1783 -> 0 bytes .../resources/extra-icons/junit5@2x_dark.png | Bin 1802 -> 0 bytes .../resources/extra-icons/junit5_dark.png | Bin 725 -> 0 bytes .../extra-icons/junit5_transparent.svg | 1 - .../resources/extra-icons/junit5_white.svg | 1 - src/main/resources/extra-icons/just.svg | 1 - src/main/resources/extra-icons/just_alt.svg | 1 - .../resources/extra-icons/just_alt_dark.svg | 1 - src/main/resources/extra-icons/just_dark.svg | 1 - src/main/resources/extra-icons/karate.svg | 1 - .../resources/extra-icons/karate_dark.svg | 1 - src/main/resources/extra-icons/karma.svg | 1 - src/main/resources/extra-icons/keep.svg | 1 - src/main/resources/extra-icons/keepass.svg | 1 - .../resources/extra-icons/keepass_alt.png | Bin 639 -> 0 bytes .../resources/extra-icons/keepass_alt2.svg | 1 - .../resources/extra-icons/keepass_alt@2x.png | Bin 1589 -> 0 bytes .../extra-icons/keepass_alt@2x_dark.png | Bin 1076 -> 0 bytes .../extra-icons/keepass_alt_dark.png | Bin 622 -> 0 bytes .../resources/extra-icons/keepass_dark.svg | 1 - src/main/resources/extra-icons/kibana.svg | 1 - src/main/resources/extra-icons/kubernetes.svg | 1 - .../resources/extra-icons/kubernetes_alt.svg | 1 - .../resources/extra-icons/kubernetes_alt2.svg | 1 - .../extra-icons/kubernetes_alt2_dark.svg | 1 - .../extra-icons/kubernetes_alt_dark.svg | 1 - .../resources/extra-icons/kubernetes_dark.svg | 1 - src/main/resources/extra-icons/kustomize.svg | 1 - .../resources/extra-icons/kustomize_alt.svg | 1 - src/main/resources/extra-icons/lerna.svg | 1 - src/main/resources/extra-icons/lerna_dark.svg | 1 - src/main/resources/extra-icons/less.svg | 1 - src/main/resources/extra-icons/less_dark.svg | 1 - src/main/resources/extra-icons/lgtm.svg | 1 - src/main/resources/extra-icons/lgtm_alt.svg | 1 - src/main/resources/extra-icons/license.svg | 1 - .../resources/extra-icons/license_alt.png | Bin 707 -> 0 bytes .../resources/extra-icons/license_alt@2x.png | Bin 1648 -> 0 bytes .../extra-icons/license_alt@2x_dark.png | Bin 1569 -> 0 bytes .../extra-icons/license_alt_dark.png | Bin 681 -> 0 bytes .../resources/extra-icons/license_dark.svg | 1 - src/main/resources/extra-icons/lighttpd.svg | 1 - src/main/resources/extra-icons/liquibase.svg | 1 - .../resources/extra-icons/liquibase_alt.svg | 1 - .../extra-icons/liquibase_alt_dark.svg | 1 - .../resources/extra-icons/liquibase_dark.svg | 1 - src/main/resources/extra-icons/log4j.svg | 1 - src/main/resources/extra-icons/log4j_dark.svg | 1 - src/main/resources/extra-icons/logback.svg | 1 - .../resources/extra-icons/logback_dark.svg | 1 - src/main/resources/extra-icons/logstash.svg | 1 - src/main/resources/extra-icons/lombok.svg | 1 - src/main/resources/extra-icons/markdown.svg | 1 - .../resources/extra-icons/markdown_alt.svg | 1 - .../resources/extra-icons/markdown_alt2.svg | 1 - .../resources/extra-icons/markdown_alt3.svg | 1 - .../extra-icons/markdown_alt3_dark.svg | 1 - src/main/resources/extra-icons/matroska.svg | 1 - .../resources/extra-icons/matroska_dark.svg | 1 - src/main/resources/extra-icons/mdx.svg | 1 - src/main/resources/extra-icons/mdx_alt.svg | 1 - src/main/resources/extra-icons/mdx_alt2.svg | 1 - .../resources/extra-icons/mdx_alt_dark.svg | 1 - src/main/resources/extra-icons/mdx_dark.svg | 1 - src/main/resources/extra-icons/mergify.svg | 1 - src/main/resources/extra-icons/mermaid.svg | 1 - src/main/resources/extra-icons/metro.svg | 1 - src/main/resources/extra-icons/mindmap.svg | 1 - src/main/resources/extra-icons/mkdocs.svg | 1 - .../resources/extra-icons/mkdocs_dark.svg | 1 - src/main/resources/extra-icons/mockk.svg | 1 - src/main/resources/extra-icons/moduleinfo.svg | 1 - .../resources/extra-icons/moduleinfo_alt.svg | 1 - .../extra-icons/moduleinfo_alt_dark.svg | 1 - .../resources/extra-icons/moduleinfo_dark.svg | 1 - src/main/resources/extra-icons/mongodb.svg | 1 - .../resources/extra-icons/monkey's_audio.svg | 1 - src/main/resources/extra-icons/mpeg.svg | 1 - src/main/resources/extra-icons/mpeg_dark.svg | 1 - src/main/resources/extra-icons/msazure.svg | 1 - src/main/resources/extra-icons/msexe.svg | 1 - src/main/resources/extra-icons/muse.svg | 1 - src/main/resources/extra-icons/mvnw.svg | 1 - src/main/resources/extra-icons/mvnw_dark.svg | 1 - src/main/resources/extra-icons/my.svg | 1 - .../resources/extra-icons/mysqlworkbench.svg | 1 - src/main/resources/extra-icons/nestjs.svg | 1 - .../resources/extra-icons/nestjs_adapter.svg | 1 - .../extra-icons/nestjs_controller.svg | 1 - .../extra-icons/nestjs_controller_test.svg | 1 - .../extra-icons/nestjs_decorator.svg | 1 - src/main/resources/extra-icons/nestjs_dto.svg | 1 - .../resources/extra-icons/nestjs_entity.svg | 1 - .../resources/extra-icons/nestjs_filter.svg | 1 - .../resources/extra-icons/nestjs_gateway.svg | 1 - .../resources/extra-icons/nestjs_guard.svg | 1 - .../extra-icons/nestjs_interceptor.svg | 1 - .../extra-icons/nestjs_middleware.svg | 1 - .../resources/extra-icons/nestjs_model.svg | 1 - .../resources/extra-icons/nestjs_module.svg | 1 - .../resources/extra-icons/nestjs_pipe.svg | 1 - .../resources/extra-icons/nestjs_service.svg | 1 - .../extra-icons/nestjs_service_test.svg | 1 - src/main/resources/extra-icons/netlify.svg | 1 - src/main/resources/extra-icons/newui/7zip.svg | 1 - .../resources/extra-icons/newui/archive.svg | 1 - .../extra-icons/newui/archive_dark.svg | 1 - src/main/resources/extra-icons/newui/avro.svg | 1 - .../resources/extra-icons/newui/avro_dark.svg | 1 - src/main/resources/extra-icons/newui/c.svg | 1 - .../resources/extra-icons/newui/c_dark.svg | 1 - .../resources/extra-icons/newui/config.svg | 1 - .../extra-icons/newui/config_dark.svg | 1 - src/main/resources/extra-icons/newui/cpp.svg | 1 - .../resources/extra-icons/newui/cpp_dark.svg | 1 - .../extra-icons/newui/folder_db2.svg | 1 - .../extra-icons/newui/folder_db2_dark.svg | 1 - .../extra-icons/newui/folder_fleet.svg | 1 - .../extra-icons/newui/folder_fleet_dark.svg | 1 - .../resources/extra-icons/newui/folder_h2.svg | 1 - .../extra-icons/newui/folder_h2_dark.svg | 1 - .../extra-icons/newui/folder_hsqldb.svg | 1 - .../extra-icons/newui/folder_hsqldb_dark.svg | 1 - .../extra-icons/newui/folder_jpabuddy.svg | 1 - .../extra-icons/newui/folder_jpabuddy_alt.svg | 1 - .../newui/folder_jpabuddy_alt2.svg | 1 - .../newui/folder_jpabuddy_alt2_dark.svg | 1 - .../newui/folder_jpabuddy_alt3.svg | 1 - .../newui/folder_jpabuddy_alt_dark.svg | 1 - .../newui/folder_jpabuddy_dark.svg | 1 - .../extra-icons/newui/folder_mariadb.svg | 1 - .../extra-icons/newui/folder_mariadb_dark.svg | 1 - .../extra-icons/newui/folder_mysql.svg | 1 - .../extra-icons/newui/folder_mysql_dark.svg | 1 - .../extra-icons/newui/folder_oracle.svg | 1 - .../extra-icons/newui/folder_oracle_dark.svg | 1 - .../extra-icons/newui/folder_os_android.svg | 1 - .../newui/folder_os_android_dark.svg | 1 - .../extra-icons/newui/folder_os_ios.svg | 1 - .../extra-icons/newui/folder_os_ios_dark.svg | 1 - .../extra-icons/newui/folder_os_linux.svg | 1 - .../newui/folder_os_linux_dark.svg | 1 - .../extra-icons/newui/folder_os_macos.svg | 1 - .../newui/folder_os_macos_dark.svg | 1 - .../extra-icons/newui/folder_os_web.svg | 1 - .../extra-icons/newui/folder_os_web_dark.svg | 1 - .../extra-icons/newui/folder_os_windows.svg | 1 - .../newui/folder_os_windows_dark.svg | 1 - .../extra-icons/newui/folder_postgresql.svg | 1 - .../newui/folder_postgresql_dark.svg | 1 - .../extra-icons/newui/folder_pytest_cache.svg | 1 - .../newui/folder_pytest_cache_dark.svg | 1 - .../extra-icons/newui/folder_python_venv.svg | 1 - .../newui/folder_python_venv_dark.svg | 1 - .../extra-icons/newui/folder_sqlite.svg | 1 - .../extra-icons/newui/folder_sqlite_dark.svg | 1 - .../extra-icons/newui/folder_sqlserver.svg | 1 - .../newui/folder_sqlserver_dark.svg | 1 - .../extra-icons/newui/folder_teamcity.svg | 1 - .../newui/folder_teamcity_dark.svg | 1 - .../extra-icons/newui/folder_tmp.svg | 1 - .../extra-icons/newui/folder_tmp_dark.svg | 1 - src/main/resources/extra-icons/newui/h.svg | 1 - .../resources/extra-icons/newui/h_dark.svg | 1 - src/main/resources/extra-icons/newui/helm.svg | 1 - .../resources/extra-icons/newui/helmChart.svg | 1 - .../extra-icons/newui/helmChart_dark.svg | 1 - .../extra-icons/newui/helmChartsDirectory.svg | 1 - .../newui/helmChartsDirectory_dark.svg | 1 - .../extra-icons/newui/helmDirectory.svg | 1 - .../extra-icons/newui/helmDirectory_dark.svg | 1 - .../resources/extra-icons/newui/helmNotes.svg | 1 - .../extra-icons/newui/helmNotes_dark.svg | 1 - .../newui/helmRequirementsYaml.svg | 1 - .../newui/helmRequirementsYaml_dark.svg | 1 - .../newui/helmTemplatesDirectory.svg | 1 - .../newui/helmTemplatesDirectory_dark.svg | 1 - .../newui/helmTemplatesTestDirectory.svg | 1 - .../newui/helmTemplatesTestDirectory_dark.svg | 1 - .../extra-icons/newui/helmUndeployable.svg | 1 - .../newui/helmUndeployable_dark.svg | 1 - .../extra-icons/newui/helmValues.svg | 1 - .../extra-icons/newui/helmValues_dark.svg | 1 - .../resources/extra-icons/newui/helm_dark.svg | 1 - .../resources/extra-icons/newui/helmlogo.svg | 1 - .../extra-icons/newui/helmlogo_alt.svg | 1 - .../newui/ide/abstractException_.svg | 1 - .../newui/ide/abstractException__dark.svg | 1 - .../extra-icons/newui/ide/enumKotlin_.svg | 1 - .../newui/ide/enumKotlin__dark.svg | 1 - .../extra-icons/newui/ide/enumKotlin_alt.svg | 1 - .../extra-icons/newui/ide/enumKotlin_alt2.svg | 1 - .../newui/ide/enumKotlin_alt2_dark.svg | 1 - .../newui/ide/enumKotlin_alt_dark.svg | 1 - .../resources/extra-icons/newui/ide/enum_.svg | 1 - .../extra-icons/newui/ide/enum__dark.svg | 1 - .../extra-icons/newui/ide/enum_alt.svg | 1 - .../extra-icons/newui/ide/enum_alt2.svg | 1 - .../extra-icons/newui/ide/enum_alt2_dark.svg | 1 - .../extra-icons/newui/ide/enum_alt_dark.svg | 1 - .../extra-icons/newui/ide/exceptionClass_.svg | 1 - .../newui/ide/exceptionClass__dark.svg | 1 - .../extra-icons/newui/onap-cba-blueprint.svg | 1 - .../newui/onap-cba-blueprint_dark.svg | 1 - .../newui/onap-cba-definitions.svg | 1 - .../newui/onap-cba-definitions_dark.svg | 1 - .../extra-icons/newui/writerside_cfg.svg | 1 - .../extra-icons/newui/writerside_cfg_dark.svg | 1 - .../extra-icons/newui/writerside_list.svg | 1 - .../newui/writerside_list_dark.svg | 1 - .../extra-icons/newui/writerside_tree.svg | 1 - .../newui/writerside_tree_dark.svg | 1 - src/main/resources/extra-icons/nginx.svg | 1 - src/main/resources/extra-icons/noai.svg | 1 - src/main/resources/extra-icons/noai_alt.svg | 1 - .../resources/extra-icons/noai_alt_dark.svg | 1 - src/main/resources/extra-icons/noai_dark.svg | 1 - src/main/resources/extra-icons/nodemon.svg | 1 - src/main/resources/extra-icons/notice.svg | 1 - .../resources/extra-icons/notice_dark.svg | 1 - src/main/resources/extra-icons/nox.svg | 1 - src/main/resources/extra-icons/npm.svg | 1 - src/main/resources/extra-icons/npmignore.svg | 1 - .../resources/extra-icons/npmignore_dark.svg | 1 - src/main/resources/extra-icons/nsis.svg | 1 - src/main/resources/extra-icons/nsis_dark.svg | 1 - src/main/resources/extra-icons/nuget.svg | 1 - src/main/resources/extra-icons/nuget_dark.svg | 1 - src/main/resources/extra-icons/nx.svg | 1 - src/main/resources/extra-icons/nx_alt.svg | 1 - .../extra-icons/officedocs/libo-calc.svg | 1 - .../extra-icons/officedocs/libo-draw.svg | 1 - .../extra-icons/officedocs/libo-impress.svg | 1 - .../extra-icons/officedocs/libo-math.svg | 1 - .../officedocs/libo-symbol-black.svg | 1 - .../extra-icons/officedocs/libo-writer.svg | 1 - .../extra-icons/officedocs/localc.svg | 1 - .../extra-icons/officedocs/lodraw.svg | 1 - .../extra-icons/officedocs/loimpress.svg | 1 - .../extra-icons/officedocs/lomain.svg | 1 - .../extra-icons/officedocs/lomath.svg | 1 - .../extra-icons/officedocs/lowriter.svg | 1 - .../extra-icons/officedocs/msexcel-2019.svg | 1 - .../officedocs/msexcel-papirus.svg | 1 - .../extra-icons/officedocs/msexcel.png | Bin 736 -> 0 bytes .../extra-icons/officedocs/msexcel@2x.png | Bin 1807 -> 0 bytes .../officedocs/msexcel@2x_dark.png | Bin 1819 -> 0 bytes .../extra-icons/officedocs/msexcel_dark.png | Bin 722 -> 0 bytes .../extra-icons/officedocs/msonenote-2019.svg | 1 - .../extra-icons/officedocs/msonenote.png | Bin 763 -> 0 bytes .../extra-icons/officedocs/msonenote@2x.png | Bin 1759 -> 0 bytes .../officedocs/msonenote@2x_dark.png | Bin 1771 -> 0 bytes .../extra-icons/officedocs/msonenote_dark.png | Bin 740 -> 0 bytes .../officedocs/mspowerpoint-2019.svg | 1 - .../officedocs/mspowerpoint-papirus.svg | 1 - .../extra-icons/officedocs/mspowerpoint.png | Bin 696 -> 0 bytes .../officedocs/mspowerpoint@2x.png | Bin 1617 -> 0 bytes .../officedocs/mspowerpoint@2x_dark.png | Bin 1595 -> 0 bytes .../officedocs/mspowerpoint_dark.png | Bin 692 -> 0 bytes .../extra-icons/officedocs/msproject-2019.svg | 1 - .../extra-icons/officedocs/msproject.png | Bin 670 -> 0 bytes .../extra-icons/officedocs/msproject@2x.png | Bin 1566 -> 0 bytes .../officedocs/msproject@2x_dark.png | Bin 1563 -> 0 bytes .../extra-icons/officedocs/msproject_dark.png | Bin 654 -> 0 bytes .../extra-icons/officedocs/msvisio-2019.svg | 1 - .../extra-icons/officedocs/msvisio.png | Bin 735 -> 0 bytes .../extra-icons/officedocs/msvisio@2x.png | Bin 1754 -> 0 bytes .../officedocs/msvisio@2x_dark.png | Bin 1702 -> 0 bytes .../extra-icons/officedocs/msvisio_dark.png | Bin 694 -> 0 bytes .../extra-icons/officedocs/msword-2019.svg | 1 - .../extra-icons/officedocs/msword-papirus.svg | 1 - .../extra-icons/officedocs/msword.png | Bin 764 -> 0 bytes .../extra-icons/officedocs/msword@2x.png | Bin 1892 -> 0 bytes .../extra-icons/officedocs/msword@2x_dark.png | Bin 1898 -> 0 bytes .../extra-icons/officedocs/msword_dark.png | Bin 766 -> 0 bytes .../extra-icons/onap-cba-blueprint.svg | 1 - .../extra-icons/onap-cba-blueprint_dark.svg | 1 - .../extra-icons/onap-cba-definitions.svg | 1 - .../extra-icons/onap-cba-definitions_dark.svg | 1 - .../resources/extra-icons/onap-cba-tosca.svg | 1 - .../extra-icons/onap-cba-tosca_dark.svg | 1 - src/main/resources/extra-icons/opentofu.svg | 1 - .../resources/extra-icons/packageinfojava.svg | 1 - .../extra-icons/packageinfojava_dark.svg | 1 - .../resources/extra-icons/packagejsonlock.svg | 1 - src/main/resources/extra-icons/pdd.svg | 1 - src/main/resources/extra-icons/pdd_dark.svg | 1 - src/main/resources/extra-icons/pdf.svg | 1 - src/main/resources/extra-icons/pdf_alt.svg | 1 - src/main/resources/extra-icons/pdf_alt2.svg | 1 - src/main/resources/extra-icons/pdf_alt3.svg | 1 - src/main/resources/extra-icons/pdf_dark.svg | 1 - src/main/resources/extra-icons/pid.svg | 1 - src/main/resources/extra-icons/pid_dark.svg | 1 - .../extra-icons/plugin-internals/auto.svg | 1 - .../plugin-internals/auto_dark.svg | 1 - .../plugin-internals/checkmark.svg | 1 - .../plugin-internals/checkmark_dark.svg | 1 - .../plugin-internals/contextHelp.svg | 1 - .../extra-icons/plugin-internals/export.svg | 1 - .../plugin-internals/export_dark.svg | 1 - .../plugin-internals/folder_newui.svg | 1 - .../plugin-internals/folder_newui_dark.svg | 1 - .../plugin-internals/folder_oldui.svg | 1 - .../plugin-internals/gutterCheckBox.svg | 1 - .../gutterCheckBoxSelected.svg | 1 - .../gutterCheckBoxSelected_dark.svg | 1 - .../plugin-internals/gutterCheckBox_dark.svg | 1 - .../extra-icons/plugin-internals/import.svg | 1 - .../plugin-internals/import_dark.svg | 1 - .../extra-icons/plugin-internals/reboot.svg | 1 - .../plugin-internals/reboot_dark.svg | 1 - .../extra-icons/plugin-internals/refresh.svg | 1 - .../plugin-internals/refresh_dark.svg | 1 - .../extra-icons/plugin-internals/remove.svg | 1 - .../plugin-internals/remove_dark.svg | 1 - .../extra-icons/plugin-internals/web.svg | 1 - src/main/resources/extra-icons/pnpm.svg | 1 - src/main/resources/extra-icons/poetry.svg | 1 - .../resources/extra-icons/poetry_lock.svg | 1 - .../extra-icons/poetry_lock_dark.svg | 1 - src/main/resources/extra-icons/postcss.svg | 1 - src/main/resources/extra-icons/postman.svg | 1 - .../resources/extra-icons/postman_col.svg | 1 - .../resources/extra-icons/postman_env.svg | 1 - src/main/resources/extra-icons/prettier.svg | 1 - .../resources/extra-icons/prettier_alt.svg | 1 - .../resources/extra-icons/prettier_dark.svg | 1 - .../resources/extra-icons/prettierignore.svg | 1 - .../extra-icons/prettierignore_dark.svg | 1 - src/main/resources/extra-icons/privacy.svg | 1 - src/main/resources/extra-icons/proguard.svg | 1 - .../resources/extra-icons/proguard_dark.svg | 1 - src/main/resources/extra-icons/prometheus.svg | 1 - src/main/resources/extra-icons/puppet.svg | 1 - src/main/resources/extra-icons/pytest.svg | 1 - src/main/resources/extra-icons/qodana.svg | 1 - src/main/resources/extra-icons/qodana_alt.svg | 1 - src/main/resources/extra-icons/readme.svg | 1 - src/main/resources/extra-icons/readme_alt.svg | 1 - .../resources/extra-icons/readme_alt2.svg | 1 - .../resources/extra-icons/readme_alt_dark.svg | 1 - .../resources/extra-icons/readme_dark.svg | 1 - src/main/resources/extra-icons/redis.svg | 1 - src/main/resources/extra-icons/rego.svg | 1 - src/main/resources/extra-icons/renovate.svg | 1 - .../extra-icons/requirementstxt_python.svg | 1 - .../requirementstxt_python_alt.svg | 1 - src/main/resources/extra-icons/restyled.svg | 1 - .../resources/extra-icons/restyled_alt.svg | 1 - .../resources/extra-icons/restyled_alt2.svg | 1 - .../resources/extra-icons/restyled_dark.svg | 1 - src/main/resources/extra-icons/roadmap.svg | 1 - .../resources/extra-icons/roadmap_dark.svg | 1 - .../resources/extra-icons/robotframework.svg | 1 - .../extra-icons/robotframework_alt.svg | 1 - .../extra-icons/robotframework_alt_dark.svg | 1 - src/main/resources/extra-icons/rollup.svg | 1 - src/main/resources/extra-icons/rpm.svg | 1 - src/main/resources/extra-icons/rultor.svg | 1 - .../resources/extra-icons/rultor_dark.svg | 1 - src/main/resources/extra-icons/sass.svg | 1 - src/main/resources/extra-icons/scalingo.svg | 1 - .../resources/extra-icons/scalingo_dark.svg | 1 - .../resources/extra-icons/screwdriver.svg | 1 - src/main/resources/extra-icons/scss.svg | 1 - src/main/resources/extra-icons/security.svg | 1 - .../resources/extra-icons/semaphoreci.svg | 1 - src/main/resources/extra-icons/sequelize.svg | 1 - src/main/resources/extra-icons/snap.svg | 1 - src/main/resources/extra-icons/sonar.svg | 1 - src/main/resources/extra-icons/sonar_dark.svg | 1 - src/main/resources/extra-icons/storybook.svg | 1 - .../extra-icons/stylus-browserext.svg | 1 - src/main/resources/extra-icons/svelte.svg | 1 - src/main/resources/extra-icons/svg.svg | 1 - src/main/resources/extra-icons/svg_alt.svg | 1 - src/main/resources/extra-icons/svg_dark.svg | 1 - src/main/resources/extra-icons/svgo.svg | 1 - src/main/resources/extra-icons/svgo_alt.svg | 1 - src/main/resources/extra-icons/swagger.svg | 1 - .../resources/extra-icons/swagger_alt.svg | 1 - .../resources/extra-icons/swaggerignore.svg | 1 - .../extra-icons/swaggerignore_dark.svg | 1 - .../resources/extra-icons/tailwindcss.svg | 1 - src/main/resources/extra-icons/terraform.svg | 1 - .../resources/extra-icons/terraform_dark.svg | 1 - .../resources/extra-icons/test-javascript.svg | 1 - .../extra-icons/test-javascript_alt.svg | 1 - src/main/resources/extra-icons/test-ts.svg | 1 - .../resources/extra-icons/test-ts_alt.svg | 1 - src/main/resources/extra-icons/testing.svg | 1 - .../resources/extra-icons/testing_dark.svg | 1 - .../extra-icons/tinylog_properties.svg | 1 - src/main/resources/extra-icons/todo.svg | 1 - src/main/resources/extra-icons/todo_alt.svg | 1 - .../resources/extra-icons/todo_alt_dark.svg | 1 - src/main/resources/extra-icons/todo_dark.svg | 1 - src/main/resources/extra-icons/tomcat.svg | 1 - src/main/resources/extra-icons/toml.svg | 1 - src/main/resources/extra-icons/toml_dark.svg | 1 - src/main/resources/extra-icons/tox.svg | 1 - src/main/resources/extra-icons/travis.svg | 1 - src/main/resources/extra-icons/travis_alt.svg | 1 - .../resources/extra-icons/travis_alt02.svg | 1 - .../resources/extra-icons/travis_alt03.svg | 1 - .../resources/extra-icons/travis_alt04.svg | 1 - .../resources/extra-icons/travis_alt05.svg | 1 - .../resources/extra-icons/travis_alt06.svg | 1 - .../resources/extra-icons/travis_alt07.svg | 1 - .../resources/extra-icons/travis_alt08.svg | 1 - .../resources/extra-icons/travis_alt09.svg | 1 - .../resources/extra-icons/travis_alt10.svg | 1 - .../resources/extra-icons/travis_alt11.svg | 1 - .../resources/extra-icons/travis_alt12.svg | 1 - .../resources/extra-icons/travis_alt13.svg | 1 - .../resources/extra-icons/travis_alt14.svg | 1 - src/main/resources/extra-icons/tsconfig.svg | 1 - src/main/resources/extra-icons/tsx.svg | 1 - .../resources/extra-icons/typescript-def.svg | 1 - src/main/resources/extra-icons/typescript.svg | 1 - .../resources/extra-icons/typescript_dark.svg | 1 - src/main/resources/extra-icons/uml.svg | 1 - src/main/resources/extra-icons/uml_dark.svg | 1 - src/main/resources/extra-icons/vagrant.svg | 1 - src/main/resources/extra-icons/velocity.svg | 1 - src/main/resources/extra-icons/version.svg | 1 - .../resources/extra-icons/version_dark.svg | 1 - src/main/resources/extra-icons/video.svg | 1 - src/main/resources/extra-icons/video_alt.svg | 1 - src/main/resources/extra-icons/video_alt2.svg | 1 - src/main/resources/extra-icons/video_alt3.svg | 1 - src/main/resources/extra-icons/vite.svg | 1 - src/main/resources/extra-icons/vite_alt.svg | 1 - src/main/resources/extra-icons/vitest.svg | 1 - .../resources/extra-icons/vitest_dark.svg | 1 - src/main/resources/extra-icons/vscode.svg | 1 - src/main/resources/extra-icons/weblate.svg | 1 - src/main/resources/extra-icons/webpack.svg | 1 - .../resources/extra-icons/webpack_alt.svg | 1 - src/main/resources/extra-icons/werf.svg | 1 - src/main/resources/extra-icons/werf_dark.svg | 1 - src/main/resources/extra-icons/wheel.svg | 1 - src/main/resources/extra-icons/wma.svg | 1 - src/main/resources/extra-icons/wma_dark.svg | 1 - src/main/resources/extra-icons/writerside.svg | 1 - .../resources/extra-icons/writerside_cfg.svg | 1 - .../resources/extra-icons/writerside_list.svg | 1 - .../extra-icons/writerside_list_dark.svg | 1 - .../resources/extra-icons/writerside_tree.svg | 1 - src/main/resources/extra-icons/xiph.svg | 1 - src/main/resources/extra-icons/yang.svg | 1 - src/main/resources/extra-icons/zalando.svg | 1 - .../resources/extra-icons/zalando_dark.svg | 1 - .../intellij/extra/icons/cfg/ArchTest.java | 36 - .../extra/icons/cfg/ResourcesTest.java | 300 ---- .../cfg/services/SettingsServiceTest.java | 68 - ...9-83cdae88-aa9a-437b-8790-410ecd4ec7c6.svg | 9 - ...3-bb7aa2bf-3b5f-47e2-b21d-95883c4229d4.svg | 4 - ...4-837a720a-fcb4-40eb-942d-667e2b39c4d3.svg | 8 - ...6-43ae538c-ffc5-4bce-b789-c2045ca06367.svg | 8 - .../extra-icons-issue141-icon-pack.json | 1 - src/test/resources/junit-platform.properties | 6 - svgo.config.js | 47 - 895 files changed, 5 insertions(+), 12510 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 CONTRIBUTION.md delete mode 100644 KNOWN_ISSUES.md delete mode 100644 Makefile delete mode 100644 build.gradle.kts delete mode 100644 docs/DEV_FAQ.md delete mode 100644 gradle.properties delete mode 100755 gradlew delete mode 100644 gradlew.bat delete mode 100644 misc/pluginIcon.free.svg delete mode 100644 misc/pluginIcon.lifetime.svg delete mode 100644 settings.gradle.kts delete mode 100644 src/main/java/lermitage/intellij/extra/icons/BaseIconProvider.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/ExtraIconPatcher.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/ExtraIconProvider.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/Globals.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/IconType.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/Model.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/ModelCondition.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/ModelTag.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/ModelType.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/UIType.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/UITypeIconsPreference.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/activity/EnablerServicesProjectActivity.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/activity/ExtraIconsLicenseCheckIDEActivity.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/activity/HintNotificationsProjectActivity.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/activity/RefreshIconsListenerProjectActivity.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/activity/VFSChangesListenersProjectActivity.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/IconPack.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/SettingsForm.form delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/SettingsForm.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/AskSingleTextDialog.form delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/AskSingleTextDialog.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/IconPackUninstallerDialog.form delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/IconPackUninstallerDialog.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelConditionDialog.form delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelConditionDialog.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelDialog.form delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelDialog.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/models/PluginIconsSettingsTableModel.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/models/UserIconsSettingsTableModel.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/providers/IDEConfigurableProvider.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/providers/ProjectConfigurableProvider.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsIDEService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsProjectService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/AbstractFolderEnabler.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/AbstractInFolderEnabler.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/IconEnabler.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/IconEnablerProvider.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/IconEnablerType.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/services/GitSubmoduleFolderEnablerService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/services/HelmFolderEnablerService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/services/InAngularFolderEnablerService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/services/InFlutterFolderEnablerService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/services/InGraphQLFolderEnablerService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/services/InHelmFolderEnablerService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/enablers/services/InWritersideFolderEnablerService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsLicenseCheck.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsLicenseStatus.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsPluginType.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/messaging/RefreshIconsNotifier.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/messaging/RefreshIconsNotifierService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/services/FacetsFinderService.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/Base64Utils.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/BundledIcon.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/ComboBoxWithImageItem.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/ComboBoxWithImageRenderer.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/ExtraIconsErrorReportSubmitter.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/FileChooserUtils.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/I18nUtils.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/IJUtils.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/IconPackUtils.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/IconUtils.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/OS.java delete mode 100644 src/main/java/lermitage/intellij/extra/icons/utils/ProjectUtils.java delete mode 100644 src/main/resources/ExtraIconsI18n.properties delete mode 100644 src/main/resources/ExtraIconsI18n_zh.properties delete mode 100644 src/main/resources/META-INF/plugin.xml delete mode 100644 src/main/resources/META-INF/pluginIcon.svg delete mode 100644 src/main/resources/extra-icons/7zip.svg delete mode 100644 src/main/resources/extra-icons/aac.svg delete mode 100644 src/main/resources/extra-icons/aac_dark.svg delete mode 100644 src/main/resources/extra-icons/allcontributors.svg delete mode 100644 src/main/resources/extra-icons/allcontributors_dark.svg delete mode 100644 src/main/resources/extra-icons/android.svg delete mode 100644 src/main/resources/extra-icons/android_alt.svg delete mode 100644 src/main/resources/extra-icons/angular-component-test.svg delete mode 100644 src/main/resources/extra-icons/angular-component.svg delete mode 100644 src/main/resources/extra-icons/angular-controller-test.svg delete mode 100644 src/main/resources/extra-icons/angular-controller.svg delete mode 100644 src/main/resources/extra-icons/angular-directive-test.svg delete mode 100644 src/main/resources/extra-icons/angular-directive.svg delete mode 100644 src/main/resources/extra-icons/angular-guard-test.svg delete mode 100644 src/main/resources/extra-icons/angular-guard.svg delete mode 100644 src/main/resources/extra-icons/angular-module-test.svg delete mode 100644 src/main/resources/extra-icons/angular-module.svg delete mode 100644 src/main/resources/extra-icons/angular-pipe-test.svg delete mode 100644 src/main/resources/extra-icons/angular-pipe.svg delete mode 100644 src/main/resources/extra-icons/angular-resolver-test.svg delete mode 100644 src/main/resources/extra-icons/angular-resolver.svg delete mode 100644 src/main/resources/extra-icons/angular-service-test.svg delete mode 100644 src/main/resources/extra-icons/angular-service.svg delete mode 100644 src/main/resources/extra-icons/angular2.svg delete mode 100644 src/main/resources/extra-icons/angular_renaissance.svg delete mode 100644 src/main/resources/extra-icons/apk.svg delete mode 100644 src/main/resources/extra-icons/apple.svg delete mode 100644 src/main/resources/extra-icons/appveyor.svg delete mode 100644 src/main/resources/extra-icons/archive.svg delete mode 100644 src/main/resources/extra-icons/archunit.svg delete mode 100644 src/main/resources/extra-icons/asciidoc.svg delete mode 100644 src/main/resources/extra-icons/asciidoc_alt.svg delete mode 100644 src/main/resources/extra-icons/authors.svg delete mode 100644 src/main/resources/extra-icons/authors_alt.svg delete mode 100644 src/main/resources/extra-icons/authors_alt2.svg delete mode 100644 src/main/resources/extra-icons/authors_alt3.svg delete mode 100644 src/main/resources/extra-icons/authors_alt4.svg delete mode 100644 src/main/resources/extra-icons/avro.svg delete mode 100644 src/main/resources/extra-icons/avro_dark.svg delete mode 100644 src/main/resources/extra-icons/babel.svg delete mode 100644 src/main/resources/extra-icons/babel_alt.svg delete mode 100644 src/main/resources/extra-icons/babel_dark.svg delete mode 100644 src/main/resources/extra-icons/backup.svg delete mode 100644 src/main/resources/extra-icons/bamboo.svg delete mode 100644 src/main/resources/extra-icons/bash.svg delete mode 100644 src/main/resources/extra-icons/bash_dark.svg delete mode 100644 src/main/resources/extra-icons/berkshelf.svg delete mode 100644 src/main/resources/extra-icons/berkshelflock.svg delete mode 100644 src/main/resources/extra-icons/bicep.svg delete mode 100644 src/main/resources/extra-icons/bicep_alt.svg delete mode 100644 src/main/resources/extra-icons/bicep_alt2.svg delete mode 100644 src/main/resources/extra-icons/binary.svg delete mode 100644 src/main/resources/extra-icons/binary_alt.svg delete mode 100644 src/main/resources/extra-icons/binary_alt2.svg delete mode 100644 src/main/resources/extra-icons/binary_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/bitbucket.svg delete mode 100644 src/main/resources/extra-icons/bitnami.svg delete mode 100644 src/main/resources/extra-icons/bitnami_dark.svg delete mode 100644 src/main/resources/extra-icons/bower.svg delete mode 100644 src/main/resources/extra-icons/browserslist.svg delete mode 100644 src/main/resources/extra-icons/browserslist_dark.svg delete mode 100644 src/main/resources/extra-icons/bug.svg delete mode 100644 src/main/resources/extra-icons/build.svg delete mode 100644 src/main/resources/extra-icons/c.svg delete mode 100644 src/main/resources/extra-icons/cache2k.svg delete mode 100644 src/main/resources/extra-icons/caddy.svg delete mode 100644 src/main/resources/extra-icons/cargo.svg delete mode 100644 src/main/resources/extra-icons/cassandra.svg delete mode 100644 src/main/resources/extra-icons/cassandra_dark.svg delete mode 100644 src/main/resources/extra-icons/certificate.svg delete mode 100644 src/main/resources/extra-icons/certificate_alt.svg delete mode 100644 src/main/resources/extra-icons/certificate_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/changelog.svg delete mode 100644 src/main/resources/extra-icons/changelog_dark.svg delete mode 100644 src/main/resources/extra-icons/circleci.svg delete mode 100644 src/main/resources/extra-icons/circleci_dark.svg delete mode 100644 src/main/resources/extra-icons/cirrus.svg delete mode 100644 src/main/resources/extra-icons/cirrus_dark.svg delete mode 100644 src/main/resources/extra-icons/cmd.svg delete mode 100644 src/main/resources/extra-icons/cmd_dark.svg delete mode 100644 src/main/resources/extra-icons/codacy.svg delete mode 100644 src/main/resources/extra-icons/codacy_dark.svg delete mode 100644 src/main/resources/extra-icons/codeception.svg delete mode 100644 src/main/resources/extra-icons/codeception_dark.svg delete mode 100644 src/main/resources/extra-icons/codecov.svg delete mode 100644 src/main/resources/extra-icons/codefresh.svg delete mode 100644 src/main/resources/extra-icons/codefresh_dark.svg delete mode 100644 src/main/resources/extra-icons/codeship.svg delete mode 100644 src/main/resources/extra-icons/codeship_alt.png delete mode 100644 src/main/resources/extra-icons/codeship_alt@2x.png delete mode 100644 src/main/resources/extra-icons/codeship_alt@2x_dark.png delete mode 100644 src/main/resources/extra-icons/codeship_alt_dark.png delete mode 100644 src/main/resources/extra-icons/codeship_dark.svg delete mode 100644 src/main/resources/extra-icons/commitlint.svg delete mode 100644 src/main/resources/extra-icons/composer.svg delete mode 100644 src/main/resources/extra-icons/composer_alt.svg delete mode 100644 src/main/resources/extra-icons/config.svg delete mode 100644 src/main/resources/extra-icons/contact.svg delete mode 100644 src/main/resources/extra-icons/contributing.svg delete mode 100644 src/main/resources/extra-icons/contributing_alt.png delete mode 100644 src/main/resources/extra-icons/contributing_alt2.svg delete mode 100644 src/main/resources/extra-icons/contributing_alt@2x.png delete mode 100644 src/main/resources/extra-icons/cookie.svg delete mode 100644 src/main/resources/extra-icons/cookie_dark.svg delete mode 100644 src/main/resources/extra-icons/coveragerc.svg delete mode 100644 src/main/resources/extra-icons/coveralls.svg delete mode 100644 src/main/resources/extra-icons/cpp.svg delete mode 100644 src/main/resources/extra-icons/crowdin.svg delete mode 100644 src/main/resources/extra-icons/css-map.svg delete mode 100644 src/main/resources/extra-icons/css.svg delete mode 100644 src/main/resources/extra-icons/csv_alt.svg delete mode 100644 src/main/resources/extra-icons/cypress.svg delete mode 100644 src/main/resources/extra-icons/deb.svg delete mode 100644 src/main/resources/extra-icons/deb_dark.svg delete mode 100644 src/main/resources/extra-icons/deno.svg delete mode 100644 src/main/resources/extra-icons/dependabot.svg delete mode 100644 src/main/resources/extra-icons/dependabot_alt.svg delete mode 100644 src/main/resources/extra-icons/dependabot_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/deptective.svg delete mode 100644 src/main/resources/extra-icons/detekt.svg delete mode 100644 src/main/resources/extra-icons/docker_.svg delete mode 100644 src/main/resources/extra-icons/docker_alt.svg delete mode 100644 src/main/resources/extra-icons/docker_alt2.svg delete mode 100644 src/main/resources/extra-icons/dockercompose_.svg delete mode 100644 src/main/resources/extra-icons/dockercompose_alt.svg delete mode 100644 src/main/resources/extra-icons/dockercompose_alt2.svg delete mode 100644 src/main/resources/extra-icons/dockerignore.svg delete mode 100644 src/main/resources/extra-icons/dockerignore_alt.svg delete mode 100644 src/main/resources/extra-icons/dockerignore_alt2.svg delete mode 100644 src/main/resources/extra-icons/dockerignore_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/dockerignore_dark.svg delete mode 100644 src/main/resources/extra-icons/drawio.svg delete mode 100644 src/main/resources/extra-icons/drawio_alt.svg delete mode 100644 src/main/resources/extra-icons/drawio_alt2.png delete mode 100644 src/main/resources/extra-icons/drawio_alt2@2x.png delete mode 100644 src/main/resources/extra-icons/editorconfig.svg delete mode 100644 src/main/resources/extra-icons/editorconfig_alt.svg delete mode 100644 src/main/resources/extra-icons/editorconfig_alt2.svg delete mode 100644 src/main/resources/extra-icons/editorconfig_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/elastic-cerebro.svg delete mode 100644 src/main/resources/extra-icons/elastic-cerebro_dark.svg delete mode 100644 src/main/resources/extra-icons/elasticsearch.svg delete mode 100644 src/main/resources/extra-icons/elasticsearch_dark.svg delete mode 100644 src/main/resources/extra-icons/elixir.svg delete mode 100644 src/main/resources/extra-icons/email.svg delete mode 100644 src/main/resources/extra-icons/env.svg delete mode 100644 src/main/resources/extra-icons/env_alt.svg delete mode 100644 src/main/resources/extra-icons/env_alt2.svg delete mode 100644 src/main/resources/extra-icons/epub.svg delete mode 100644 src/main/resources/extra-icons/eslint.svg delete mode 100644 src/main/resources/extra-icons/expo.svg delete mode 100644 src/main/resources/extra-icons/expo_dark.svg delete mode 100644 src/main/resources/extra-icons/expo_folder.svg delete mode 100644 src/main/resources/extra-icons/faq.svg delete mode 100644 src/main/resources/extra-icons/faq_alt.svg delete mode 100644 src/main/resources/extra-icons/faq_alt2.svg delete mode 100644 src/main/resources/extra-icons/faq_alt3.svg delete mode 100644 src/main/resources/extra-icons/faq_alt3_dark.svg delete mode 100644 src/main/resources/extra-icons/faq_alt4.svg delete mode 100644 src/main/resources/extra-icons/flutter-analysisoptions.svg delete mode 100644 src/main/resources/extra-icons/flutter-metadata.svg delete mode 100644 src/main/resources/extra-icons/flutter.svg delete mode 100644 src/main/resources/extra-icons/flutterlock.svg delete mode 100644 src/main/resources/extra-icons/flutterlock_dark.svg delete mode 100644 src/main/resources/extra-icons/flyway.svg delete mode 100644 src/main/resources/extra-icons/flyway_alt.svg delete mode 100644 src/main/resources/extra-icons/flyway_alt2.png delete mode 100644 src/main/resources/extra-icons/flyway_alt2@2x.png delete mode 100644 src/main/resources/extra-icons/flyway_alt2@2x_dark.png delete mode 100644 src/main/resources/extra-icons/flyway_alt2_dark.png delete mode 100644 src/main/resources/extra-icons/flyway_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/flyway_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_circleci.svg delete mode 100644 src/main/resources/extra-icons/folder_db2.svg delete mode 100644 src/main/resources/extra-icons/folder_dependabot.svg delete mode 100644 src/main/resources/extra-icons/folder_dependabot_alt.svg delete mode 100644 src/main/resources/extra-icons/folder_docker.svg delete mode 100644 src/main/resources/extra-icons/folder_fleet.svg delete mode 100644 src/main/resources/extra-icons/folder_flyway.svg delete mode 100644 src/main/resources/extra-icons/folder_github.svg delete mode 100644 src/main/resources/extra-icons/folder_gitlab.svg delete mode 100644 src/main/resources/extra-icons/folder_gradle.svg delete mode 100644 src/main/resources/extra-icons/folder_h2.svg delete mode 100644 src/main/resources/extra-icons/folder_hsqldb.svg delete mode 100644 src/main/resources/extra-icons/folder_idea.svg delete mode 100644 src/main/resources/extra-icons/folder_jpabuddy.svg delete mode 100644 src/main/resources/extra-icons/folder_jpabuddy_alt.svg delete mode 100644 src/main/resources/extra-icons/folder_jpabuddy_alt2.svg delete mode 100644 src/main/resources/extra-icons/folder_jpabuddy_alt3.svg delete mode 100644 src/main/resources/extra-icons/folder_liquibase.svg delete mode 100644 src/main/resources/extra-icons/folder_mariadb.svg delete mode 100644 src/main/resources/extra-icons/folder_mariadb_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_mergify.svg delete mode 100644 src/main/resources/extra-icons/folder_mvnw.svg delete mode 100644 src/main/resources/extra-icons/folder_mysql.svg delete mode 100644 src/main/resources/extra-icons/folder_mysql_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_node_modules.svg delete mode 100644 src/main/resources/extra-icons/folder_node_modules_alt.svg delete mode 100644 src/main/resources/extra-icons/folder_nuget.svg delete mode 100644 src/main/resources/extra-icons/folder_oracle.svg delete mode 100644 src/main/resources/extra-icons/folder_os_android.svg delete mode 100644 src/main/resources/extra-icons/folder_os_android_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_os_ios.svg delete mode 100644 src/main/resources/extra-icons/folder_os_ios_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_os_linux.svg delete mode 100644 src/main/resources/extra-icons/folder_os_linux_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_os_macos.svg delete mode 100644 src/main/resources/extra-icons/folder_os_macos_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_os_web.svg delete mode 100644 src/main/resources/extra-icons/folder_os_web_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_os_windows.svg delete mode 100644 src/main/resources/extra-icons/folder_os_windows_dark.svg delete mode 100644 src/main/resources/extra-icons/folder_postgresql.svg delete mode 100644 src/main/resources/extra-icons/folder_pytest_cache.svg delete mode 100644 src/main/resources/extra-icons/folder_python_venv.svg delete mode 100644 src/main/resources/extra-icons/folder_semaphoreci.svg delete mode 100644 src/main/resources/extra-icons/folder_sqlite.svg delete mode 100644 src/main/resources/extra-icons/folder_sqlserver.svg delete mode 100644 src/main/resources/extra-icons/folder_storybook.svg delete mode 100644 src/main/resources/extra-icons/folder_teamcity.svg delete mode 100644 src/main/resources/extra-icons/folder_tmp.svg delete mode 100644 src/main/resources/extra-icons/folder_vscode.svg delete mode 100644 src/main/resources/extra-icons/form.svg delete mode 100644 src/main/resources/extra-icons/form_dark.svg delete mode 100644 src/main/resources/extra-icons/gatling.svg delete mode 100644 src/main/resources/extra-icons/generated_pom.svg delete mode 100644 src/main/resources/extra-icons/generated_pom_alt.svg delete mode 100644 src/main/resources/extra-icons/git.svg delete mode 100644 src/main/resources/extra-icons/git_submodule.svg delete mode 100644 src/main/resources/extra-icons/git_submodule_alt.svg delete mode 100644 src/main/resources/extra-icons/github_action.svg delete mode 100644 src/main/resources/extra-icons/github_action_dark.svg delete mode 100644 src/main/resources/extra-icons/gitlab.svg delete mode 100644 src/main/resources/extra-icons/gitlab_alt.svg delete mode 100644 src/main/resources/extra-icons/gitlab_next.svg delete mode 100644 src/main/resources/extra-icons/gitpod.svg delete mode 100644 src/main/resources/extra-icons/glowroot.svg delete mode 100644 src/main/resources/extra-icons/gocd.svg delete mode 100644 src/main/resources/extra-icons/gocd_dark.svg delete mode 100644 src/main/resources/extra-icons/golangarchlinter.svg delete mode 100644 src/main/resources/extra-icons/gomod.svg delete mode 100644 src/main/resources/extra-icons/gomod_alt.svg delete mode 100644 src/main/resources/extra-icons/goreleaser.svg delete mode 100644 src/main/resources/extra-icons/goreleaser_alt.svg delete mode 100644 src/main/resources/extra-icons/gradle.svg delete mode 100644 src/main/resources/extra-icons/gradle_dark.svg delete mode 100644 src/main/resources/extra-icons/gradle_kotlin.svg delete mode 100644 src/main/resources/extra-icons/gradle_kotlin_colored.svg delete mode 100644 src/main/resources/extra-icons/gradle_kotlin_colored_dark.svg delete mode 100644 src/main/resources/extra-icons/gradle_kotlin_dark.svg delete mode 100644 src/main/resources/extra-icons/gradle_lock.svg delete mode 100644 src/main/resources/extra-icons/gradle_lock_dark.svg delete mode 100644 src/main/resources/extra-icons/gradlew.svg delete mode 100644 src/main/resources/extra-icons/gradlew_dark.svg delete mode 100644 src/main/resources/extra-icons/grafana.svg delete mode 100644 src/main/resources/extra-icons/graphql.svg delete mode 100644 src/main/resources/extra-icons/graphql_config.svg delete mode 100644 src/main/resources/extra-icons/graphql_config_dark.svg delete mode 100644 src/main/resources/extra-icons/graphql_dark.svg delete mode 100644 src/main/resources/extra-icons/graphql_schema.svg delete mode 100644 src/main/resources/extra-icons/graphql_schema_dark.svg delete mode 100644 src/main/resources/extra-icons/grunt.svg delete mode 100644 src/main/resources/extra-icons/h.svg delete mode 100644 src/main/resources/extra-icons/hadolint.svg delete mode 100644 src/main/resources/extra-icons/hadolint_dark.svg delete mode 100644 src/main/resources/extra-icons/haxe.svg delete mode 100644 src/main/resources/extra-icons/haxehxml.svg delete mode 100644 src/main/resources/extra-icons/helm.svg delete mode 100644 src/main/resources/extra-icons/helmChart.svg delete mode 100644 src/main/resources/extra-icons/helmChartsDirectory.svg delete mode 100644 src/main/resources/extra-icons/helmDirectory.svg delete mode 100644 src/main/resources/extra-icons/helmNotes.svg delete mode 100644 src/main/resources/extra-icons/helmRequirementsYaml.svg delete mode 100644 src/main/resources/extra-icons/helmTemplatesDirectory.svg delete mode 100644 src/main/resources/extra-icons/helmTemplatesTestDirectory.svg delete mode 100644 src/main/resources/extra-icons/helmUndeployable.svg delete mode 100644 src/main/resources/extra-icons/helmValues.svg delete mode 100644 src/main/resources/extra-icons/helmlogo.svg delete mode 100644 src/main/resources/extra-icons/helmlogo_alt.svg delete mode 100644 src/main/resources/extra-icons/hibernate.svg delete mode 100644 src/main/resources/extra-icons/htaccess.svg delete mode 100644 src/main/resources/extra-icons/html5.svg delete mode 100644 src/main/resources/extra-icons/html5_alt.svg delete mode 100644 src/main/resources/extra-icons/html5_alt2.svg delete mode 100644 src/main/resources/extra-icons/html5_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/http.png delete mode 100644 src/main/resources/extra-icons/http@2x.png delete mode 100644 src/main/resources/extra-icons/http@2x_dark.png delete mode 100644 src/main/resources/extra-icons/http_alt.svg delete mode 100644 src/main/resources/extra-icons/http_dark.png delete mode 100644 src/main/resources/extra-icons/ide/abstractException_.svg delete mode 100644 src/main/resources/extra-icons/ide/canary.svg delete mode 100644 src/main/resources/extra-icons/ide/chrome.svg delete mode 100644 src/main/resources/extra-icons/ide/edge.svg delete mode 100644 src/main/resources/extra-icons/ide/enumKotlin_.svg delete mode 100644 src/main/resources/extra-icons/ide/enumKotlin_alt.svg delete mode 100644 src/main/resources/extra-icons/ide/enumKotlin_alt2.svg delete mode 100644 src/main/resources/extra-icons/ide/enum_.svg delete mode 100644 src/main/resources/extra-icons/ide/enum_alt.svg delete mode 100644 src/main/resources/extra-icons/ide/enum_alt2.svg delete mode 100644 src/main/resources/extra-icons/ide/exceptionClass_.svg delete mode 100644 src/main/resources/extra-icons/ide/explorer.svg delete mode 100644 src/main/resources/extra-icons/ide/firefox.svg delete mode 100644 src/main/resources/extra-icons/ide/firefoxDeveloper.svg delete mode 100644 src/main/resources/extra-icons/ide/opera.svg delete mode 100644 src/main/resources/extra-icons/ide/safari.svg delete mode 100644 src/main/resources/extra-icons/ide/vivaldi.svg delete mode 100644 src/main/resources/extra-icons/ide/yaml_.svg delete mode 100644 src/main/resources/extra-icons/ide/yaml__dark.svg delete mode 100644 src/main/resources/extra-icons/ide/yaml_alt.svg delete mode 100644 src/main/resources/extra-icons/ide/yaml_alt2.svg delete mode 100644 src/main/resources/extra-icons/ide/yaml_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/imgbot.svg delete mode 100644 src/main/resources/extra-icons/imgbot_dark.svg delete mode 100644 src/main/resources/extra-icons/jar.svg delete mode 100644 src/main/resources/extra-icons/jar_dark.svg delete mode 100644 src/main/resources/extra-icons/java.svg delete mode 100644 src/main/resources/extra-icons/java_alt.png delete mode 100644 src/main/resources/extra-icons/java_alt@2x.png delete mode 100644 src/main/resources/extra-icons/java_alt@2x_dark.png delete mode 100644 src/main/resources/extra-icons/java_alt_dark.png delete mode 100644 src/main/resources/extra-icons/javascript-map.svg delete mode 100644 src/main/resources/extra-icons/javascript-map_dark.svg delete mode 100644 src/main/resources/extra-icons/javascript.svg delete mode 100644 src/main/resources/extra-icons/javascript_alt.svg delete mode 100644 src/main/resources/extra-icons/javascript_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/javascript_dark.svg delete mode 100644 src/main/resources/extra-icons/jenkins.svg delete mode 100644 src/main/resources/extra-icons/jenkins_alt.png delete mode 100644 src/main/resources/extra-icons/jenkins_alt@2x.png delete mode 100644 src/main/resources/extra-icons/jest.svg delete mode 100644 src/main/resources/extra-icons/jest_dark.svg delete mode 100644 src/main/resources/extra-icons/jetbrains.svg delete mode 100644 src/main/resources/extra-icons/jfr.svg delete mode 100644 src/main/resources/extra-icons/jfr_dark.svg delete mode 100644 src/main/resources/extra-icons/jgitver.svg delete mode 100644 src/main/resources/extra-icons/jgitver_dark.svg delete mode 100644 src/main/resources/extra-icons/jinja.svg delete mode 100644 src/main/resources/extra-icons/jinja_dark.svg delete mode 100644 src/main/resources/extra-icons/jitpack.svg delete mode 100644 src/main/resources/extra-icons/jitpack_dark.svg delete mode 100644 src/main/resources/extra-icons/jsbeautify.svg delete mode 100644 src/main/resources/extra-icons/jsbeautify_alt.svg delete mode 100644 src/main/resources/extra-icons/jsconfig.svg delete mode 100644 src/main/resources/extra-icons/jshint.svg delete mode 100644 src/main/resources/extra-icons/jshint_dark.svg delete mode 100644 src/main/resources/extra-icons/json.svg delete mode 100644 src/main/resources/extra-icons/jsx.svg delete mode 100644 src/main/resources/extra-icons/junit5.png delete mode 100644 src/main/resources/extra-icons/junit5@2x.png delete mode 100644 src/main/resources/extra-icons/junit5@2x_dark.png delete mode 100644 src/main/resources/extra-icons/junit5_dark.png delete mode 100644 src/main/resources/extra-icons/junit5_transparent.svg delete mode 100644 src/main/resources/extra-icons/junit5_white.svg delete mode 100644 src/main/resources/extra-icons/just.svg delete mode 100644 src/main/resources/extra-icons/just_alt.svg delete mode 100644 src/main/resources/extra-icons/just_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/just_dark.svg delete mode 100644 src/main/resources/extra-icons/karate.svg delete mode 100644 src/main/resources/extra-icons/karate_dark.svg delete mode 100644 src/main/resources/extra-icons/karma.svg delete mode 100644 src/main/resources/extra-icons/keep.svg delete mode 100644 src/main/resources/extra-icons/keepass.svg delete mode 100644 src/main/resources/extra-icons/keepass_alt.png delete mode 100644 src/main/resources/extra-icons/keepass_alt2.svg delete mode 100644 src/main/resources/extra-icons/keepass_alt@2x.png delete mode 100644 src/main/resources/extra-icons/keepass_alt@2x_dark.png delete mode 100644 src/main/resources/extra-icons/keepass_alt_dark.png delete mode 100644 src/main/resources/extra-icons/keepass_dark.svg delete mode 100644 src/main/resources/extra-icons/kibana.svg delete mode 100644 src/main/resources/extra-icons/kubernetes.svg delete mode 100644 src/main/resources/extra-icons/kubernetes_alt.svg delete mode 100644 src/main/resources/extra-icons/kubernetes_alt2.svg delete mode 100644 src/main/resources/extra-icons/kubernetes_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/kubernetes_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/kubernetes_dark.svg delete mode 100644 src/main/resources/extra-icons/kustomize.svg delete mode 100644 src/main/resources/extra-icons/kustomize_alt.svg delete mode 100644 src/main/resources/extra-icons/lerna.svg delete mode 100644 src/main/resources/extra-icons/lerna_dark.svg delete mode 100644 src/main/resources/extra-icons/less.svg delete mode 100644 src/main/resources/extra-icons/less_dark.svg delete mode 100644 src/main/resources/extra-icons/lgtm.svg delete mode 100644 src/main/resources/extra-icons/lgtm_alt.svg delete mode 100644 src/main/resources/extra-icons/license.svg delete mode 100644 src/main/resources/extra-icons/license_alt.png delete mode 100644 src/main/resources/extra-icons/license_alt@2x.png delete mode 100644 src/main/resources/extra-icons/license_alt@2x_dark.png delete mode 100644 src/main/resources/extra-icons/license_alt_dark.png delete mode 100644 src/main/resources/extra-icons/license_dark.svg delete mode 100644 src/main/resources/extra-icons/lighttpd.svg delete mode 100644 src/main/resources/extra-icons/liquibase.svg delete mode 100644 src/main/resources/extra-icons/liquibase_alt.svg delete mode 100644 src/main/resources/extra-icons/liquibase_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/liquibase_dark.svg delete mode 100644 src/main/resources/extra-icons/log4j.svg delete mode 100644 src/main/resources/extra-icons/log4j_dark.svg delete mode 100644 src/main/resources/extra-icons/logback.svg delete mode 100644 src/main/resources/extra-icons/logback_dark.svg delete mode 100644 src/main/resources/extra-icons/logstash.svg delete mode 100644 src/main/resources/extra-icons/lombok.svg delete mode 100644 src/main/resources/extra-icons/markdown.svg delete mode 100644 src/main/resources/extra-icons/markdown_alt.svg delete mode 100644 src/main/resources/extra-icons/markdown_alt2.svg delete mode 100644 src/main/resources/extra-icons/markdown_alt3.svg delete mode 100644 src/main/resources/extra-icons/markdown_alt3_dark.svg delete mode 100644 src/main/resources/extra-icons/matroska.svg delete mode 100644 src/main/resources/extra-icons/matroska_dark.svg delete mode 100644 src/main/resources/extra-icons/mdx.svg delete mode 100644 src/main/resources/extra-icons/mdx_alt.svg delete mode 100644 src/main/resources/extra-icons/mdx_alt2.svg delete mode 100644 src/main/resources/extra-icons/mdx_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/mdx_dark.svg delete mode 100644 src/main/resources/extra-icons/mergify.svg delete mode 100644 src/main/resources/extra-icons/mermaid.svg delete mode 100644 src/main/resources/extra-icons/metro.svg delete mode 100644 src/main/resources/extra-icons/mindmap.svg delete mode 100644 src/main/resources/extra-icons/mkdocs.svg delete mode 100644 src/main/resources/extra-icons/mkdocs_dark.svg delete mode 100644 src/main/resources/extra-icons/mockk.svg delete mode 100644 src/main/resources/extra-icons/moduleinfo.svg delete mode 100644 src/main/resources/extra-icons/moduleinfo_alt.svg delete mode 100644 src/main/resources/extra-icons/moduleinfo_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/moduleinfo_dark.svg delete mode 100644 src/main/resources/extra-icons/mongodb.svg delete mode 100644 src/main/resources/extra-icons/monkey's_audio.svg delete mode 100644 src/main/resources/extra-icons/mpeg.svg delete mode 100644 src/main/resources/extra-icons/mpeg_dark.svg delete mode 100644 src/main/resources/extra-icons/msazure.svg delete mode 100644 src/main/resources/extra-icons/msexe.svg delete mode 100644 src/main/resources/extra-icons/muse.svg delete mode 100644 src/main/resources/extra-icons/mvnw.svg delete mode 100644 src/main/resources/extra-icons/mvnw_dark.svg delete mode 100644 src/main/resources/extra-icons/my.svg delete mode 100644 src/main/resources/extra-icons/mysqlworkbench.svg delete mode 100644 src/main/resources/extra-icons/nestjs.svg delete mode 100644 src/main/resources/extra-icons/nestjs_adapter.svg delete mode 100644 src/main/resources/extra-icons/nestjs_controller.svg delete mode 100644 src/main/resources/extra-icons/nestjs_controller_test.svg delete mode 100644 src/main/resources/extra-icons/nestjs_decorator.svg delete mode 100644 src/main/resources/extra-icons/nestjs_dto.svg delete mode 100644 src/main/resources/extra-icons/nestjs_entity.svg delete mode 100644 src/main/resources/extra-icons/nestjs_filter.svg delete mode 100644 src/main/resources/extra-icons/nestjs_gateway.svg delete mode 100644 src/main/resources/extra-icons/nestjs_guard.svg delete mode 100644 src/main/resources/extra-icons/nestjs_interceptor.svg delete mode 100644 src/main/resources/extra-icons/nestjs_middleware.svg delete mode 100644 src/main/resources/extra-icons/nestjs_model.svg delete mode 100644 src/main/resources/extra-icons/nestjs_module.svg delete mode 100644 src/main/resources/extra-icons/nestjs_pipe.svg delete mode 100644 src/main/resources/extra-icons/nestjs_service.svg delete mode 100644 src/main/resources/extra-icons/nestjs_service_test.svg delete mode 100644 src/main/resources/extra-icons/netlify.svg delete mode 100644 src/main/resources/extra-icons/newui/7zip.svg delete mode 100644 src/main/resources/extra-icons/newui/archive.svg delete mode 100644 src/main/resources/extra-icons/newui/archive_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/avro.svg delete mode 100644 src/main/resources/extra-icons/newui/avro_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/c.svg delete mode 100644 src/main/resources/extra-icons/newui/c_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/config.svg delete mode 100644 src/main/resources/extra-icons/newui/config_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/cpp.svg delete mode 100644 src/main/resources/extra-icons/newui/cpp_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_db2.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_db2_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_fleet.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_fleet_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_h2.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_h2_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_hsqldb.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_hsqldb_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_jpabuddy.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_jpabuddy_alt.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_jpabuddy_alt2.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_jpabuddy_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_jpabuddy_alt3.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_jpabuddy_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_jpabuddy_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_mariadb.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_mariadb_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_mysql.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_mysql_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_oracle.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_oracle_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_android.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_android_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_ios.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_ios_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_linux.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_linux_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_macos.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_macos_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_web.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_web_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_windows.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_os_windows_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_postgresql.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_postgresql_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_pytest_cache.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_pytest_cache_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_python_venv.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_python_venv_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_sqlite.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_sqlite_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_sqlserver.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_sqlserver_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_teamcity.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_teamcity_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_tmp.svg delete mode 100644 src/main/resources/extra-icons/newui/folder_tmp_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/h.svg delete mode 100644 src/main/resources/extra-icons/newui/h_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helm.svg delete mode 100644 src/main/resources/extra-icons/newui/helmChart.svg delete mode 100644 src/main/resources/extra-icons/newui/helmChart_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmChartsDirectory.svg delete mode 100644 src/main/resources/extra-icons/newui/helmChartsDirectory_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmDirectory.svg delete mode 100644 src/main/resources/extra-icons/newui/helmDirectory_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmNotes.svg delete mode 100644 src/main/resources/extra-icons/newui/helmNotes_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmRequirementsYaml.svg delete mode 100644 src/main/resources/extra-icons/newui/helmRequirementsYaml_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmTemplatesDirectory.svg delete mode 100644 src/main/resources/extra-icons/newui/helmTemplatesDirectory_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmTemplatesTestDirectory.svg delete mode 100644 src/main/resources/extra-icons/newui/helmTemplatesTestDirectory_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmUndeployable.svg delete mode 100644 src/main/resources/extra-icons/newui/helmUndeployable_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmValues.svg delete mode 100644 src/main/resources/extra-icons/newui/helmValues_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helm_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/helmlogo.svg delete mode 100644 src/main/resources/extra-icons/newui/helmlogo_alt.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/abstractException_.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/abstractException__dark.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enumKotlin_.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enumKotlin__dark.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enumKotlin_alt.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enumKotlin_alt2.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enumKotlin_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enumKotlin_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enum_.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enum__dark.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enum_alt.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enum_alt2.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enum_alt2_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/enum_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/exceptionClass_.svg delete mode 100644 src/main/resources/extra-icons/newui/ide/exceptionClass__dark.svg delete mode 100644 src/main/resources/extra-icons/newui/onap-cba-blueprint.svg delete mode 100644 src/main/resources/extra-icons/newui/onap-cba-blueprint_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/onap-cba-definitions.svg delete mode 100644 src/main/resources/extra-icons/newui/onap-cba-definitions_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/writerside_cfg.svg delete mode 100644 src/main/resources/extra-icons/newui/writerside_cfg_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/writerside_list.svg delete mode 100644 src/main/resources/extra-icons/newui/writerside_list_dark.svg delete mode 100644 src/main/resources/extra-icons/newui/writerside_tree.svg delete mode 100644 src/main/resources/extra-icons/newui/writerside_tree_dark.svg delete mode 100644 src/main/resources/extra-icons/nginx.svg delete mode 100644 src/main/resources/extra-icons/noai.svg delete mode 100644 src/main/resources/extra-icons/noai_alt.svg delete mode 100644 src/main/resources/extra-icons/noai_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/noai_dark.svg delete mode 100644 src/main/resources/extra-icons/nodemon.svg delete mode 100644 src/main/resources/extra-icons/notice.svg delete mode 100644 src/main/resources/extra-icons/notice_dark.svg delete mode 100644 src/main/resources/extra-icons/nox.svg delete mode 100644 src/main/resources/extra-icons/npm.svg delete mode 100644 src/main/resources/extra-icons/npmignore.svg delete mode 100644 src/main/resources/extra-icons/npmignore_dark.svg delete mode 100644 src/main/resources/extra-icons/nsis.svg delete mode 100644 src/main/resources/extra-icons/nsis_dark.svg delete mode 100644 src/main/resources/extra-icons/nuget.svg delete mode 100644 src/main/resources/extra-icons/nuget_dark.svg delete mode 100644 src/main/resources/extra-icons/nx.svg delete mode 100644 src/main/resources/extra-icons/nx_alt.svg delete mode 100644 src/main/resources/extra-icons/officedocs/libo-calc.svg delete mode 100644 src/main/resources/extra-icons/officedocs/libo-draw.svg delete mode 100644 src/main/resources/extra-icons/officedocs/libo-impress.svg delete mode 100644 src/main/resources/extra-icons/officedocs/libo-math.svg delete mode 100644 src/main/resources/extra-icons/officedocs/libo-symbol-black.svg delete mode 100644 src/main/resources/extra-icons/officedocs/libo-writer.svg delete mode 100644 src/main/resources/extra-icons/officedocs/localc.svg delete mode 100644 src/main/resources/extra-icons/officedocs/lodraw.svg delete mode 100644 src/main/resources/extra-icons/officedocs/loimpress.svg delete mode 100644 src/main/resources/extra-icons/officedocs/lomain.svg delete mode 100644 src/main/resources/extra-icons/officedocs/lomath.svg delete mode 100644 src/main/resources/extra-icons/officedocs/lowriter.svg delete mode 100644 src/main/resources/extra-icons/officedocs/msexcel-2019.svg delete mode 100644 src/main/resources/extra-icons/officedocs/msexcel-papirus.svg delete mode 100644 src/main/resources/extra-icons/officedocs/msexcel.png delete mode 100644 src/main/resources/extra-icons/officedocs/msexcel@2x.png delete mode 100644 src/main/resources/extra-icons/officedocs/msexcel@2x_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msexcel_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msonenote-2019.svg delete mode 100644 src/main/resources/extra-icons/officedocs/msonenote.png delete mode 100644 src/main/resources/extra-icons/officedocs/msonenote@2x.png delete mode 100644 src/main/resources/extra-icons/officedocs/msonenote@2x_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msonenote_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/mspowerpoint-2019.svg delete mode 100644 src/main/resources/extra-icons/officedocs/mspowerpoint-papirus.svg delete mode 100644 src/main/resources/extra-icons/officedocs/mspowerpoint.png delete mode 100644 src/main/resources/extra-icons/officedocs/mspowerpoint@2x.png delete mode 100644 src/main/resources/extra-icons/officedocs/mspowerpoint@2x_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/mspowerpoint_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msproject-2019.svg delete mode 100644 src/main/resources/extra-icons/officedocs/msproject.png delete mode 100644 src/main/resources/extra-icons/officedocs/msproject@2x.png delete mode 100644 src/main/resources/extra-icons/officedocs/msproject@2x_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msproject_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msvisio-2019.svg delete mode 100644 src/main/resources/extra-icons/officedocs/msvisio.png delete mode 100644 src/main/resources/extra-icons/officedocs/msvisio@2x.png delete mode 100644 src/main/resources/extra-icons/officedocs/msvisio@2x_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msvisio_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msword-2019.svg delete mode 100644 src/main/resources/extra-icons/officedocs/msword-papirus.svg delete mode 100644 src/main/resources/extra-icons/officedocs/msword.png delete mode 100644 src/main/resources/extra-icons/officedocs/msword@2x.png delete mode 100644 src/main/resources/extra-icons/officedocs/msword@2x_dark.png delete mode 100644 src/main/resources/extra-icons/officedocs/msword_dark.png delete mode 100644 src/main/resources/extra-icons/onap-cba-blueprint.svg delete mode 100644 src/main/resources/extra-icons/onap-cba-blueprint_dark.svg delete mode 100644 src/main/resources/extra-icons/onap-cba-definitions.svg delete mode 100644 src/main/resources/extra-icons/onap-cba-definitions_dark.svg delete mode 100644 src/main/resources/extra-icons/onap-cba-tosca.svg delete mode 100644 src/main/resources/extra-icons/onap-cba-tosca_dark.svg delete mode 100644 src/main/resources/extra-icons/opentofu.svg delete mode 100644 src/main/resources/extra-icons/packageinfojava.svg delete mode 100644 src/main/resources/extra-icons/packageinfojava_dark.svg delete mode 100644 src/main/resources/extra-icons/packagejsonlock.svg delete mode 100644 src/main/resources/extra-icons/pdd.svg delete mode 100644 src/main/resources/extra-icons/pdd_dark.svg delete mode 100644 src/main/resources/extra-icons/pdf.svg delete mode 100644 src/main/resources/extra-icons/pdf_alt.svg delete mode 100644 src/main/resources/extra-icons/pdf_alt2.svg delete mode 100644 src/main/resources/extra-icons/pdf_alt3.svg delete mode 100644 src/main/resources/extra-icons/pdf_dark.svg delete mode 100644 src/main/resources/extra-icons/pid.svg delete mode 100644 src/main/resources/extra-icons/pid_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/auto.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/auto_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/checkmark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/checkmark_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/contextHelp.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/export.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/export_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/folder_newui.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/folder_newui_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/folder_oldui.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/gutterCheckBox.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/gutterCheckBoxSelected.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/gutterCheckBoxSelected_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/gutterCheckBox_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/import.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/import_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/reboot.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/reboot_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/refresh.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/refresh_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/remove.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/remove_dark.svg delete mode 100644 src/main/resources/extra-icons/plugin-internals/web.svg delete mode 100644 src/main/resources/extra-icons/pnpm.svg delete mode 100644 src/main/resources/extra-icons/poetry.svg delete mode 100644 src/main/resources/extra-icons/poetry_lock.svg delete mode 100644 src/main/resources/extra-icons/poetry_lock_dark.svg delete mode 100644 src/main/resources/extra-icons/postcss.svg delete mode 100644 src/main/resources/extra-icons/postman.svg delete mode 100644 src/main/resources/extra-icons/postman_col.svg delete mode 100644 src/main/resources/extra-icons/postman_env.svg delete mode 100644 src/main/resources/extra-icons/prettier.svg delete mode 100644 src/main/resources/extra-icons/prettier_alt.svg delete mode 100644 src/main/resources/extra-icons/prettier_dark.svg delete mode 100644 src/main/resources/extra-icons/prettierignore.svg delete mode 100644 src/main/resources/extra-icons/prettierignore_dark.svg delete mode 100644 src/main/resources/extra-icons/privacy.svg delete mode 100644 src/main/resources/extra-icons/proguard.svg delete mode 100644 src/main/resources/extra-icons/proguard_dark.svg delete mode 100644 src/main/resources/extra-icons/prometheus.svg delete mode 100644 src/main/resources/extra-icons/puppet.svg delete mode 100644 src/main/resources/extra-icons/pytest.svg delete mode 100644 src/main/resources/extra-icons/qodana.svg delete mode 100644 src/main/resources/extra-icons/qodana_alt.svg delete mode 100644 src/main/resources/extra-icons/readme.svg delete mode 100644 src/main/resources/extra-icons/readme_alt.svg delete mode 100644 src/main/resources/extra-icons/readme_alt2.svg delete mode 100644 src/main/resources/extra-icons/readme_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/readme_dark.svg delete mode 100644 src/main/resources/extra-icons/redis.svg delete mode 100644 src/main/resources/extra-icons/rego.svg delete mode 100644 src/main/resources/extra-icons/renovate.svg delete mode 100644 src/main/resources/extra-icons/requirementstxt_python.svg delete mode 100644 src/main/resources/extra-icons/requirementstxt_python_alt.svg delete mode 100644 src/main/resources/extra-icons/restyled.svg delete mode 100644 src/main/resources/extra-icons/restyled_alt.svg delete mode 100644 src/main/resources/extra-icons/restyled_alt2.svg delete mode 100644 src/main/resources/extra-icons/restyled_dark.svg delete mode 100644 src/main/resources/extra-icons/roadmap.svg delete mode 100644 src/main/resources/extra-icons/roadmap_dark.svg delete mode 100644 src/main/resources/extra-icons/robotframework.svg delete mode 100644 src/main/resources/extra-icons/robotframework_alt.svg delete mode 100644 src/main/resources/extra-icons/robotframework_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/rollup.svg delete mode 100644 src/main/resources/extra-icons/rpm.svg delete mode 100644 src/main/resources/extra-icons/rultor.svg delete mode 100644 src/main/resources/extra-icons/rultor_dark.svg delete mode 100644 src/main/resources/extra-icons/sass.svg delete mode 100644 src/main/resources/extra-icons/scalingo.svg delete mode 100644 src/main/resources/extra-icons/scalingo_dark.svg delete mode 100644 src/main/resources/extra-icons/screwdriver.svg delete mode 100644 src/main/resources/extra-icons/scss.svg delete mode 100644 src/main/resources/extra-icons/security.svg delete mode 100644 src/main/resources/extra-icons/semaphoreci.svg delete mode 100644 src/main/resources/extra-icons/sequelize.svg delete mode 100644 src/main/resources/extra-icons/snap.svg delete mode 100644 src/main/resources/extra-icons/sonar.svg delete mode 100644 src/main/resources/extra-icons/sonar_dark.svg delete mode 100644 src/main/resources/extra-icons/storybook.svg delete mode 100644 src/main/resources/extra-icons/stylus-browserext.svg delete mode 100644 src/main/resources/extra-icons/svelte.svg delete mode 100644 src/main/resources/extra-icons/svg.svg delete mode 100644 src/main/resources/extra-icons/svg_alt.svg delete mode 100644 src/main/resources/extra-icons/svg_dark.svg delete mode 100644 src/main/resources/extra-icons/svgo.svg delete mode 100644 src/main/resources/extra-icons/svgo_alt.svg delete mode 100644 src/main/resources/extra-icons/swagger.svg delete mode 100644 src/main/resources/extra-icons/swagger_alt.svg delete mode 100644 src/main/resources/extra-icons/swaggerignore.svg delete mode 100644 src/main/resources/extra-icons/swaggerignore_dark.svg delete mode 100644 src/main/resources/extra-icons/tailwindcss.svg delete mode 100644 src/main/resources/extra-icons/terraform.svg delete mode 100644 src/main/resources/extra-icons/terraform_dark.svg delete mode 100644 src/main/resources/extra-icons/test-javascript.svg delete mode 100644 src/main/resources/extra-icons/test-javascript_alt.svg delete mode 100644 src/main/resources/extra-icons/test-ts.svg delete mode 100644 src/main/resources/extra-icons/test-ts_alt.svg delete mode 100644 src/main/resources/extra-icons/testing.svg delete mode 100644 src/main/resources/extra-icons/testing_dark.svg delete mode 100644 src/main/resources/extra-icons/tinylog_properties.svg delete mode 100644 src/main/resources/extra-icons/todo.svg delete mode 100644 src/main/resources/extra-icons/todo_alt.svg delete mode 100644 src/main/resources/extra-icons/todo_alt_dark.svg delete mode 100644 src/main/resources/extra-icons/todo_dark.svg delete mode 100644 src/main/resources/extra-icons/tomcat.svg delete mode 100644 src/main/resources/extra-icons/toml.svg delete mode 100644 src/main/resources/extra-icons/toml_dark.svg delete mode 100644 src/main/resources/extra-icons/tox.svg delete mode 100644 src/main/resources/extra-icons/travis.svg delete mode 100644 src/main/resources/extra-icons/travis_alt.svg delete mode 100644 src/main/resources/extra-icons/travis_alt02.svg delete mode 100644 src/main/resources/extra-icons/travis_alt03.svg delete mode 100644 src/main/resources/extra-icons/travis_alt04.svg delete mode 100644 src/main/resources/extra-icons/travis_alt05.svg delete mode 100644 src/main/resources/extra-icons/travis_alt06.svg delete mode 100644 src/main/resources/extra-icons/travis_alt07.svg delete mode 100644 src/main/resources/extra-icons/travis_alt08.svg delete mode 100644 src/main/resources/extra-icons/travis_alt09.svg delete mode 100644 src/main/resources/extra-icons/travis_alt10.svg delete mode 100644 src/main/resources/extra-icons/travis_alt11.svg delete mode 100644 src/main/resources/extra-icons/travis_alt12.svg delete mode 100644 src/main/resources/extra-icons/travis_alt13.svg delete mode 100644 src/main/resources/extra-icons/travis_alt14.svg delete mode 100644 src/main/resources/extra-icons/tsconfig.svg delete mode 100644 src/main/resources/extra-icons/tsx.svg delete mode 100644 src/main/resources/extra-icons/typescript-def.svg delete mode 100644 src/main/resources/extra-icons/typescript.svg delete mode 100644 src/main/resources/extra-icons/typescript_dark.svg delete mode 100644 src/main/resources/extra-icons/uml.svg delete mode 100644 src/main/resources/extra-icons/uml_dark.svg delete mode 100644 src/main/resources/extra-icons/vagrant.svg delete mode 100644 src/main/resources/extra-icons/velocity.svg delete mode 100644 src/main/resources/extra-icons/version.svg delete mode 100644 src/main/resources/extra-icons/version_dark.svg delete mode 100644 src/main/resources/extra-icons/video.svg delete mode 100644 src/main/resources/extra-icons/video_alt.svg delete mode 100644 src/main/resources/extra-icons/video_alt2.svg delete mode 100644 src/main/resources/extra-icons/video_alt3.svg delete mode 100644 src/main/resources/extra-icons/vite.svg delete mode 100644 src/main/resources/extra-icons/vite_alt.svg delete mode 100644 src/main/resources/extra-icons/vitest.svg delete mode 100644 src/main/resources/extra-icons/vitest_dark.svg delete mode 100644 src/main/resources/extra-icons/vscode.svg delete mode 100644 src/main/resources/extra-icons/weblate.svg delete mode 100644 src/main/resources/extra-icons/webpack.svg delete mode 100644 src/main/resources/extra-icons/webpack_alt.svg delete mode 100644 src/main/resources/extra-icons/werf.svg delete mode 100644 src/main/resources/extra-icons/werf_dark.svg delete mode 100644 src/main/resources/extra-icons/wheel.svg delete mode 100644 src/main/resources/extra-icons/wma.svg delete mode 100644 src/main/resources/extra-icons/wma_dark.svg delete mode 100644 src/main/resources/extra-icons/writerside.svg delete mode 100644 src/main/resources/extra-icons/writerside_cfg.svg delete mode 100644 src/main/resources/extra-icons/writerside_list.svg delete mode 100644 src/main/resources/extra-icons/writerside_list_dark.svg delete mode 100644 src/main/resources/extra-icons/writerside_tree.svg delete mode 100644 src/main/resources/extra-icons/xiph.svg delete mode 100644 src/main/resources/extra-icons/yang.svg delete mode 100644 src/main/resources/extra-icons/zalando.svg delete mode 100644 src/main/resources/extra-icons/zalando_dark.svg delete mode 100644 src/test/java/lermitage/intellij/extra/icons/cfg/ArchTest.java delete mode 100644 src/test/java/lermitage/intellij/extra/icons/cfg/ResourcesTest.java delete mode 100644 src/test/java/lermitage/intellij/extra/icons/cfg/services/SettingsServiceTest.java delete mode 100644 src/test/resources/issue141/244836649-83cdae88-aa9a-437b-8790-410ecd4ec7c6.svg delete mode 100644 src/test/resources/issue141/244836653-bb7aa2bf-3b5f-47e2-b21d-95883c4229d4.svg delete mode 100644 src/test/resources/issue141/244836654-837a720a-fcb4-40eb-942d-667e2b39c4d3.svg delete mode 100644 src/test/resources/issue141/244836656-43ae538c-ffc5-4bce-b789-c2045ca06367.svg delete mode 100644 src/test/resources/issue141/extra-icons-issue141-icon-pack.json delete mode 100644 src/test/resources/junit-platform.properties delete mode 100644 svgo.config.js diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 65cda88c..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,956 +0,0 @@ -# Extra Icons Change Log - -## 2024.1.2 (WIP) -* optimize icons size by ~3% with SVGO 3.2.0. -* fix [#176](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/176): clicking 'Go to Extra Icons settings' from the notification just throws an error. - -## 2024.1.1 (2024/01/02) -* **INFO**: JetBrains will introduce a new business model for paid/freemium plugins. This model will offer a perpetual license, **allowing users to make a one-time payment for the plugin and use it for a lifetime**. [Get more information here](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/docs/LICENSE_FAQ.md#how-to-get-a-lifetime-license). There is no ETA yet. -* build script: prepare the work for the introduction of lifetime licenses. -* fix [#175](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/175): `java.lang.Throwable: Must be precomputed`. UI Scale detection could fail at startup. It should be fixed now. -* initial support of [Flutter](https://flutter.dev) icons. -* improve Prettier support. -* improve Gradle support. -* add the new alternative GitLab "next" orange icon for `.gitlab-ci.yml` files. -* rework GitLab folder icon. -* rework Privacy icon. -* support `(.)log(s)`folders. -* support `.noai` files (which tell the AI Assistant plugin to block AI features for the containing project). -* support [Detekt](https://detekt.dev/docs/introduction/configurations/) files ending by `detekt-config.yml` or `detekt.yml` (I may try to pick the configured Detekt filename from the `build.gradle(.kts)` file later). -* support Qodana `qodana.yaml` files. -* plugin's license is now verified occasionally, in addition to the verification done by IDE at startup. -* starting from 2024, I will occasionally send some [coupons](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/docs/LICENSE_FAQ.md#i-received-a-coupon-for-a-free-license-how-does-it-work) for Free licenses on [Twitter](https://twitter.com/JLermitage) and [Bluesky](https://bsky.app/profile/jonathanlermitage.bsky.social). Stay tuned. - -## 2023.4.2 (2023/12/03) -* **INFO**: JetBrains will introduce a new business model for paid/freemium plugins. This model will offer a perpetual license, **allowing users to make a one-time payment for the plugin and use it for a lifetime**. [Get more information here](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/docs/LICENSE_FAQ.md#how-to-get-a-lifetime-license). -* implement [IDEA-336801](https://youtrack.jetbrains.com/issue/IDEA-336801) workaround: IDE's icon cache prevented some icons override on refresh (per example, after you enabled or disabled a custom icon). -* implement a temporary and partial workaround for [IDEA-339254](https://youtrack.jetbrains.com/issue/IDEA-339254): can't refresh Java Exception and Java Abstract Exception IDE icons. -* settings panel: inform user about some IntelliJ issues affecting this plugin. -* support `.git-blame-ignore-revs` files. -* add Angular 17 "renaissance" alternative icon for `angular.json` files. - -## 2023.4.1 (2023/11/20) -* improve Jenkins support. Thanks **lauragra-y (Laura Gray)** for her contribution! -* add new UI icon variants for Tox folders, Python `.egg-info` folders, Python PyTest cache folders and Python Virtual Environment folders. -* Extra Icons can now override *JPA Buddy* icons in recent IDEs. A new colorful icon theme is available online if you don't like JPA Buddy toolwindows gray icons. See [JPABuddyOldUITheme](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/themes/THEMES.md#jpabuddyolduitheme). -* Extra Icons can now override *Extra ToolWindow Colorful Icons* icons. -* Also added an icon theme for AI Assistant toolwindows icon. See [AIAssistantTheme](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/themes/THEMES.md#aiassistanttheme). -* implement [#170](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/170): when registering a user icon, conditions parameters (except for regex and Facets) should be automatically lower-cased as files and folders paths are also lower-cased before evaluation. Also, the model tester now detects if path contains a *parent folder*, allowing you to test *Parents* condition. The model tester also finds file name when you give a full path. - -## 2023.3-231 (2023/11/05) -* important code rework [#166](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/166): improve the way Extra Icons plugin triggers icons refresh and IDE's filename index querying. You should see less `Slow operations are prohibited on EDT` and threading related issues like `...should be accessed only from EDT`. -* fix [#36](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/36): can't override Python icons in PyCharm, Go icons in GoLand, and Tree and List icons in WriterSide. -* try to fix [#165](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/165): `AlreadyDisposedException: Cannot create com.intellij.ui.docking.DockManager because container is already disposed` on IDE or plugin upgrade. -* fix new UI icon variants rendering when overriding IDE icons. -* performance improvement when displaying bundled icons (reduced CPU usage). -* performance improvement when displaying user icons (reduced I/O usage). -* performance improvement when refreshing icons (project views were refreshed 6 times, now reduced to a single refresh). -* support some [Writerside](https://www.jetbrains.com/writerside/) icons: `writerside.cfg`, `*.list` and `*.tree`. Please note Writerside IDE has similar [limitation](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/36) as PyCharm and GoLand IDEs: can't override some Writerside icons in project view. There is no problem with Writerside plugin running in IntelliJ. -* settings UI, fix compatibility with Gateway: some Apache Commons libraries are used by plugin, but they may not be bundled with Gateway. -* settings UI, *Quick action*: the icon group chooser now integrates the **Speed Search** functionality, [similar to Speed Search for Tool Windows](https://www.jetbrains.com/help/idea/speed-search-in-the-tool-windows.html). Select the icon group chooser, type text, and the selection moves to the first item that matches the specified string. -* support Microsoft [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview) `*.bicep` files. -* rework Backup, Build, Cargo, Codefresh, Deptective, Glowroot, Hadolint, Jar/Dar, JVM config, JSBeautify, JSHint, Kibana, Lerna, Logstash, Muse, MySQL `my.ini`, MySQL Workbench, Nox, PDF, Roadmap, Stylus, To-Do, Tox, Windows executable and Zalando Zappr icons in order to make them compatible with Gateway. -* change default CSV and Video icons. -* add an alternative icon for CSV files. - -## 2023.2.12-231 (2023/10/15) -* fix [157](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/157): `java.lang.Throwable: TreeUI should be accessed only from EDT` with Rider 2023.3 EAP 1. -* fix a bug that set `Use IDE filename index` feature to `false` when project-level settings were activated. With this release, this feature will be set to `true` just one time. Feel free to turn it to `false` if wanted (see Extra Icons settings, `Advanced` tab). -* silent some unwanted `Control-flow exceptions` error reports. They appeared on project loading, if IDE failed to load some user icons (for obscure reasons I can't detect nor fix). -* important code rework, which will hopefully prevent more `Slow operations are prohibited on EDT` warnings. I will continue my effort in a next release (I think I found some promising ideas, which would improve stability and performance). -* add a button to detect the correct *Additional UI Scale Factor*. -* settings UI: when registering a user icon, the icon chooser now integrates the **Speed Search** functionality, [similar to Speed Search for Tool Windows](https://www.jetbrains.com/help/idea/speed-search-in-the-tool-windows.html). Select the icon chooser, type text, and the selection moves to the first item that matches the specified string. A future update will bring the same functionality to the icons table. -* settings UI: add a button to reset Extra Icons startup hints. -* add *new UI* icons for Ini, Cfg, Conf, Config, C, C++ and H files. -* support `.gitlab/dependabot.yml` files. Thanks **mateusz-bajorek (Mateusz Bajorek)** for his contribution! -* support OpenTofu `*.tf` and `*.tf.json` files. -* rework Cerebro, Jenkins, Log4j, Logback and `package-lock.json` icons in order to make them compatible with Gateway. -* cleanup: remove unused icons. - -## 2023.2.11-231 (2023/09/18) -* fix [156](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/156): important rework of SVG user icons scaling. Most icons should no longer be blurry. Only small SVG icons (with `width` or `height` attributes < 16) will be blurry. For these icons, you are invited to rework them and set higher `width` and `height` values (ideally 16). **Reminder**: if the operating system's **fractional scaling** is activated, please go to plugin's settings, *Advanced* tab, then adjust the *Additional UI Scale Factor* value (ex: for a 125% global scale factor, set it to 1.25). [See details here](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/156#issuecomment-1722545407). -* remove JSVG from dependencies. SVG icons are now handled by JetBrains API directly, which uses its own version of JSVG. -* improve Markdown icon. -* rework Authors, Asciidoc, Bamboo, Berkshelf, Contact icons in order to make them compatible with Gateway. - -## 2023.2.10-231 (2023/09/03) -* fix [151](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/151): NullPointerException in settings form (`pluginIconsSettingsTableModel` is null). -* fix [152](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/152): plugin not compatible with JetBrains Gateway. -* fix support of Caddy (Caddyfile) files. -* add new UI icon for JetBrains Fleet `.fleet` folders. -* rework the way IDE and project level settings are persisted. A limited set of IDE level settings may have been saved at project level (and vice-versa) in the past. This should be fixed now. -* use the new GitLab icon by default instead of the old one. -* settings: try to auto-detect default window scale (`Additional UI Scale Factor` in advanced settings) on new setups. This is useful only if you added user icons or downloaded icon packs. On existing setups, default value is still 1. -* internal: code cleanup, remove compatibility code for unsupported old IDEs. Minor performance improvement. -* info: JetBrains [**Gateway support is in progress**](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/milestone/27). Icons rendering works when plugin is installed in Host, or in both Host and Client, but not in Client only. Also, for now, plugin's settings panels are broken and some icons are too big, but icons override works. I have [plans](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/milestone/27) to fix these issues. -* rework Codacy icon in order to make it compatible with Gateway. -* rework Editorconfig icon in order to make it compatible with Gateway. - -## 2023.2.9-231 (2023/08/12) -* rework settings panel. -* experimental: add an option to avoid usage of IDE filename index. Without IDE filename index, Angular, GraphQL and Helm support may be limited, but it may hopefully avoid some errors and warnings when using slow operations in EDT, things like that. -* internal: code rework, avoid potential future issues. -* improve Codacy support. -* support Codeception `codeception.dist.yml` files. -* support JetBrains Fleet `.fleet` folders. -* fix Lighttpd icon rendering on latest IDEs (JetBrains changed their SVG renderer for JSVG, which breaks some SVG files). -* internal: minor performance improvement. - -## 2023.2.8-231 (2023/07/12) -* fix [146](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/146): NullPointerException in settings form (`additionalUIScale` is null). -* fix usage of a deprecated API in order to improve compatibility with future IDEs. -* internal: fix unit tests for IDE 2023.2 EAP7. - -## 2023.2.7-231 (2023/07/07) -* **improve Git Submodules support**. Git Submodules are now automatically re-detected on every `.gitmodules` file update. -* support Coveralls, Elixir and Sonarqube files. Thanks **JuanDGiraldoM** for his contribution! -* support [Just](https://github.com/casey/just) `justfile` files. -* **you can now choose to use icons *new UI* variants** based on current active UI, or force the use of *old* or *new UI* variants, when they exist. See Extra Icons settings. -* add *new UI* icons for Java Enums. -* add *new UI* icons for Kotlin Enums. -* add *new UI* icons for Exceptions. -* add *new UI* icons for Abstract Exceptions. -* add *new UI* icons for Avro files. -* add *new UI* icons for various ONAP files. -* add *new UI* icons for JPA Buddy, Flyway, Liquibase and TeamCity folders. -* add *new UI* icons for various Helm files and folders. -* add *new UI* icons for various archive files. -* fix: restore missing Helm templates test folder icon. -* fix IDE icons display in settings panel. -* minor performance optimizations. -* just a reminder: *IDE icons* override (which targets a specific IDE icon like Java Enums, not a file path) may work randomly with the new UI. [An issue has been accepted](https://youtrack.jetbrains.com/issue/IDEA-321006) by JetBrains and, I guess, a future IDE update will fix this issue. Unfortunately, I can do nothing at the plugin level. We have to wait for a fix at the IDE level. - -## 2023.2.6-231 (2023/06/11) -* fix [137](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/137). Silent `MissingResourceException` errors when trying to find the PSI object for a file. This should have no impact on user experience, as it seemed to happen when displaying files in folders such as `node_modules` only. Files in these folders will show their original icons. -* fix [140](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/140). Important code rework, which should fix some "slow operations are prohibited on EDT" error messages with EAP IDEs. -* fix [141](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/141). Enable antialiasing when displaying SVG user icons. -* fix: don't freeze settings UI when displaying invalid SVG user icons. -* internal: add the ability to create icons for the Old or New UI only. This way, I will be able to provide icons that fit better with the New UI. - -## 2023.2.5-231 (2023/05/24) -* rework some SVG icons. File and tab icons were rendered correctly, but icons preview in config panel was a bit altered. -* fix some missing Chinese i18n. -* hide some useless warning messages about IDE filename index issues and icons refreshing. They're still logged, but you will no longer see alerts in your IDE. - -## 2023.2.4-231 (2023/05/21) -* fix support of IDE 2023.2 EAP: replaced Apache Batik by JSVG for SVG rendering + some code rework. Batik were interfering with Grazie Lite, leading to its deactivation. -* rework ImgBot, Liquibase, Haxe, Cookie, JavaScript and LGTM SVG icons. IDE 2023.2 EAP raised an error when displaying these icons, or misunderstood some SVG attributes, leading to black&white or blank rendering. JetBrains changed their SVG renderer (replaced Apache Batik by JSVG), which is a bit less functional for now, but lighter. -* important code rework, which will hopefully prevent some weird IDE errors. Additional improvements will come soon. -* I think some annoying bugs have been solved since 2023.2.2 plugin release, which requires a 2023.1+ IDE (due to breaking changes in JetBrains APIs). I will maintain a branch for 2022 IDEs for a few months in order to backport fixes. I will definitively abandon 2022 IDEs once all critical issues have been solved or mitigated. Sorry for not having done it earlier. - -## 2023.2.3 (2023/05/09) -* avoid unnecessary error when failed to query IDE filename index. Plugin will try again later. -* support [Vitest](https://vitest.dev/config/) config files. -* support Python Wheel files. - -## 2023.2.2 (2023/05/05) -* set minimal IDE version to 2023.1 and fix [#121](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/121): "slow operations are prohibited on EDT". It occurred while querying the IDE filename index in order to detect some specific files (like Angular and Helm related files). -* fix [#126](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/126): "slow operations are prohibited on EDT" when invoking a file selector. -* various minor fixes in settings panels. -* fix support of [Poetry](https://python-poetry.org) files. -* fix model creation/update dialog: user should be allowed to select a single icon, not many. -* internal: some code rework, and improved code quality. -* nota: some *"slow operations are prohibited on EDT"* errors may still be logged (it breaks nothing, these are only warning messages) on EAP IDE builds, when you open a file chooser, while creating a new icon model, or when importing and exporting Icon Packs. You can disable these warnings by following [these instructions](https://plugins.jetbrains.com/plugin/11058-extra-icons/errors-workarounds). A fix will be provided later. - -## 2023.2.1 (2023/04/21) -* you can now import and export user icons. See **Icon Pack** in Extra Icons settings. This also means you can easily share icon themes with friends. -* created a downloadable [Icon Pack](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/themes/THEMES.md#downloadable-icon-packs) which restores some old file and folder icons in the new UI. -* implement [#118](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/118): add a custom error reporter which prefills an issue on Extra Icons' GitHub repository. -* fix editor tabs icon reloading on config change. -* fix [#125](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/125): custom icon type errors after enabling Chinese UI. Thanks **Elziy** for helping! -* fix [#120](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/120): minor UI improvement. -* nota: issue [#121](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/121) "Slow operations are prohibited on EDT" fix will be shipped with 2023.2.2 plugin release, as it requires IDE 2023.1. I wanted to support old IDEs in 2023.2.1 plugin release. This issue occurs mainly in EAP and RC IDE builds, and you will find a safe workaround [here](https://plugins.jetbrains.com/plugin/11058-extra-icons/errors-workarounds). -* improve Chinese UI translation. Thanks **Gerry** for helping! -* support Mermaid files: use the official Mermaid logo instead of the icon displayed by the JetBrains Mermaid plugin. -* support some [Poetry](https://python-poetry.org) files. -* support `pytest.ini` files. -* support `*.cc` and `*.hpp` files. -* add an alternative icon for Composer files. -* add an alternative icon for SVGO files. -* add an alternative icon for Markdown files. -* rework ArchUnit icon (PNG icon to SVG). -* rework Cirrus icon (PNG icon to SVG). -* rework Debian (deb files) icon (PNG icon to SVG). -* rework Elasticsearch icon (PNG icon to SVG). -* rework Gatling icon (based on new logo). -* rework GoCD icon (PNG icon to SVG). -* rework Readme icon. -* rework Redis icon. -* rework Version icon. -* rework a certificate icon (PNG icon to SVG). -* internal: some code rework, and improved code quality. - -## 2023.1.2 (2023/03/07) -* support C, C++ and H files. -* plugin's internationalization: provide English and Chinese UI translations. Nota: Chinese translation is automatically applied only if the official IDE [Chinese Language Pack](https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack----) plugin is enabled. -* minor aesthetic bugfix in config panel. -* remove support of Caddy (Caddyfile). IDE 2023.1 EAP crashed loading this icon (SVG file with base64 encoded PNG). This is a known bug in IntelliJ. -* internal: important code rework on SVG rendering. -* [fix #119](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/119) can't display SVG icons with IDE 2023 EAP. - -## 2023.1.1 (2023/02/11) -* minor UI improvement in settings panel: add icons to _Enable all... / Disable all..._ combobox items. -* minor UI improvement in Model dialog: hide tester's input label when type is set to IDE icon. -* rework JUnit5 icon (PNG icon to SVG), and add an alternative icon. -* rework LibreOffice icons (PNG icons to SVG). Also added LibreOffice 7.5 [new icons](https://wiki.documentfoundation.org/ReleaseNotes/7.5#Design). -* add alternative icons for MS Office Word, Excel and PowerPoint files. -* add an alternative icon for CSV files. -* add an alternative icon for KeePass files. - -## 2023.1 (2023/01/21) -* settings: rework the icon which indicates if an IDE restart is needed. -* internal: clear ExtraIcons internal caches associated to closed projects. It should reduce memory usage (a little). -* internal: important code rework and refactoring, avoid some possible errors. -* support Kustomize `kustomization.yaml` files. -* remove Better Code Hub icons as [Better Code Hub has closed on December 31st 2022](https://github.com/marketplace/better-code-hub). - -## 2022.1.14 (2022/12/04) -* [try to mitigate #114](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/114) PHPStorm freezes for a few seconds several times. The JetBrains Angular plugin may cause high CPU usage. Removed usage of the (optional) Angular plugin which was used to detect Angular projects. Angular projects are still detected by using the IDE filename index, so you should still see Angular icons. Unfortunately, you may still experience some IDE freezes: this is an issue with the Angular plugin itself. It seems to be [fixed](https://youtrack.jetbrains.com/issue/WEB-57461) in IntelliJ 2022.3 RC, so you may want to wait for the 2022.3 final release of your IDE, or temporarily disable the Angular plugin. -* internal: upgrade TwelveMonkeys library to 3.9.4 (used to preview and resize PNG icons). -* fix usage of a deprecated API in order to improve compatibility with future 2023 IDEs. -* improve Angular and JS/TS test icons. - -## 2022.1.13 (2022/11/11) -* set minimal IDE version to 2022.1 and fix usage of a deprecated API used to query IDE filename index. -* [fix #113](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/113) can't load custom icons from local drive on Windows. -* internal: upgrade TwelveMonkeys library to 3.9.3 (used to preview and resize PNG icons). - -## 2022.1.12 (2022/10/15) -* add graphql-resolver, Rego and Mongodb icons. Improve frameworks detection mechanism. Thx to contributor **fcannizzaro**. -* I'm working on tooling and preparing the support for the 2023 IDEs. That's why this changelog will probably be a bit poor until next year. Meanwhile, bugfixes remain my priority, so don't hesitate to raise issues. - -## 2022.1.11 (2022/09/16) -* [feat #110](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/110) config panel: add a text input field to test the conditions for User icons. -* [fix #111](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/111) slow operations are prohibited on EDT. -* config panel: minor UI improvements in Plugin icons list. -* fix possible NPE when updating User icons conditions list. -* I think IDE filename index issues are gone! Sorry for this annoying issue, it made me crazy. Big thanks to [Andreas Perhab](https://youtrack.jetbrains.com/issue/IDEA-291382/Assertion-failed-at-VirtualDirectoryImpldoFindChildById#focus=Comments-27-6445738.0-0), who found a solution using an Index Listener. Some explanations: we are not allowed to query the index during indexing. Extra Icons plugin needs to query the index in order to locate some files (for Angular and Helm support) and, unfortunately, the IDE seems to try to update icons (which invokes Extra Icons plugin, which tries to query the index) during indexing. This is not new, but it's more frequent since IJ 2022. Starting from now, we will silent this error, and we query the index a second time, once indexing tasks completed. - -## 2022.1.10 (2022/09/05) -* add an option in Extra Icons settings in order to force icons reloading on demand. Use it if you still see errors when querying IDE filename index: wait until indexing is done, go to File, Settings, Appearance & Behavior, Extra Icons, then hit the `Reload projects icons` button. Again, feel free to upvote [IDEA-289822](https://youtrack.jetbrains.com/issue/IDEA-289822), it would help. -* add an alternative Dependabot icon. -* add an alternative Draw.io icon. -* add an alternative Helm icon. -* add an alternative HTTP icon. -* support [YANG](https://network.developer.nokia.com/sr/learn/yang/understanding-yang/) files. -* rework some Docker icons, and fix a Docker Ignore dark icon. -* improve icons reloading on config change. - -## 2022.1.9 (2022/08/27) -* support many audio/video files. Thx to contributor **Serial-ATA**. -* try to mitigate errors when querying IDE filename index (will now retry twice before failing). This is a JetBrains issue, **feel free to upvote** [**IDEA-289822**](https://youtrack.jetbrains.com/issue/IDEA-289822), it would help. -* internal: upgrade TwelveMonkeys library to 3.8.3 (used to preview PNG icons). -* rework Haxe icons (PNG icon to SVG). -* improve Dotenv and Cookie file support. -* support `go.mod` files (I am proud of this icon :smile:). -* support GitHub Actions YML files. -* disable plugin's dynamic reloading since it never worked. Plugin uses an IconPathPatcher implementation in order to override IDE icons, which prevents dynamic reloading. - -## 2022.1.8 (2022/08/06) -* support Nx `nx.json` files. -* support many audio files. Thx to contributor **Serial-ATA**. -* support Cypress json files. -* add an alternative Prettier icon. -* add an alternative 7zip icon. -* internal: fix usage of some deprecated code. -* don't crash if plugin can't query the IDE filename index, and simply display a notification. -* add an option to ignore plugin's warnings. - -## 2022.1.7 (2022/07/16) -* performance improvement. -* implement #100: add buttons to allow reordering of entries in the User Icons list. -* improve support of older IDEs (based on IJ 2021). IDE build number is detected at runtime and code is adapted when needed. -* improve Flyway and Liquibase support. -* support VSCode `*.code-workspace` files. -* support `*.tgz` files. -* support Deno json and jsonc files. -* refactoring and code cleanup. - -## 2022.1.6 (2022/06/25) -* improve accuracy and performance of Angular support. -* support various Helm files and folders. -* support Cookie text files. -* support `node_modules` folders. -* add an alternative YAML icon. -* the icons list in the configuration panel now indicates if you need to restart the IDE to see changes. -* some code cleanup. - -## 2022.1.5 (2022/06/14) -* fix #99: Angular support (when it looks for `angular.json` files) may freeze the IDE on some specific projects. -* prevent a possible crash with the new IntelliJ UI (currently in preview) for IntelliJ 2022.2+ EAP (222.2889.14+). -* rework Gradle icons. -* add an alternative Gitlab icon (the latest version from the Gitlab website). - -## 2022.1.4 (2022/06/04) -* support cache2k xml config files. -* fix #96: rework Angular support. -* add a dedicated color to Angular controller icon. -* rework some Angular icons. - -## 2022.1.3 (2022/05/07) -* internal: improve error handling. -* support `requirements.txt` files in Python projects and projects with the Python facet. -* support `lighttpd.conf` files. -* override MDX icon when the MDX plugin is installed. -* fix a Docker icon rendering issue in IJ 2022.1 in the _Services_ tool window and the _Run/Debug Configurations_ dialog. -* fix PostCSS, Sequelize and Tailwindcss support. -* config panel: UI improvements. -* config panel: some icons now have tags, and you can enable and disable multiple icons by tags. -* fix the priority of Angular icons when the Angular plugin is installed. -* add alternative icons for FAQ files, and support HELP files. -* fix #81: rework Angular support. -* support `pnpm-lock.yaml` and `vite.config.ts` files. Thx **iamKyun**. - -## 2022.1.2 (2022/04/03) -* rework Babel icon, and provide an alternative icon. -* support more Prettier config files. -* internal: upgrade TwelveMonkeys library to 3.8.2 (used to preview PNG icons). -* improve support of IDE icons override. -* support `werf.yaml` files. -* support `FAQ` files (with `.md`, `.adoc`, `.txt`, `.rst` or no extension). -* support PostCSS, Sequelize, Svelte, Tailwindcss and Nodemon files. **Thx francmarin98**. -* support Commitlint config files. -* internal: some code rework. -* internal: remove usage of some deprecated code (replaced `com.intellij.util.Base64` by JDK11 implementation). -* IDE 2021.1.3 is now the minimal supported version. This is a requirement to enable plugin's dynamic reloading. Previous versions of IDE (IntelliJ and any IntelliJ-based IDE) are affected by a [bug](https://youtrack.jetbrains.com/issue/IDEA-262732) that deletes plugin's settings on dynamic reload. This bug was fixed in IJ 2021.1.3, this is why I finally updated minimal IDE version in order to enable plugin's dynamic reloading safely. -* experimental: plugin updates don't require IDE restart. It will probably apply with next releases. You may still have to restart IDE, I can't test for now, but at least it should be totally safe. - -## 2022.1.1 (2022/03/05) -* **INFO**: Extra Icons is now a paid plugin: 5$ per year. Price decreases over time, and it's free for students, teachers and OSS developers. If you don't want to (or can't) support my work, feel free to use [previous releases](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/releases/tag/v1.69). -* add more alternative icons (popular web browsers) for HTML files. -* override YAML icon. -* override Bash file icon. -* support `.tox` folders. -* support `mkdocs.yml` files. -* support JSX files. Thx [koolskateguy89](https://github.com/koolskateguy89). -* support `.github/dependabot.yml` files. Thx [koolskateguy89](https://github.com/koolskateguy89). -* support [_gradle.lockfile_ and _buildscript-gradle.lockfile_](https://docs.gradle.org/current/userguide/dependency_locking.html) files. -* support Eslint files. Thx [francmarin98](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/85). -* add an alternative icon for SVG files. Thx [francmarin98](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/85). -* add an alternative icon for Vite files. Thx [francmarin98](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/85). - -## 1.69.0 (2022/01/22) -* you can now override IDE icons by icon name. Per example, you can override the Kotlin Class icon. To find IDE icon names, visit [IntelliJ icons list](https://jetbrains.design/intellij/resources/icons_list/), pick an icon and open the ZIP file: you can use the SVG file name. -* improved support of Kotlin Gradle script icon. -* override Java Enum, Java exception class and Java abstract exception class icons. -* override Kotlin Enum icon. -* override Docker and Docker Compose icons. -* internal: minor code cleanup. -* fix HTML support. - -## 1.68.0 (2021/12/28) -* config panel: add missing scrollbar to user icons list. -* config panel: minor UI improvements. -* fix support of Dotenv files ([#79](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/79)). -* add alternative icons for Gradle Kotlin Script files. -* add alternative icons for KeePass files. -* add alternative icons for Javascript (test) files. -* add alternative icons for Typescript (test) files. -* internal: upgrade TwelveMonkeys library to 3.8.1 (used to preview PNG icons). - -## 1.67.0 (2021/12/01) -* support HtmlFiles, TypescriptDef, JSConfig, TSConfig, Typescript (test), and Javascript (test) files. Thx [franciscomarin98](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/78). -* add alternative icons for MDX files. -* support vanilla JS files. -* rework JsMap icon. - -## 1.66.0 (2021/11/07) -* support CSS and CssMap files. Thx [franciscomarin98](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/76). -* support [jgitver](https://jgitver.github.io/#_maven_configuration) Maven configuration files. -* support `.goreleaser.yml` files. -* add alternatives icons for Kubernetes files. - -## 1.65.0 (2021/10/31) -* add an alternative icon for JPA Buddy folders. -* support JsMap files. Thx [franciscomarin98](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/75). -* support PlantUML files. - -## 1.64.0 (2021/10/24) -* support more NestJS files. -* add an alternative icon for TODO files. -* fix a typo. Thx [lromanov](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/74). - -## 1.63.0 (2021/10/11) -* rework Nginx icon (PNG icon to SVG). -* add an alternative icon for PDF files. -* add an alternative icon for Tox files. -* add an alternative icon for Webpack files. -* support JFR snapshot files. -* support MDX files. -* fix ordering of icons in config panel, to show actual ordering priorities. -* support NestJS files (you may want to disable Angular support as both frameworks share some file patterns). - -## 1.62.0 (2021/09/11) -* temporarily reintroduce IntelliJ internal code (SVGLoader) to load SVG user icons. It provides better rendering of SVG icons than TwelveMonkeys (used as a ImageIO plugin), but we should avoid usage of internal code. TwelveMonkeys is still used for PNG user icons (higher compatibility). -* performance improvements, especially in large projects. Thx [AlexPl292](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/68) for his investigations. -* icons table: you can now find the icons that are enabled or not enabled by typing "yes" or "no" in the regex filter. -* rework Storybook support: revert 1.61 patch and improve Storybook detection. - -## 1.61.0 (2021/08/29) -* improve support of Storybook: include `*.jsx` and `*.tsx` files. Warning: the TSX extension is already associated to _Typescript + React_ files. You can deactivate the unwanted association in Extra Icons settings (tip: filter the icons table with "tsx", then disable _Storybook TSX_ or _Typescript + React_). -* support [Screwdriver](https://docs.screwdriver.cd) `screwdriver.yaml` files. -* support JPA Buddy `.jpb` folders. -* rework a README icon (PNG icon to SVG). -* add an alternative icon for README files. -* you can now reuse bundled icons when creating user rules. -* internal: code cleanup. - -## 1.60.0 (2021/08/07) -* config panel: the regex filter is applied as you type. -* internal: fix usage of deprecated code. -* rework Android icon. -* support [Nox](https://nox.thea.codes/en/stable/config.html) `noxfile.py` files. - -## 1.59.0 (2021/07/30) -* support `AndroidManifest.xml` files. -* support `proguard-rules.pro` files. -* support Maven Shade Plugin `dependency-reduced-pom.xml` files. - -## 1.58.0 (2021/07/17) -* improve Dockerfile support. -* improve Backup files support. -* support DLL files. - -## 1.57.0 (2021/07/01) -* minimal IDE version is now 2020.3. -* add alternative icons for MS Office files (MS Office 2019 SVG icons). -* improve rendering quality of user SVG icons. - -## 1.56.0 (2021/06/20) -* rework Draw.io icon and add an alternative icon. -* rework Dependabot icons (PNG icon to SVG). -* support Stylus (browser extension) `*.styl` files. -* support Mergify YML files. -* support `.*\.egg-info` folders. -* internal: remove usage of code deprecated in IJ 2021.2. -* internal: minor refactoring. - -## 1.55.0 (2021/05/29) -* rework support of `*.spec.tsx` files. -* support `Caddyfile` files. - -## 1.54.0 (2021/05/15) -* improve rendering of custom PNG icons. -* support [Vite](https://vitejs.dev) `vite.config.js` files. -* support [Muse](https://docs.muse.dev) `.muse.toml` files. -* support [Hadolint](https://github.com/hadolint/hadolint) `.hadolint.y(a)ml` files. - -## 1.53.0 (2021/05/08) -* improve Storybook support. -* experimental: try to fix `ArrayIndexOutOfBoundsException: Coordinate out of bounds!` error when loading some custom PNG icons. -* internal: removed dependencies to IJ internal code used to load custom SVG icons. Replaced by TwelveMonkeys + Apache Batik libraries. This way, future IDE updates won't break this plugin. - -## 1.52.0 (2021/05/03) -* fix Dotenv files support. Thx Philipp Voronin. -* add an alternative icon for TODO files. -* add an alternative icon for CodeShip files. -* support TSX files. -* support `jitpack.yml` files. -* improve Storybook support. - -## 1.51.0 (2021/04/20) -* add an alternative icon for EditorConfig files. -* add an alternative icon for Binary files. -* add an alternative icon for Contribution files. -* support Storybook files and folders. Thx [Gaëtan Maisse](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/53). -* rework Postman support. -* support GoLang Arch Linter `.go-arch-lint.yml` files. - -## 1.50.0 (2021/04/06) -* rework `.keep`, `.gitkeep`, `.hgkeep`, `.svnkeep` icon. -* rework Python Virtual Environment folders. -* rework Pytest folders. -* rework all folder SVG icons: use opacity instead of light/dark gray colors. -* support Python `venv` Virtual Environment folders. This is a less common name than `.venv`, but some users may prefer this alternative. -* support SVGO 2 `svgo.config.js` files. -* internal: migrate to [SVGO](https://github.com/svg/svgo) 2 (a tool to optimize SVG files): all SVG icons are optimized again with new default settings and some configuration. - -## 1.49.0 (2021/03/24) -* improve Babel support. Thx [Alan Bouteiller](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/51). -* support Python `.venv` Virtual Environment folders. -* support `.pytest_cache` folders. - -## 1.48.0 (2021/03/20) - -Thx [Alan Bouteiller](https://github.com/bouteillerAlan) for his contributions: - -* support Babel config files. -* support Expo files and folders. -* support Metro config files. - -## 1.47.0 (2021/03/05) -* support Lerna configuration file: `lerna.json`. Thx [Yoav Vainrich](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/46). - -## 1.46.1 (2021/02/14) -* try to fix [#39](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/39): error badge saying project is disposed. -* fix [#40](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/40): EDT warning when creating a custom icon model. -* improve Webpack support. Thx [Yoav Vainrich](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/45). - -## 1.46.0 (2021/02/07) -* support `.env` files. -* force IDE to restart when installing or upgrading Extra Icons plugin: there may be a bug with [Dynamic Plugins](https://plugins.jetbrains.com/docs/intellij/dynamic-plugins.html). I hope it will fix [#44](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/44): some settings were lost when hot-reloading plugin (upgrade without restart). - -## 1.45.1 (2021/02/02) -* fix a NPE that may occur when multiple projects are opened and icons are being refreshed. - -## 1.45.0 (2021/01/31) -* internal: minor code cleanup. -* rework a help message about icons priority. -* handle non-square SVG images (backport from [Icon Viewer 2](https://github.com/jonathanlermitage/IconViewer) plugin). -* rework GraphQL files. -* rework WAR files. -* provide an alternative icon for IDEA MindMap plugin files. - -## 1.44.0 (2021/01/16) -* internal: minor code optimization. -* support [Semaphore](https://semaphoreci.com) `.semaphore` folders and `.semaphore/semaphore.yml` files. -* support `*.bin` files. -* support LGTM yml files. -* support [MPS](https://www.jetbrains.com/mps/) `.mps` folders. -* support [Renovate](https://docs.renovatebot.com/configuration-options/) files. - -## 1.43.0 (2020/12/16) -* support Git Submodules: `.gitmodules` files can be parsed to customize icon of Submodules folders. Nested Submodules are also supported. -* provide some alternative icons for PDF files. -* provide an alternative icon for JVM files. -* adjust the red color of Git files to make them less eye-catching. - -## 1.42.0 (2020/12/12) -* support `RELEASENOTES` files. -* fix [#43](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/43): restore compatibility with IDE running on JRE8. -* apply a workaround for a bug in IJ 2020.3 that makes IDE loading icons from bundled plugins (like Lombok) instead of ExtraIcons. -* rework Lombok files (PNG icon to SVG). - -## 1.41.0 (2020/11/30) -* provide some alternative icons for `.travis.yml` files ([official logos](https://travis-ci.com/logo)). -* support `.coveragerc` files. -* rework TypeScript files. -* rework CHANGELOG dark icon. -* provide alternative icons for Dockerfile, Docker Compose and Docker Ignore files. - -## 1.40.0 (2020/11/15) -* support [All Contributors](https://github.com/all-contributors/all-contributors) `.all-contributorsrc` files. -* provide an alternative icon for Contribution files. - -## 1.39.0 (2020/10/30) -* support [Mockk](https://mockk.io/#settings-file) `io/mockk/settings.properties` files. -* support [gradle-intellij-plugin](https://github.com/JetBrains/gradle-intellij-plugin) `idea-sandbox` folders. -* internal: improve Gradle build performance. -* internal: migrate Gradle build to Kotlin DSL. -* add an option to adjust UI Scale Factor for user icons. Useful if you run IDE with `-Dsun.java2d.uiScale.enabled=false` flag. -* support `KNOWN_ISSUES` and `OPEN_ISSUES` files. -* settings: minor UI improvements. - -## 1.38.0 (2020/09/30) -* rework `package-info.java` files. -* support `module-info.java` files. -* provide some alternative icons for `AUTHORS` files. -* support `netlify.toml` files. -* rework Cassandra files (PNG icon to SVG). - -## 1.37.1 (2020/09/13) -* bugfix [#39](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/39): Exception when plugin tries to load icons in a project that is being disposed or is already disposed. - -## 1.37.0 (2020/09/12) -* bugfix: NPE while refreshing project panel icons. -* support Restyled `.restyled.yaml` files. -* provide an alternative icon for Robot Framework files (based on GitLab Robot icon). -* support Weblate `.weblate` files. - -## 1.36.0 (2020/08/30) -* rework Markdown files (PNG icon to SVG) and provide 2 alternative icons. To use an alternative icon, simply deactivate the other(s). -* provide some alternative icons for Video files. -* provide an alternative icon for EditorConfig files. -* provide an alternative icon for Swagger files. -* provide an alternative icon for Asciidoc files. -* provide an alternative icon for Certificate files. -* provide an alternative icon for License files. -* provide an alternative icon for Readme files (based on GitHub Readme icon). -* add new configuration condition: facets. You can now choose to activate a custom icon if a specific facet is activated in project (as in `Project Structure > Project Settings > Facets`), like "Spring", "JPA", etc. This condition must be associated with one other condition like "Names", "Regex", etc. -* removed usage of `sun.awt.image.ToolkitImage`. It will fix some Gradle build errors with JDK9+, but some IDE like PyCharm *may* (I did not reproduce) not display a few icons. If it doesn't work for you, please open an issue (and attach IDE logs) and I will probably revert this change. -* support [Tinylog](https://tinylog.org) `tinylog.properties` files. - -## 1.35.0 (2020/08/22) -* rework Nginx files. -* rework Better Code Hub files. - -## 1.34.0 (2020/08/08) -* rework Git files (PNG icon to SVG). -* rework Gradle files (PNG icon to SVG). -* rework Archive files. -* rework Maven wrapper files (PNG icon to SVG). -* rework Gradle wrapper files (PNG icon to SVG). -* rework Gitlab files (PNG icon to SVG). -* rework Apache htaccess files. -* rework HTML5 files. -* rework PID files. -* improve FlyWay and Liquibase support: detect HSQLDB, H2 and IBM DB2 databases. -* rework Angular files. -* rework Appveyor files. -* rework Asciidoc files. -* rework GitHub files. -* rework SASS files (PNG icon to SVG). -* rework Terraform files (PNG icon to SVG). -* rework Typescript files. -* rework Liquibase files. -* rework Swagger files. -* support PDD (Puzzle Driven Development) `.pdd` and `.0pdd.yml` files. -* rework and ungroup `*.ini`, `*.cfg`, `*.conf`, `*.config` Configuration files support: users may prefer icons provided by the [Ini plugin](https://plugins.jetbrains.com/plugin/6981-ini/). -* rework Postman files (improve dark icon). -* rework Codecov files (PNG icon to SVG). -* rework `.mailmap` files (PNG icon to SVG). -* rework LESS files (PNG icon to SVG). -* support Velocity `*.vtl` files. -* rework CHANGELOG files (PNG icon to SVG). -* support Jinja `*.jinja` and `*.jinja2` files. -* Plugin icons table filter now filters on label column only. -* rework Jest files. -* rework WAR files. -* rework TESTING files (PNG icon to SVG). -* rework `.form` files (PNG icon to SVG). -* rework NSIS files (PNG icon to SVG). -* support `swagger-config.yaml` files. - -Some icons come from the [Hiberbee Theme family](https://github.com/hiberbee/jetbrains-ide-theme) project. - -## 1.33.0 (2020/07/31) -* support Robot Framework `.robot` files. -* try to fix [issue #32](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/32): Markdown file icons are overridden by Markdown Navigator plugin. -* add a filter to Plugin icons table. -* rework `.htaccess` files (PNG icon to SVG). -* rework `kubernetes*.yml` files (PNG icon to SVG). -* rework `*.toml` files (PNG icon to SVG). -* rework Vagrant files (PNG icon to SVG). -* rework Puppet files (PNG icon to SVG). -* rework Privacy files. -* rework Security files. -* rework Redis files (PNG icon to SVG). -* support `(.)version(s).xml` files. - -## 1.32.0 (2020/07/11) -* improve VERSION files detection. -* rework ONAP files: files generated by CBA enrichment now use gold color. - -## 1.31.0 (2020/07/05) -* improve CHANGELOG and VERSION files detection. -* support `.gitreview` files. -* support some [ONAP Controller Blueprint Archive (CBA)](https://wiki.onap.org/display/DW/Modeling+Concepts) files. Full ONAP support will be implemented in a separate plugin. - -## 1.30.0 (2020/06/18) -* rework Bash terminal icon. -* rework Windows terminal icon. -* support `hibernate.properties` files. -* support [Rultor](http://www.rultor.com) `.rultor.yml` files. - -## 1.29.0 (2020/06/10) -* support `.teamcity` folder. -* support `.exe` files. -* support NuGet `.nuget` folder and `.nuget/packages.config` file. -* support [Tox](https://github.com/tox-dev/tox) `tox.ini` files. -* rework `LICENSE` icon. -* rework `NOTICE` icon. -* rework certificate icon. -* rework Gradle folder icon. -* restore missing Deptective icon. Probably dropped by mistake. -* improve Config files support. -* improve Microsoft Azure support. - -## 1.28.0 (2020/05/23) -* support Composer `composer.json` and `composer.lock` files. -* *IDE 2020.1+ (201.5239+ builds):* implement [#28](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/28) show customized icons in Repositories tool window. - -## 1.27.0 (2020/05/15) -* support `svgo.yml` files. -* optimized SVG logos with [SVGO](https://github.com/svg/svgo). -* fix [issue 35](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/35): clarify usage of regex. -* support some [RST](https://en.wikipedia.org/wiki/ReStructuredText) files: `README.rst`, `CHANGELOG.rst`, etc. -* support `.run` folder used by IntelliJ IDEA 2020+ to store Run/Debug Configurations. -* support [Draw.io](https://app.diagrams.net) `.drawio` and `.dio` files. - -## 1.26.0 (2020/05/01) -* settings: refresh project views on icons list update. -* support Prettier `.prettierignore` files. -* support Scalingo `scalingo.json` files. -* support Snapcraft `snapcraft.yaml` files. -* support `SECURITY` files (with `.md`, `.adoc`, `.txt` or no extension). -* support Bitnami Stacksmith `stackerfile.yml` files. -* support [Karate](https://github.com/intuit/karate) `karate-config.js` files. -* support [Crowdin](https://crowdin.com) `.crowdin.yml` files. -* rework 16x16 icon for `package-info.java` files. -* improve FlyWay and Liquibase support: detect some databases (MariaDB, MySQL, Oracle, PostgreSQL, Sqlite, MS SQL Server) in FlyWay and Liquibase locations path, e.g., customize `mysql` folder icon in `db/migration/mysql/`. - -## 1.25.0 (2020/04/18) -* support Epub `.epub`, `.mobi`, `.azw`, `.azw3` files. -* support [Rollup](https://github.com/rollup/rollup) `rollup.config.js` files. -* support Prettier `.prettierrc` files. - -## 1.24.0 (2020/04/10) -* support Webpack `webpack.config.js` files. -* support Gitpod `.gitpod.yml` files. - -## 1.23.0 (2020/03/28) -* replace Travis PNG icon by SVG. -* new plugin icon. - -## 1.22.0 (2020/03/19) -* internal: fix usage of a `UIUtil.createImage` method deprecated in IDE 193. -* internal: log (at INFO level) some ignored errors while loading icon. -* rework Browserslist icon. - -## 1.21.1 (2020/03/13) -* fix background color of regex field with non-dark theme. - -## 1.21.0 (2020/02/27) -* fix model type selection when edit dialog is opened. Thx [Florian Böhm](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/25). -* support Liquibase files. Thx [Mateusz Bajorek](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/24). - -## 1.20.2 (2020/02/27) -* restore missing Angular icon. - -## 1.20.1 (2020/02/26) -* fix [issue 26](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/26): can't open the Extra Icons settings if Angular plugin is disabled (or not installed, so IJ Community was affected too). Thx contributors! - -## 1.20.0 (2020/02/21) -* user can now add custom icons, path ignore regex now works on relative path to project base dir. Thx [Florian Böhm](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/21). - -## 1.19.0 (2020/02/13) -* add an option to ignore file/folder pattern. -* rework MySQL Workbench dark icon. -* support `.bak` files. - -## 1.18.0 (2020/02/08) - -* make Angular regexes more strict. Thx [Bert Verhelst](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/20). - -Thx [Florian Böhm](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/19) for his contributions: - -* settings can now be overridden on project level. -* improve Angular files detection. -* improve Gradle Wrapper files detection. -* support Browserslist `browserslist`, `.browserslistrc` files. -* replace Typescript and SASS PNG icons by SVG. -* internal improvements. - -## 1.17.0 (2020/01/31) -* make settings changes apply without having to restart. Thx [Florian Böhm](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/18). -* fix Angular icons size. Thx [Florian Böhm](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/17). - -## 1.16.0 (2020/01/01) -* support Bitbucket `bitbucket-pipelines.yml` files. -* support Grafana `grafana.ini` files. -* support Prometheus `prometheus.yml` files. -* rework SVG file icon. - -## 1.15.0 (2019/12/07) -* improve Logstash detection. -* support `.jceks` files. -* support MySQL Workbench `.mwb` files. - -## 1.14.0 (2019/11/23) -* rework `.idea` folder icon. - -## 1.13.0 (2019/11/07) -* support Appveyor `.appveyor.yml` files. - -## 1.12.0 (2019/10/23) -* support `.pid` files. -* support `.jar.original` files. -* support `.npmrc` files. -* support `.npmignore` files. -* support `jest.config.js` files. -* support `karma.conf.js` files. -* rework many icons. - -## 1.11.0 (2019/10/10) -* improve AngularJS files support. Thx [diakovidis](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/pull/16). - -## 1.10.0 (2019/10/03) -* support Postman `*postman_collection.json`, `*postman_environment.json` files. -* support `.swagger-codegen-ignore` files. -* support Diffusion Archive / XL Deploy Archive `*.dar` files. - -## 1.9.0 (2019/09/22) -* rework `azure-pipelines.yml` file icon (use official SVG icon). -* support `.p12` files. - -## 1.8.0 (2019/09/09) -* support `.keep`, `.gitkeep`, `.hgkeep`, `.svnkeep` files used by various VCS. -* improve Logback detection. -* support `.pubkey` files. -* support Postman `*.postman.json` files. -* restore support of backup `*.versionBackup`, `*.back`, `*.backup`, `*.old`, `*.prev`, `*.revert` files. Probably dropped by mistake. -* rework `.mvn` folder icon. - -## 1.7.0 (2019/07/20) -* support [Glowroot](https://glowroot.org) `glowroot/admin.json`, `glowroot/config.json` files. - -## 1.6.0 (2019/06/15) -* support [ImgBot](https://imgbot.net) `.imgbotconfig` files. -* support `*.xz` archive files. -* support `jvm.config` files. -* support Avro `*.avsc` files. -* use icon from [IntelliJ Rust](https://github.com/intellij-rust/intellij-rust) for `cargo.toml` files (a future update will introduce a white-list to ignore some file patterns). -* rework Docker-compose files: Docker files remain blue, and Docker-compose files become pink. - -## 1.5.1 (2019/05/25) -* revert changes to folders detection (1.5.0) to fix [#13](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/13): StringIndexOutOfBoundsException and NullPointerException errors. - -## 1.5.0 (2019/05/24) -* rework Gradle files. -* rework folders detection. -* support `/docker` folders. -* restore missing `test-ts.svg` icon in [ide173](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/tree/ide173) branch. - -## 1.4.0 (2019/05/18) -* support [Better Code Hub](https://bettercodehub.com) `.bettercodehub.yml` files. I'd like to thank the Better Code Hub team for sending me SVG files! -* support FlyWay SQL files `.*/db/migration/.*\.sql`. -* support APK `.apk`, `.xapk` files. -* detect more Docker files. -* introduce regex support. -* switched from DevKit to Gradle workflow: you can now build plugin without IDE, and integration with online CI like Travis will be easy. - -## 1.3.0 (2019/04/24) -* support Microsoft Azure `azure-pipelines.yml` files. -* support Dependabot `.dependabot/config.yml` files and `.dependabot` folders. -* fix: Windows `mvnw.bat`, `mvnw.cmd` and Linux `mvnw` files were registered with the same id. That means disabling Windows icons disabled Linux icon too. - -## 1.2.0 (2019/04/12) -* improve file detection capabilities: can work with folders. -* improve CircleCI detection: add `.circleci/config.yml` files. -* support `Gruntfile.js` files. -* support LESS `*.less` files. -* support Visual Studio Code `.vscode/settings.json` files. -* support `intellijcodestyle.xml` files. -* support `.circleci`, `.github`, `.gitlab`, `gradle`, `.idea`, `.mvn`, `.vscode` folders. -* rework SASS `*.sass`, `*.scss` files. Also, they don't need *Sass support* plugin anymore. -* rework `.dockerignore` files. - -## 1.1.0 (2019/04/05) -* rework setting table's vertical scrolling. -* fix detection of modifications in setting table. -* add plugin's icon (effective with 2019.1 IDE). - -## 1.0.0 (2019/04/01) -* add a graphical config panel to select extra icons to (de)activate. See `Settings > Appearance & Behavior > Extra Icons`. -* changed version numbers: `x.y.z.173` plugins are compatible with 173.0+ IDE builds (2017.3 and newer), `x.y.z.183` plugins are compatible with 183.0+ IDE builds (2018.3 and newer) and provide some additional icons. - -## 0.27 and 0.28 (2019/03/29) -* support `*.http` files (requests to be played by IntelliJ HTTP client). -* plugin's configuration: you can now select extra icons to deactivate via a config file. A future release will bring a graphical config panel (but contributions are welcome!). - -## 0.25 and 0.26 (2019/02/17) -* fixed ArchUnit files detection. -* support GraphQL `*.graphqls`, `graphql.schema.json`, `graphql.config.json` files. -* support `jvm.properties` files. -* support JUnit `junit-platform.properties` files. -* support SVG `*.svg` files. -* support `*.3g2`, `*.3gp`, `*.avi`, `*.divx`, `*.f4a`, `*.f4b`, `*.f4p`, `*.f4v`, `*.flv`, `*.m4p`, `*.m4v`, `*.mkv`, `*.mp4`, `*.mpg`, `*.mpeg`, `*.mov`, `*.ogm`, `*.ogv`, `*.vob`, `*.webm`, `*.wmv`, `*.xvid` video files. - -## 0.23 and 0.24 (2019/01/19) -* support [ArchUnit](https://github.com/TNG/ArchUnit) `archunit.properties` files. -* support [Deptective](https://github.com/moditect/deptective) `deptective.json` files. -* improved Jenkins file detection accuracy. - -## 0.21 and 0.22 (2019/01/10) -* rework Haxe `*.hxml` files (new icons). -* support `package-info.java` files. -* support NSIS `*.nsi` files. -* improved file detection accuracy. - -## 0.19 and 0.20 (2018/12/21) -* starting from 0.19, there are two builds: - * odd minor revision number (0.19, 0.21, 1.1, 1.3...): compatible with 173.0 IDE builds (aka 2017.3). This build doesn't bundle features that need 2018.3 IDE builds: AngularJS, SASS, Javascript. They're excluded because Extra Icons plugin reads project's type in order to activate some file recognition (AngularJS, SASS, Javascrip): it is based on 2018.3 IDE features. Other files detection is simply based on files pattern, that's why it works with older IDE builds, and I will maintain a branch (`ide173`) to keep support. - * even minor revision number (0.20, 0.22, 1.0, 1.2...): compatible with latest IDE builds (183.0, aka 2018.3). - -This way, you simply have to download the latest version offered by the plugin manager: on older IDE, you'll get the latest odd minor revision number. On recent IDE, you get the latest even minor revision number that sheeps same features as odd version, plus features that comes with recent IDE builds. - -## 0.18 (2018/12/10) -* plugin is no more compatible with 173.0 IDE builds: minimum version is now 183.0 (2018.3). - -## 0.17 (2018/12/08) -* support `gradle.properties`, `LISEZMOI.*` files. -* support AngularJS `*.module.ts`, `*.component.ts`, `*.service.ts`, `*.pipe.ts`, `*.directive.ts`, `*.guard.ts` files (optional, needs *AngularJS* plugin from IntelliJ Ultimate, WebStorm, PhpStorm). Enabled in AngularJS projects only. Thx to Edoardo Luppi. -* support SASS `*.sass`, `*.scss` files (optional, needs *Sass support* plugin) Thx to Edoardo Luppi. -* support [Haxe](https://haxe.org) `*.hx`, `*.hxml` files. -* support [Cerebro](https://github.com/lmenezes/cerebro) `cerebro*.conf` files. - -## 0.16 (2018/11/15) -* support Gatling `gatling*.conf` files. -* support Lombok `lombok.config` files. -* support `kubernetes*.yml` files. - -## 0.15 (2018/11/03) -* improved file detection accuracy. -* support Cassandra `cassandra*.yml`, Redis `redis*.conf` files. - -## 0.14 (2018/10/28) -* support [Codacy](https://support.codacy.com/hc/en-us/articles/115002130625-Codacy-Configuration-File) `.codacy.yaml`, `.codacy.yml` files. -* support Elasticsearch `elastic*.yml`, Logstash `logstash*.yml`, Kibana `kibana*.yml` files. - -## 0.13 (2018/10/21) -* detect more Docker and Docker Compose files. -* detect more Jenkins files. -* support [Zappr](https://zappr.opensource.zalan.do) `.zappr.yaml` files. -* support [Codecov](https://docs.codecov.io/docs/codecov-yaml) `codecov.yml`, `.codecov.yml` files. -* support `.dockerignore` files. - -## 0.12 (2018/10/10) -* rework Gitlab files (reduced margin by 1px). -* rework Maven and Gradle wrapper files (new icons). -* rework `package.json`, `package-lock.json` files (new icons). -* support [Terraform](https://www.terraform.io) `*.hcl`, `*.tf`, `*.tf.json` files. -* support [Cirrus](https://cirrus-ci.org) `.cirrus.yml` files. -* support `*.rpm`, `*.deb`, `*.zip`, `*.7z`, `*.tar`, `*.gz`, `*.bz2` files. -* support `bower.json`, `.bowerrc`, `.jsbeautifyrc`, `.jshintrc` files. - -## 0.11 (2018/09/29) -* support `*.jks`, `BUILD`, `BUILDING`, `PRIVACY`, `ROADMAP`, `CONTRIBUTE`, `CONTRIBUTION`, `TODO`, `TEST`, `TESTING`, `LICENSE_INFO`, `ADDITIONAL_LICENSE_INFO` files. - -## 0.10 (2018/09/22) -* rework `*.iml`, `*.war` files. -* support `nginx.conf`, `.htaccess`, `puppet.conf`, `my.ini`, `*.ini`, `*.cfg`, `*.conf`, `*.toml`, `*.asciidoc`, `*.versionsbackup` files. - -## 0.9 (2018/09/15) -* rework `LICENSE`, `berksfile.lock` files. -* support `log4j`, `log4j-test`, `logback`, `logback-test` files with `.xml`, `.yml`, `yaml`, `.properties`, `.json` extensions. -* support `*.csv`, `*.md`, `*.adoc`, `*.cert`, `*.war`, `*.form` extensions. -* support backup `*.versionBackup`, `*.back`, `*.backup`, `*.old`, `*.prev`, `*.revert` files. - -## 0.8.1 (2018/09/10) -* rework Microsoft Word, Excel, PowerPoint, OneNote, Visio, Project files (added dark theme). -* rework `LICENSE`, `appveyor.yml`, `*.kdbx` files. - -## 0.8 (2018/09/09) -* some code refactoring. -* rework `*.iml`, `.travis.yml`, `jenkins`, `jenkinsfile`, `NOTICE` files. -* support `.gitmodules`, `*.pdf`, `.mailmap`, `*.kdbx` (KeePass), `version` (with `.md`, `.adoc`, `.txt` or no extension) files. -* support `*.pem`, `*.crt`, `*.ca-bundle`, `*.cer`, `*.p7b`, `*.p7s`, `*.pfx` certificate files. -* support `*.doc`, `*.docx`, `*.xls`, `*.xlsx`, `*.ppt`, `*.pptx`, `*.one`, `*.onetoc2`, `*.vsd`, `*.vsdx`, `*.vss`, `*.vssx`, `*.vst`, `*.vstx`, `*.mpd`, `*.mpp`, `*.mpt` Microsoft Word, Excel, PowerPoint, OneNote, Visio, Project files. -* support `*.odt`, `*.ods`, `*.odp`, `*.odg` , `*.odf` LibreOffice Writer, Calc, Impress, Draw, Math files. -* increase plugin's icons priority. This way, IDE will prefer plugin's icons instead of default *unknown file types* icon for some file types. - -## 0.7 (2018/09/06) -* support `vagrantfile`, `*.iml`, `.gitattributes`, `.gitignore`, `.editorconfig`, `berksfile`, `berksfile.lock`, `dockerfile`, `docker-compose.yml` files. - -## 0.6 (2018/09/02) -* rework `.gitlab-ci.yml`, `appveyor.yml`, `NOTICE` files. -* support `*.jar` files. - -## 0.5 (2018/09/01) -* some code refactoring. -* support `bamboo.yml`, `circle.yml`, `codeship-steps.yml`, `codeship-steps.json`, `codefresh.yml`, `.gocd.yaml`, `package.json`, `package-lock.json`, files. -* support `jenkins`, `NOTICE`, `CONTACT` files (with `.md`, `.adoc`, `.txt` or no extension). - -## 0.4 (2018/08/26) -* enabled compatibility with all products (WebStorm, etc.). -* rework Maven wrapper `mvnw`, Gradle wrapper `gradlew` files. -* support `README`, `CHANGELOG`, `CHANGES`, `LICENSE`, `COPYING`, `CONTRIBUTING`, `AUTHORS` files (with `.md`, `.adoc`, `.txt` or no extension). - -## 0.3 (2018/08/25) -* support Windows script `*.cmd`, `*.bat`, Powershell `*.ps1`, Bash `*.sh`, Maven wrapper `mvnw`, Gradle wrapper `gradlew` files. - -## 0.2 (2018/08/25) -* support Jenkins `jenkinsfile`, Gitlab `.gitlab-ci.yml` files. - -## 0.1 (2018/08/23) -* support Travis `.travis.yml`, Appveyor `appveyor.yml` files. diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md deleted file mode 100644 index d1fc0b7e..00000000 --- a/CONTRIBUTION.md +++ /dev/null @@ -1,36 +0,0 @@ -# How to contribute - -## Issues - -Please describe the issue: - -* the plugin version -* the OS and IDE version. Open your IDE and go to Help, About, then Copy -* the stacktrace, if any in the event log (in the bottom-right corner of your IDE) -* any useful information - -## Pull requests - -* ensure unit tests are green by running `./gradlew test verifyPlugin` -* please reformat new and modified code only: do not reformat the whole project or entire existing file (in other words, - try to limit the amount of changes in order to speed up code review) -* please write comments in english only -* (optional) try this [sample project](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/tree/sample-project). This is a project with many empty files. It will help you to verify icon overrides -* don't hesitate to add your name or nickname (and LinkedIn profile, etc.) to the contributors list ;-) -* please email me (jonathan.lermitage@gmail) or send a private message on Twitter (JLermitage), **I have some free licenses for you** - -Tip: to support new icons, you will want to -edit [this file](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/src/main/java/lermitage/intellij/extra/icons/ExtraIconProvider.java#L26) -. All icons and selection rules are registered here. Icons are stored in `src/main/resources/extra-icons/`. -Try the plugin in a standalone IDE with `./gradlew runIde`. - -## Feature requests - -If you are not comfortable with Java development, you can ask me to support new icons. Please: - -* provide SVG or 32x32 PNG icon(s) -* explain the conditions to apply the icon(s), like filename patterns - -You can open an issue, or email me (jonathan.lermitage@gmail.com). - -:warning: Feature requests with no icon or no explanations will be ignored. diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md deleted file mode 100644 index 4d8d4e64..00000000 --- a/KNOWN_ISSUES.md +++ /dev/null @@ -1 +0,0 @@ -## Known issues diff --git a/Makefile b/Makefile deleted file mode 100644 index b9df9900..00000000 --- a/Makefile +++ /dev/null @@ -1,123 +0,0 @@ -# Useful commands. Run 'make help' to show available tasks. -# ------ -# Linux: no requirements needed (except Gradle and a JDK), it should work as it. -# Windows: tested with GNU Make 4.4 installed with Chocolatey, and Unix tools (installed with Git) available from path. WSL may also work. -# macOS: I don't have an Apple computer so I can't test, but it should work as it. - -ifeq ($(OS),Windows_NT) - gradlew_cmd := gradlew -else - gradlew_cmd := ./gradlew -endif - -ij_min_version := 2023.1 # IMPORTANT must reflect settings.xml -> idea-version.since-build - - -default: help - - -.PHONY: intro -intro: - @echo -e '\n\e[1;34m------ [ij-extra-icons] $(shell date) ------\e[0m\n' - - -.PHONY: log -log: intro ## run "git log" with pretty colors - git log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%C(cyan)\\ [%cn]" --decorate --date=relative - - -.PHONY: wrapper -wrapper: intro ## set or upgrade gradle wrapper to version "v" (example: make wrapper v=7.4.2) - gradle wrapper --gradle-version=${v} --no-daemon - - -.PHONY: fixgit -fixgit: intro ## fix executable permission flag on git index for required files - git update-index --chmod=+x gradlew - @echo -e '\e[1m"gradlew" should now have executable flag on git\e[0m' - - -.PHONY: run -run: intro ## run plugin in latest stable IntelliJ Community - ${gradlew_cmd} buildPlugin runIde -PpluginDownloadIdeaSources=false -PpluginLicenseType=free - - -.PHONY: runCN -runCN: intro ## run plugin in latest stable IntelliJ Community with Extra Icons' Chinese UI - ${gradlew_cmd} buildPlugin runIde -PpluginDownloadIdeaSources=false -PpluginLicenseType=free -Dextra-icons.enable.chinese.ui=true - - -.PHONY: runeap -runeap: intro ## run plugin in latest IntelliJ Community EAP Snapshot - ${gradlew_cmd} buildPlugin runIde -PpluginDownloadIdeaSources=false -PpluginLicenseType=free -PpluginIdeaVersion=IC-LATEST-EAP-SNAPSHOT - - -.PHONY: runold -runold: intro ## run plugin in oldest supported IntelliJ Community version - ${gradlew_cmd} buildPlugin runIde -PpluginDownloadIdeaSources=false -PpluginLicenseType=free -PpluginIdeaVersion=IC-${ij_min_version} - - -.PHONY: build -build: intro ## build and package a plugin which asks for a paid subscription license to build/distribution/ (see generated ZIP file) - ${gradlew_cmd} clean buildPlugin test modernizer biz-lermitage-oga-gradle-check verifyPlugin showGeneratedPlugin -PpluginLicenseType=subscription - - -.PHONY: buildfree -buildfree: intro ## build and package a plugin which doesn't ask for a paid license to build/distribution/ (see generated ZIP file) - ${gradlew_cmd} clean buildPlugin test modernizer biz-lermitage-oga-gradle-check verifyPlugin showGeneratedPlugin -PpluginLicenseType=free - - -.PHONY: buildlifetime -buildlifetime: intro ## build and package a plugin which asks for a paid lifetime license to build/distribution/ (see generated ZIP file) - ${gradlew_cmd} clean buildPlugin test modernizer biz-lermitage-oga-gradle-check verifyPlugin showGeneratedPlugin -PpluginLicenseType=lifetime - - -.PHONY: lint -lint: intro ## run linter(s), for now Modernizer - ${gradlew_cmd} modernizer - - -.PHONY: test -test: intro ## run unit tests - ${gradlew_cmd} cleanTest test verifyPlugin - - -.PHONY: cv -cv: intro ## check dependencies and Gradle updates - ${gradlew_cmd} dependencyUpdates - - -.PHONY: cvnd -cvnd: intro ## check dependencies and Gradle updates (use a single-use Gradle daemon process by using --no-daemon) - ${gradlew_cmd} dependencyUpdates --no-daemon - - -.PHONY: oga -oga: intro ## check for deprecated groupId and artifactId coordinates - ${gradlew_cmd} biz-lermitage-oga-gradle-check - - -.PHONY: svgo -svgo: intro ## optimize SVG icons with SVGO (SVGO must be present, type "npm install -g svgo" if needed) - svgo --folder=misc/ --recursive - svgo --folder=src/main/resources/ --recursive - - -.PHONY: lic -lic: intro ## generate license report to build/reports/licenses/ (licenses used by dependencies) - ${gradlew_cmd} licenseReport - - -.PHONY: dt -dt: intro ## show dependencies graph - ${gradlew_cmd} dependencies - - -.PHONY: publish -publish: intro ## publish package to the JetBrains marketplace - ${gradlew_cmd} clean buildPlugin test verifyPlugin publishPlugin - - -.PHONY: help -help: intro - @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":[^:]*?## "}; {printf "\033[1;38;5;69m%-15s\033[0;38;5;38m %s\033[0m\n", $$1, $$2}' diff --git a/README.md b/README.md index 7f27a9de..0af6b4d8 100644 --- a/README.md +++ b/README.md @@ -14,57 +14,14 @@ number of contributors

+:warn: Some people decided to distribute my plugin with license requirement removed, without having the decency to tell me about it. No acknowledgement, simply a total lack of respect, while I allowed users to support me financially only if they wished to. I am working hard on this plugin since 2018, allowing users to explore the code and optionally support my work. So I had to make the difficult decision to stop distributing the source code. *Well played...*. :warn: + Intellij IDEA (Community and Ultimate) plugin that adds icons for files like Travis YML, Appveyor YML, Git sub-modules, etc. You can also register your own icons in order to override file icons, but also all [IDE icons](https://jetbrains.design/intellij/resources/icons_list/) (including toolbars, menus, etc.). It works with all JetBrains products like IntelliJ (ultimate and community), PyCharm, WebStorm, DataGrip, etc. To get started with this plugin, please see this [guide](docs/GET_STARTED.md). -1. [Download](#download) -2. [Build](#build) -3. [Contribution](#how-to-contribute) -4. [Known issues](#known-issues) -5. [License](#license) -6. [Credits](#contributors) -7. [Screenshots](#screenshots) - ## Download Download plugin from the [JetBrains marketplace](https://plugins.jetbrains.com/plugin/11058-extra-icons) or via your IDE: File, Settings..., Plugins, Marketplace. -## Build - -Install a JDK17+. You should be able to start Gradle Wrapper (`gradlew`). -Take a look at the `Makefile` script: it contains useful commands to build, run and test the plugin, check for dependencies updates and some maintenance tasks. Show available commands by running `make help`. -You may also want to see the [development FAQ](./docs/DEV_FAQ.md) if you faced an issue. - -### Optimizations - -Optionally, you may want to install SVGO in order to optimize SVG icons. Install SVGO with `npm install -g svgo`, then optimize SVG files by running `make svgo`. - -## How to contribute - -Please see [CONTRIBUTION.md](CONTRIBUTION.md). - -Nota: you can test icons with this [sample project](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/tree/sample-project). This is a project with many empty files. It will help you to verify icon overrides. - -## Known issues - -Please see [KNOWN_ISSUES.md](KNOWN_ISSUES.md) and [GitHub open issues](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues). - ## License - -MIT License. In other words, you can do what you want: this project is entirely OpenSource, Free and Gratis. -You only have to pay a subscription if you want to support my work by using the version that is published to the JetBrains marketplace. If you don't want to (or can't) support my work, you can still use old releases (up to 1.69), or package and install your own release for free. If you have any question, please see the [license FAQ](docs/LICENSE_FAQ.md). - -## Contributors - -* Please see the [contributors list](https://github.com/jonathanlermitage/intellij-extra-icons-plugin/graphs/contributors) - -## Screenshots - -![Dark Screenshot](docs/screenshots/intellijidea-ce_dark.png) - -![Screenshot](docs/screenshots/intellijidea-ce.png) - -![Config Panel Screenshot](docs/screenshots/config-panel.png) - -![User Config Panel Screenshot](docs/screenshots/config-panel-user-tab.png) diff --git a/build.gradle.kts b/build.gradle.kts deleted file mode 100644 index b7096068..00000000 --- a/build.gradle.kts +++ /dev/null @@ -1,537 +0,0 @@ -import com.adarshr.gradle.testlogger.theme.ThemeType -import com.github.benmanes.gradle.versions.reporter.PlainTextReporter -import com.github.benmanes.gradle.versions.reporter.result.Result -import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask -import com.palantir.gradle.gitversion.VersionDetails -import groovy.lang.Closure -import org.apache.commons.io.FileUtils -import org.jetbrains.changelog.Changelog -import org.w3c.dom.Document -import java.io.BufferedReader -import java.io.ByteArrayInputStream -import java.io.InputStreamReader -import java.net.HttpURLConnection -import java.net.URL -import java.nio.file.Files -import javax.xml.parsers.DocumentBuilderFactory -import javax.xml.xpath.XPathConstants -import javax.xml.xpath.XPathFactory - -plugins { - id("java") - id("org.jetbrains.intellij") version "1.16.1" // https://github.com/JetBrains/gradle-intellij-plugin - id("org.jetbrains.changelog") version "2.2.0" // https://github.com/JetBrains/gradle-changelog-plugin - id("com.github.ben-manes.versions") version "0.50.0" // https://github.com/ben-manes/gradle-versions-plugin - id("com.adarshr.test-logger") version "4.0.0" // https://github.com/radarsh/gradle-test-logger-plugin - id("com.palantir.git-version") version "3.0.0" // https://github.com/palantir/gradle-git-version - id("com.github.andygoossens.modernizer") version "1.9.0" // https://github.com/andygoossens/gradle-modernizer-plugin - id("biz.lermitage.oga") version "1.1.1" // https://github.com/jonathanlermitage/oga-gradle-plugin -} - -val pluginXmlFile = projectDir.resolve("src/main/resources/META-INF/plugin.xml") -val pluginXmlFileBackup = projectDir.resolve("plugin.backup.xml") - -val pluginLogoFile = projectDir.resolve("src/main/resources/META-INF/pluginIcon.svg") -val pluginLogoFileBackup = projectDir.resolve("pluginIcon.backup.svg") -val pluginLogoLifetimeFile = projectDir.resolve("misc/pluginIcon.lifetime.svg") -val pluginLogoFreeFile = projectDir.resolve("misc/pluginIcon.free.svg") - -// Import variables from gradle.properties file -val pluginDownloadIdeaSources: String by project -val pluginVersion: String by project -val pluginJavaVersion: String by project -val testLoggerStyle: String by project -val pluginLicenseType: String by project -val pluginLanguage: String by project -val pluginCountry: String by project -val pluginEnableDebugLogs: String by project -val pluginEnforceIdeSlowOperationsAssertion: String by project -val pluginClearSandboxedIDESystemLogsBeforeRun: String by project -val pluginIdeaVersion = detectBestIdeVersion() -val pluginLifetimeLicenseDescriptionHeader: String by project -val pluginLifetimeLicenseId: String by project -val pluginLifetimeLicenseCode: String by project -val pluginLifetimeLicenseName: String by project -val pluginFreeId: String by project -val pluginFreeName: String by project - -version = if (pluginVersion == "auto") { - val versionDetails: Closure by extra - val lastTag = versionDetails().lastTag - if (lastTag.startsWith("v", ignoreCase = true)) { - lastTag.substring(1) - } else { - lastTag - } -} else { - pluginVersion -} - -logger.quiet("Will use IDEA $pluginIdeaVersion and Java $pluginJavaVersion. Plugin version set to $version") - -group = "lermitage.intellij.extra.icons" - -repositories { - mavenCentral() -} - -val junitVersion = "5.10.1" -val junitPlatformLauncher = "1.10.1" -val archunitVersion = "1.2.1" - -dependencies { - // needed because may not be bundled in Gateway's client - implementation("org.apache.commons:commons-collections4:4.4") - implementation("commons-codec:commons-codec:1.16.0") - implementation("commons-io:commons-io:2.15.1") - - testImplementation("org.junit.jupiter:junit-jupiter-api:$junitVersion") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitVersion") - testRuntimeOnly("org.junit.platform:junit-platform-launcher:$junitPlatformLauncher") - testImplementation("com.tngtech.archunit:archunit:$archunitVersion") - testImplementation("com.github.weisj:jsvg:1.3.0") -} - -intellij { - when (pluginLicenseType) { - "free" -> { - pluginName.set("Extra Icons Free") - } - - "lifetime" -> { - pluginName.set("Extra Icons Lifetime") - } - - else -> { - pluginName.set("Extra Icons") - } - } - downloadSources.set(pluginDownloadIdeaSources.toBoolean() && !System.getenv().containsKey("CI")) - instrumentCode.set(true) - sandboxDir.set("${rootProject.projectDir}/.idea-sandbox/${shortenIdeVersion(pluginIdeaVersion)}") - updateSinceUntilBuild.set(false) - version.set(pluginIdeaVersion) -} - -changelog { - headerParserRegex.set("(.*)".toRegex()) - itemPrefix.set("*") -} - -modernizer { - includeTestClasses = true - // Find exclusion names at https://github.com/gaul/modernizer-maven-plugin/blob/master/modernizer-maven-plugin/src/main/resources/modernizer.xml - exclusions = setOf("java/util/Optional.get:()Ljava/lang/Object;") -} - -testlogger { - try { - theme = ThemeType.valueOf(testLoggerStyle) - } catch (e: Exception) { - theme = ThemeType.PLAIN - logger.warn("Invalid testLoggerRichStyle value '$testLoggerStyle', " + - "will use PLAIN style instead. Accepted values are PLAIN, STANDARD and MOCHA.") - } - showSimpleNames = true -} - -tasks { - register("verifyProductDescriptor") { - // Ensure generated plugin requires a paid license - doLast { - val pluginXmlStr = pluginXmlFile.readText() - if (!pluginXmlStr.contains(" { - pluginXmlStr = pluginXmlStr.replace("REPLACED_BY_GRADLE", - "") - } - - "lifetime" -> { - pluginXmlStr = pluginXmlStr.replace("REPLACED_BY_GRADLE", - "lermitage.extra.icons.free") - } - - else -> { - pluginXmlStr = pluginXmlStr.replace("REPLACED_BY_GRADLE", - "lermitage.extra.icons.lifetime" + - "lermitage.extra.icons.free") - } - } - FileUtils.delete(pluginXmlFile) - FileUtils.write(pluginXmlFile, pluginXmlStr, "UTF-8") - } - } - - register("backupPluginLogo") { - doLast { - if (pluginLogoFileBackup.exists()) { - if (!pluginLogoFileBackup.delete()) { - throw GradleException("Failed to remove existing plugin logo file backup '${pluginLogoFileBackup}'") - } - } - FileUtils.copyFile(pluginLogoFile, pluginLogoFileBackup) - } - } - register("restorePluginLogoFromBackup") { - doLast { - if (!pluginLogoFileBackup.exists()) { - throw GradleException("Plugin logo file backup '${pluginLogoFileBackup}' is missing") - } - if (pluginLogoFile.exists()) { - if (!pluginLogoFile.delete()) { - throw GradleException("Failed to remove non-original plugin logo file backup '${pluginLogoFile}'") - } - } - FileUtils.moveFile(pluginLogoFileBackup, pluginLogoFile) - } - } - register("usePluginLogoFree") { - doLast { - if (pluginLogoFile.exists()) { - if (!pluginLogoFile.delete()) { - throw GradleException("Failed to remove existing plugin logo file backup '${pluginLogoFile}'") - } - } - FileUtils.copyFile(pluginLogoFreeFile, pluginLogoFile) - } - } - register("usePluginLogoLifetime") { - doLast { - if (pluginLogoFile.exists()) { - if (!pluginLogoFile.delete()) { - throw GradleException("Failed to remove existing plugin logo file backup '${pluginLogoFile}'") - } - } - FileUtils.copyFile(pluginLogoLifetimeFile, pluginLogoFile) - } - } - - register("backupPluginXml") { - doLast { - if (pluginXmlFileBackup.exists()) { - if (!pluginXmlFileBackup.delete()) { - throw GradleException("Failed to remove existing plugin xml file backup '${pluginXmlFileBackup}'") - } - } - FileUtils.copyFile(pluginXmlFile, pluginXmlFileBackup) - } - } - register("restorePluginXmlFromBackup") { - doLast { - if (!pluginXmlFileBackup.exists()) { - throw GradleException("Plugin xml file backup '${pluginXmlFileBackup}' is missing") - } - if (pluginXmlFile.exists()) { - if (!pluginXmlFile.delete()) { - throw GradleException("Failed to remove non-original plugin xml file backup '${pluginXmlFile}'") - } - } - FileUtils.moveFile(pluginXmlFileBackup, pluginXmlFile) - } - } - - register("removeLicenseRestrictionFromPluginXml") { - // Remove paid license requirement - doLast { - logger.warn("----------------------------------------------------------------") - logger.warn("/!\\ Will build a plugin which doesn't ask for a paid license /!\\") - logger.warn("----------------------------------------------------------------") - var pluginXmlStr = pluginXmlFile.readText() - pluginXmlStr = pluginXmlStr.replace("lermitage.intellij.extra.icons", "${pluginFreeId}") - pluginXmlStr = pluginXmlStr.replace("Extra Icons", "${pluginFreeName}") - val paidLicenceBlockRegex = "".toRegex() - val paidLicenceBlockStr = paidLicenceBlockRegex.find(pluginXmlStr)!!.value - pluginXmlStr = pluginXmlStr.replace(paidLicenceBlockStr, "") - FileUtils.delete(pluginXmlFile) - FileUtils.write(pluginXmlFile, pluginXmlStr, "UTF-8") - } - } - register("renameDistributionNoLicense") { - // Rename generated plugin file to mention the fact that no paid license is needed - doLast { - val baseName = "build/distributions/Extra Icons-$version" - val noLicPluginFile = projectDir.resolve("${baseName}-no-license.zip") - val originalPluginFile = projectDir.resolve("${baseName}.zip") - noLicPluginFile.delete() - if (originalPluginFile.exists()) { - FileUtils.moveFile(projectDir.resolve("${baseName}.zip"), noLicPluginFile) - } - } - } - - register("renamePluginInfoToLifetimeInPluginXml") { - doLast { - var pluginXmlStr = pluginXmlFile.readText() - pluginXmlStr = pluginXmlStr.replace("lermitage.intellij.extra.icons", "$pluginLifetimeLicenseId") - pluginXmlStr = pluginXmlStr.replace("Extra Icons", "$pluginLifetimeLicenseName") - pluginXmlStr = pluginXmlStr.replace(" { - sourceCompatibility = pluginJavaVersion - targetCompatibility = pluginJavaVersion - options.compilerArgs = listOf("-Xlint:deprecation") - options.encoding = "UTF-8" - } - withType { - useJUnitPlatform() - - // avoid JBUIScale "Must be precomputed" error, because IDE is not started (LoadingState.APP_STARTED.isOccurred is false) - jvmArgs("-Djava.awt.headless=true") - - // classpath indexing is not needed during unit tests - // also, disabled to avoid useless 'NoSuchFileException: build/instrumented/instrumentCode/classpath.index.tmp' warnings - systemProperties("idea.classpath.index.enabled" to false) - } - withType { - checkForGradleUpdate = true - gradleReleaseChannel = "current" - revision = "release" - rejectVersionIf { - isNonStable(candidate.version) - } - outputFormatter = closureOf { - unresolved.dependencies.removeIf { - val coordinates = "${it.group}:${it.name}" - coordinates.startsWith("unzipped.com") || coordinates.startsWith("com.jetbrains:ideaI") - } - PlainTextReporter(project, revision, gradleReleaseChannel) - .write(System.out, this) - } - } - runIde { - dependsOn("clearSandboxedIDESystemLogs") - - maxHeapSize = "1g" // https://docs.gradle.org/current/dsl/org.gradle.api.tasks.JavaExec.html - - if (pluginLanguage.isNotBlank()) { - jvmArgs("-Duser.language=$pluginLanguage") - } - if (pluginCountry.isNotBlank()) { - jvmArgs("-Duser.country=$pluginCountry") - } - if (System.getProperty("extra-icons.enable.chinese.ui", "false") == "true") { - // force Chinese UI in plugin - jvmArgs("-Dextra-icons.enable.chinese.ui=true") - } - if (System.getProperty("extra-icons.always.show.notifications", "false") == "true") { - // show notifications on startup - jvmArgs("-Dextra-icons.always.show.notifications=true") - } - - // force detection of slow operations in EDT when playing with sandboxed IDE (SlowOperations.assertSlowOperationsAreAllowed) - if (pluginEnforceIdeSlowOperationsAssertion.toBoolean()) { - jvmArgs("-Dide.slow.operations.assertion=true") - } - - if (pluginEnableDebugLogs.toBoolean()) { - systemProperties( - "idea.log.debug.categories" to "#lermitage.intellij.extra.icons" - ) - } - - autoReloadPlugins.set(false) - - // If any warning or error with missing --add-opens, wait for the next gradle-intellij-plugin's update that should sync - // with https://raw.githubusercontent.com/JetBrains/intellij-community/master/plugins/devkit/devkit-core/src/run/OpenedPackages.txt - // or do it manually - } - buildSearchableOptions { - enabled = false - } - patchPluginXml { - when (pluginLicenseType) { - "free" -> { - dependsOn("backupPluginLogo", "usePluginLogoFree", "backupPluginXml", "removeLicenseRestrictionFromPluginXml", "updatePluginCompatibilityRulesFromPluginXml") - } - - "lifetime" -> { - dependsOn("backupPluginLogo", "usePluginLogoLifetime", "backupPluginXml", "renamePluginInfoToLifetimeInPluginXml", "updatePluginCompatibilityRulesFromPluginXml", "verifyProductDescriptor") - } - - else -> { - dependsOn("backupPluginXml", "updatePluginCompatibilityRulesFromPluginXml", "verifyProductDescriptor") - } - } - changeNotes.set(provider { - with(changelog) { - renderItem(getLatest(), Changelog.OutputType.HTML) - } - }) - } - buildPlugin { - when (pluginLicenseType) { - "free" -> { - finalizedBy("restorePluginLogoFromBackup", "restorePluginXmlFromBackup", "renameDistributionNoLicense") - } - - "lifetime" -> { - finalizedBy("restorePluginLogoFromBackup", "restorePluginXmlFromBackup", "renameDistributionLifetimeLicense") - } - - else -> { - finalizedBy("restorePluginXmlFromBackup") - } - } - } - publishPlugin { - token.set(System.getenv("JLE_IJ_PLUGINS_PUBLISH_TOKEN")) - } -} - -fun isNonStable(version: String): Boolean { - if (listOf("RELEASE", "FINAL", "GA").any { version.uppercase().endsWith(it) }) { - return false - } - return listOf("alpha", "Alpha", "ALPHA", "b", "beta", "Beta", "BETA", "rc", "RC", "M", "EA", "pr", "atlassian").any { - "(?i).*[.-]${it}[.\\d-]*$".toRegex().matches(version) - } -} - -/** Return an IDE version string without the optional PATCH number. - * In other words, replace IDE-MAJOR-MINOR(-PATCH) by IDE-MAJOR-MINOR. */ -fun shortenIdeVersion(version: String): String { - if (version.contains("SNAPSHOT", ignoreCase = true)) { - return version - } - val matcher = Regex("[A-Za-z]+[\\-]?[0-9]+[\\.]{1}[0-9]+") - return try { - matcher.findAll(version).map { it.value }.toList()[0] - } catch (e: Exception) { - logger.warn("Failed to shorten IDE version $version: ${e.message}") - version - } -} - -/** Find latest IntelliJ stable version from JetBrains website. Result is cached locally for 24h. */ -fun findLatestStableIdeVersion(): String { - val t1 = System.currentTimeMillis() - val definitionsUrl = URL("https://www.jetbrains.com/updates/updates.xml") - val cachedLatestVersionFile = File(System.getProperty("java.io.tmpdir") + "/jle-ij-latest-version.txt") - var latestVersion: String - try { - if (cachedLatestVersionFile.exists()) { - - val cacheDurationMs = Integer.parseInt(project.findProperty("pluginIdeaVersionCacheDurationInHours") as String) * 60 * 60_000 - if (cachedLatestVersionFile.exists() && cachedLatestVersionFile.lastModified() < (System.currentTimeMillis() - cacheDurationMs)) { - logger.quiet("Cache expired, find latest stable IDE version from $definitionsUrl then update cached file $cachedLatestVersionFile") - latestVersion = getOnlineLatestStableIdeVersion(definitionsUrl) - cachedLatestVersionFile.delete() - Files.writeString(cachedLatestVersionFile.toPath(), latestVersion, Charsets.UTF_8) - - } else { - logger.quiet("Find latest stable IDE version from cached file $cachedLatestVersionFile") - latestVersion = Files.readString(cachedLatestVersionFile.toPath())!! - } - - } else { - logger.quiet("Find latest stable IDE version from $definitionsUrl") - latestVersion = getOnlineLatestStableIdeVersion(definitionsUrl) - Files.writeString(cachedLatestVersionFile.toPath(), latestVersion, Charsets.UTF_8) - } - - } catch (e: Exception) { - if (cachedLatestVersionFile.exists()) { - logger.warn("Error: ${e.message}. Will find latest stable IDE version from cached file $cachedLatestVersionFile") - latestVersion = Files.readString(cachedLatestVersionFile.toPath())!! - } else { - throw RuntimeException(e) - } - } - if (logger.isDebugEnabled) { - val t2 = System.currentTimeMillis() - logger.debug("Operation took ${t2 - t1} ms") - } - return latestVersion -} - -/** Find latest IntelliJ stable version from given url. */ -fun getOnlineLatestStableIdeVersion(definitionsUrl: URL): String { - val definitionsStr = readRemoteContent(definitionsUrl) - val builderFactory = DocumentBuilderFactory.newInstance() - val builder = builderFactory.newDocumentBuilder() - val xmlDocument: Document = builder.parse(ByteArrayInputStream(definitionsStr.toByteArray())) - val xPath = XPathFactory.newInstance().newXPath() - val expression = "/products/product[@name='IntelliJ IDEA']/channel[@id='IC-IU-RELEASE-licensing-RELEASE']/build[1]/@version" - return xPath.compile(expression).evaluate(xmlDocument, XPathConstants.STRING) as String -} - -/** Read a remote file as String. */ -fun readRemoteContent(url: URL): String { - val t1 = System.currentTimeMillis() - val content = StringBuilder() - val conn = url.openConnection() as HttpURLConnection - conn.requestMethod = "GET" - BufferedReader(InputStreamReader(conn.inputStream)).use { rd -> - var line: String? = rd.readLine() - while (line != null) { - content.append(line) - line = rd.readLine() - } - } - val t2 = System.currentTimeMillis() - logger.quiet("Download $url, took ${t2 - t1} ms (${content.length} B)") - return content.toString() -} - -/** Get IDE version from gradle.properties or, of wanted, find latest stable IDE version from JetBrains website. */ -fun detectBestIdeVersion(): String { - val pluginIdeaVersionFromProps = project.findProperty("pluginIdeaVersion") - if (pluginIdeaVersionFromProps.toString() == "IC-LATEST-STABLE") { - return "IC-${findLatestStableIdeVersion()}" - } - if (pluginIdeaVersionFromProps.toString() == "IU-LATEST-STABLE") { - return "IU-${findLatestStableIdeVersion()}" - } - return pluginIdeaVersionFromProps.toString() -} diff --git a/docs/DEV_FAQ.md b/docs/DEV_FAQ.md deleted file mode 100644 index bebfa298..00000000 --- a/docs/DEV_FAQ.md +++ /dev/null @@ -1,17 +0,0 @@ -# Plugin Dev FAQ - -## Some common problems and their solution or workaround - ---- - -**Problem**: `class com.intellij.ui.Win7TaskBar cannot access class sun.awt.windows.WComponentPeer (in module java.desktop) because module java.desktop does not export sun.awt.windows to unnamed module @7f2ef9a8` or similar error when you run the plugin with the `runIde` task. - -**Solution**: add missing exports if [gradle-intellij-plugin](https://github.com/JetBrains/gradle-intellij-plugin) is not synced with the latest IJ [OpenedPackages.txt](https://raw.githubusercontent.com/JetBrains/intellij-community/master/plugins/devkit/devkit-core/src/run/OpenedPackages.txt) file. Example: add this line to the `build.gradle.kts`'s `runIde` task: -```kotlin -jvmArgs("--add-exports", "java.desktop/sun.awt.windows=ALL-UNNAMED") -``` - -This is usually quickly fixed by the latest gradle-intellij-plugin update. - ---- - diff --git a/docs/LICENSE_FAQ.md b/docs/LICENSE_FAQ.md index 0689fa01..dea27922 100644 --- a/docs/LICENSE_FAQ.md +++ b/docs/LICENSE_FAQ.md @@ -41,3 +41,6 @@ I have no plan for that. I now have supporters thanks to the Extra Icons project The funding of OSS is a big question and, unfortunately, I think we can't discuss this on the Internet. I tried, but had to deal with the extreme aggressiveness of some toxic users. It was a very disturbing experience. Some people have no inhibition on the Internet. I think they are a minority, but they are very loud. Additionally, some idiots organized a review-bombing against all my plugins (JetBrains moderators took some time to delete those toxic reviews, thx for their help). To answer the question quickly, I am doing free and OSS since ~2010. I started on Sourceforge.net with some Java libraries and NetBeans plugins. Like many contributors, I am doing this for fun, to share and learn interesting things. Also, like many contributors, motivation varies over time, and I tried many things (including donations and sponsorship) but it simply doesn't work. Now, I am looking for a minimal recognition. Some people don't need this, but this is their own mentality, their own vision of OSS, and I think we should respect each other. That's why I am now asking for a modest financial contribution. Technically, I had to pick one of my projects, I think the most useful, and one of the projects that represents the highest number of work hours. That's why I don't (and won't) ask for a financial contribution for my other OSS projects. I now have supporters, and I am super happy with that. I want to work with supporters, not for customers. + +**2024-01-08 update**: +:warn: Some people decided to distribute my plugin with license requirement removed, without having the decency to tell me about it. No acknowledgement, simply a total lack of respect, while I allowed users to support me financially only if they wished to. I am working hard on this plugin since 2018, allowing users to explore the code and optionally support my work. So I had to make the difficult decision to stop distributing the source code. *Well played...*. :warn: diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index 79f50bdc..00000000 --- a/gradle.properties +++ /dev/null @@ -1,42 +0,0 @@ -pluginDownloadIdeaSources=true -pluginJavaVersion=17 - -# IDE version when running runIde task (example: IC-2023.1). Set to "IC-LATEST-STABLE" or "IU-LATEST-STABLE" -# to find latest stable IDE version from JetBrains website -pluginIdeaVersion=IC-LATEST-STABLE - -# When pluginIdeaVersion is empty, cache latest stable IDE version found for given number of hours -pluginIdeaVersionCacheDurationInHours=24 - -# Plugin version. If set to "auto", use the latest tag name (without the leading 'v') as the plugin version -pluginVersion=auto - -# License type: "free" (no license needed), "lifetime" (lifetime paid license) or "subscription" (monthly/yearly paid subscription) -pluginLicenseType=subscription - -# The Gradle Test Logger plugin's theme: PLAIN, STANDARD (which displays colours, so it's not correctly -# supported by some terminals) or MOCHA (same problem) -testLoggerStyle=PLAIN - -# Used to change IDE's locale when running runIde task. Leave empty values to use default locale -pluginLanguage= -pluginCountry= - -# Enable plugin's debug logs when running sandboxed IDE (see idea.log) -pluginEnableDebugLogs=false - -# Enforce SlowOperations' "slow operation on EDT" assertion -pluginEnforceIdeSlowOperationsAssertion=true - -# Empty sandboxed IDE system/log folder before run -pluginClearSandboxedIDESystemLogsBeforeRun=true - -# Plugin information when lifetime license is enabled -pluginLifetimeLicenseDescriptionHeader=Same plugin as Extra Icons, with a lifetime license (pay once, get updates for life). -pluginLifetimeLicenseId=lermitage.extra.icons.lifetime -pluginLifetimeLicenseCode=PEXTRAICONSLIFE -pluginLifetimeLicenseName=Extra Icons Lifetime - -# Plugin information when no license is required -pluginFreeId=lermitage.extra.icons.free -pluginFreeName=Extra Icons Free diff --git a/gradlew b/gradlew deleted file mode 100755 index 1aa94a42..00000000 --- a/gradlew +++ /dev/null @@ -1,249 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index 93e3f59f..00000000 --- a/gradlew.bat +++ /dev/null @@ -1,92 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/misc/pluginIcon.free.svg b/misc/pluginIcon.free.svg deleted file mode 100644 index 04bb28a7..00000000 --- a/misc/pluginIcon.free.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/misc/pluginIcon.lifetime.svg b/misc/pluginIcon.lifetime.svg deleted file mode 100644 index 41ad61f0..00000000 --- a/misc/pluginIcon.lifetime.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts deleted file mode 100644 index 18fe581d..00000000 --- a/settings.gradle.kts +++ /dev/null @@ -1,10 +0,0 @@ -rootProject.name = "ij-extra-icons" - -// uncomment to use gradle-intellij-plugin snapshots -// https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#snapshot-release -/*pluginManagement { - repositories { - maven("https://oss.sonatype.org/content/repositories/snapshots/") - gradlePluginPortal() - } -}*/ diff --git a/src/main/java/lermitage/intellij/extra/icons/BaseIconProvider.java b/src/main/java/lermitage/intellij/extra/icons/BaseIconProvider.java deleted file mode 100644 index 11ac110c..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/BaseIconProvider.java +++ /dev/null @@ -1,383 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -import com.intellij.ide.FileIconProvider; -import com.intellij.ide.IconProvider; -import com.intellij.ide.projectView.PresentationData; -import com.intellij.ide.projectView.ProjectViewNode; -import com.intellij.ide.projectView.ProjectViewNodeDecorator; -import com.intellij.openapi.diagnostic.ControlFlowException; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiDirectory; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiFile; -import com.intellij.psi.PsiFileSystemItem; -import com.intellij.testFramework.LightVirtualFile; -import com.intellij.ui.NewUI; -import lermitage.intellij.extra.icons.cfg.services.SettingsIDEService; -import lermitage.intellij.extra.icons.cfg.services.SettingsProjectService; -import lermitage.intellij.extra.icons.cfg.services.SettingsService; -import lermitage.intellij.extra.icons.lic.ExtraIconsLicenseStatus; -import lermitage.intellij.extra.icons.services.FacetsFinderService; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import lermitage.intellij.extra.icons.utils.IconUtils; -import lermitage.intellij.extra.icons.utils.ProjectUtils; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import javax.swing.Icon; -import java.io.File; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.List; -import java.util.MissingResourceException; -import java.util.Optional; -import java.util.ResourceBundle; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** - * @author Edoardo Luppi - * @author Jonathan Lermitage - */ -public abstract class BaseIconProvider - extends IconProvider // the most important icon provider - implements FileIconProvider, // may drop FileIconProvider as most of the work is done by the IconProvider - ProjectViewNodeDecorator // fix for https://youtrack.jetbrains.com/issue/PY-44417 -{ - - private static final @NonNls Logger LOGGER = Logger.getInstance(BaseIconProvider.class); - - private final List models; - - private long nbGetIcon = 0; - private long checks_done = 0; - private long checks_saved = 0; - private final UITypeIconsPreference uiTypeIconsPreference; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - public BaseIconProvider() { - super(); - final UIType uiType = NewUI.isEnabled() ? UIType.NEW_UI : UIType.OLD_UI; - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("Detected UI Type: " + uiType); - } - this.models = getAllModels().stream() - .filter(model -> model.getModelType() == ModelType.FILE || model.getModelType() == ModelType.DIR) - .filter(model -> model.getUiType() == null || model.getUiType() == uiType) - .toList(); - uiTypeIconsPreference = SettingsIDEService.getInstance().getUiTypeIconsPreference(); - } - - /** - * Get list of all models managed by this icon provider. Their 'enabled' field doesn't matter. - * This list will be processed by constructor and models 'enabled' field updated according to running IDE configuration. - * Useful if BaseIconProvider has multiple inheritors, per example if one of them depends on a 3rd-party plugin (did - * that for Angular, before removing it in favor of an Icon Enabler). May refactor and remove this method later if - * it's still not used. - */ - protected abstract List getAllModels(); - - private static Model extractAltModel(Model model, int altIconIdx) { - String altDescription; - String altId; - if (altIconIdx < 1) { - if (model.getAltIcons().length == 1) { - altDescription = MessageFormat.format(i18n.getString("model.desc.alternative"), model.getDescription()); - } else { - altDescription = MessageFormat.format(i18n.getString("model.desc.alternative.first"), model.getDescription()); - } - altId = model.getId() + "_alt"; //NON-NLS - } else { - altDescription = MessageFormat.format(i18n.getString("model.desc.alternative.other"), model.getDescription(), altIconIdx + 1); - altId = model.getId() + "_alt" + (altIconIdx + 1); //NON-NLS - } - return Model.createAltModel(model, altId, model.getIdeIcon(), model.getAltIcons()[altIconIdx], altDescription); - } - - public static Stream modelList(Model model) { - if (model.getAltIcons() == null || model.getAltIcons().length == 0) { - return Stream.of(model); - } - List models = new ArrayList<>(); - models.add(model); - for (int i = 0; i < model.getAltIcons().length; i++) { - models.add(extractAltModel(model, i)); - } - return models.stream(); - } - - private String parent(@NotNull File file) { - return file.getParent() == null ? null : file.getParentFile().getName().toLowerCase(); - } - - private void logError(@NotNull Throwable e) { - if (e instanceof ControlFlowException) { - // Control-flow exceptions should never be logged. - LOGGER.info("ControlFlowException errors can be safely ignored as the impact on user experience should be very limited", e); - return; - } - if (e instanceof MissingResourceException) { - // TODO investigate https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/137 - // For now, silent errors when trying to find the PSI object for a file: PsiManager.getInstance(project).findFile(file). - // It should not impact user experience. - LOGGER.info("MissingResourceException errors can be safely ignored as the impact on user experience should be very limited", e); - return; - } - // Workaround for https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/39 - // Plugin may want to reload icon on closed or disposed project. Just ignore it - if (e.getMessage() != null) { - String errMsg = e.getMessage() - .replaceAll("[\\s_]", "") //NON-NLS - .toUpperCase(); - if (errMsg.contains("DISPOSEINPROGRESS") || errMsg.contains("PROJECTISALREADYDISPOSED")) { - LOGGER.infoWithDebug("Tried to show an icon but the project is disposed or being disposed. " + - "We can safely ignore this error with no impact on user experience", e); - } else { - LOGGER.warn(e); - } - } - } - - @Nullable - @Override // overrides FileIconProvider - public Icon getIcon(@NotNull VirtualFile file, int flags, @Nullable Project project) { - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("FileIconProvider->" + file.getPath()); - } - try { - if (!ProjectUtils.isProjectAlive(project)) { - return null; - } - if (file instanceof LightVirtualFile) { - // TODO need to reproduce and understand what happens in - // https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/86 - // (error: Light files should have PSI only in one project) - return null; - } - return getIcon(new File(file.getPath()), - file.isDirectory() ? FileType.FOLDER : FileType.FILE, - project); - } catch (Throwable e) { - logError(e); - } finally { - logCacheHitStats(); - } - return null; - } - - @Nullable - @Override // overrides IconProvider - public final Icon getIcon(@NotNull final PsiElement psiElement, final int flags) { - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("IconProvider->" + psiElement); - } - try { - PsiFileSystemItem currentPsiFileItem; - if (psiElement instanceof PsiDirectory psiDirectoryElt) { - currentPsiFileItem = psiDirectoryElt; - } else { - final Optional optFile = Optional.ofNullable(psiElement.getContainingFile()); - currentPsiFileItem = optFile.orElse(null); - } - if (currentPsiFileItem == null) { - return null; - } - String fullPath = getFullPath(currentPsiFileItem); - if (fullPath == null) { - return null; - } - File file = new File(fullPath); - return getIcon(file, - psiElement instanceof PsiDirectory ? FileType.FOLDER : FileType.FILE, - psiElement.getProject()); - } catch (Throwable e) { - logError(e); - } finally { - logCacheHitStats(); - } - return null; - } - - @Override // overrides ProjectViewNodeDecorator - public void decorate(ProjectViewNode node, PresentationData data) { - try { - VirtualFile virtualFile = node.getVirtualFile(); - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("ProjectViewNodeDecorator->" + (virtualFile == null ? null : virtualFile.getPath())); - } - if (virtualFile != null) { - File file = new File(virtualFile.getPath()); - FileType fileType = file.isDirectory() ? FileType.FOLDER : FileType.FILE; - Project project = node.getProject(); - Icon icon = getIcon(file, fileType, project); - if (icon != null) { - node.setIcon(icon); - if (data != null) { - data.setIcon(icon); - } - } - } - } catch (Exception e) { - LOGGER.warn(e); - } - } - - @Nullable - private Icon getIcon(@NotNull File file, @NotNull FileType fileType, @Nullable Project project) { - if (!ExtraIconsLicenseStatus.isLicenseActivated()) { - return null; - } - nbGetIcon++; - try { - if (!ProjectUtils.isProjectAlive(project)) { - return null; - } - ModelType currentModelType; - if (fileType == FileType.FOLDER) { - if (isPatternIgnored(project, file)) { - return null; - } - currentModelType = ModelType.DIR; - } else { - if (isPatternIgnored(project, file)) { - return null; - } - currentModelType = ModelType.FILE; - } - String parentName = parent(file); - String normalizedFileName = getSanitizeFilePath(file.getName()); - String normalizedFileAbsPath = getSanitizeFilePath(file.getAbsolutePath()); - assert project != null; - Set facets = FacetsFinderService.getInstance(project).getFacets(); - Double additionalUIScale = SettingsIDEService.getInstance().getAdditionalUIScale2(); - SettingsService settingsService = getBestSettingsService(project); - Object parentModelIdWhoseCheckFailed = null; - for (final Model model : getModelsIncludingUserModels(project)) { - if (model.getModelType() == currentModelType && model.isEnabled() && !settingsService.getDisabledModelIds().contains(model.getId())) { - if (model.getParentId() != null && parentModelIdWhoseCheckFailed == model.getParentId()) { - // check already returned false for this model (parent or alt), don't need to check again - checks_saved++; - continue; - } - checks_done++; - if (model.check(parentName, normalizedFileName, normalizedFileAbsPath, facets, project)) { - return IconUtils.getIcon(model, additionalUIScale, uiTypeIconsPreference); - } else { - parentModelIdWhoseCheckFailed = model.getParentId() == null ? model.getId() : model.getParentId(); - } - } - } - } catch (Throwable e) { - logError(e); - } finally { - logCacheHitStats(); - } - return null; - } - - private void logCacheHitStats() { - if (LOGGER.isDebugEnabled() && nbGetIcon > 0 && checks_done > 0 && (nbGetIcon < 5 || nbGetIcon < 100 ? nbGetIcon % 20 == 0 : nbGetIcon % 100 == 0)) { - // activate with Help > Diagnostic Tools > Debug Log Settings > #lermitage.intellij.extra.icons.BaseIconProvider - LOGGER.debug("[" + Thread.currentThread().getId() + "] " + - "getIcon: " + nbGetIcon + ", " + - "checks_done: " + checks_done + ", " + - "checks_saved: " + checks_saved + " (" + (checks_saved * 100 / checks_done) + "%)"); - } - } - - @Nullable - private String getFullPath(@NotNull PsiFileSystemItem file) { - if (file.getVirtualFile() != null) { - return file.getVirtualFile().getPath().toLowerCase(); - } - return null; - } - - private String getSanitizeFilePath(String path) { - return path.toLowerCase().replaceAll("\\\\", "/"); - } - - /** - * Depending on whether the checkbox in the settings is checked, this method appends - * the user added models to the model list. - */ - private List getModelsIncludingUserModels(@Nullable Project project) { - Stream customModelsStream = null; - - if (project != null) { - SettingsProjectService settingsProjectService = SettingsProjectService.getInstance(project); - if (settingsProjectService.isOverrideIDESettings()) { - if (settingsProjectService.isAddToIDEUserIcons()) { - customModelsStream = Stream.concat(SettingsIDEService.getInstance().getCustomModels().stream(), - settingsProjectService.getCustomModels().stream()); - } else { - customModelsStream = settingsProjectService.getCustomModels().stream(); - } - } - } - if (customModelsStream == null) { - customModelsStream = SettingsIDEService.getInstance().getCustomModels().stream(); - } - - return Stream.concat(customModelsStream, models.stream()).collect(Collectors.toList());// - } - - /** - * Indicates if given file/folder should be ignored. - * @param project project. - * @param file current file or folder. - */ - private boolean isPatternIgnored(Project project, File file) { - try { - SettingsService service = getBestSettingsService(project); - if (service.getIgnoredPatternObj() == null || service.getIgnoredPattern() == null || service.getIgnoredPattern().isEmpty()) { - return false; - } - String projectBasePath; - if (ProjectUtils.isProjectAlive(project)) { - projectBasePath = project.getBasePath(); - if (projectBasePath == null) { - return false; - } - } else { - return false; - } - String normalizedFileAbsPath = file.getAbsolutePath().toLowerCase().replaceAll("\\\\", "/"); - String normalizedProjectPath = projectBasePath.toLowerCase().replaceAll("\\\\", "/"); - if (!normalizedFileAbsPath.startsWith(normalizedProjectPath) || normalizedFileAbsPath.length() <= normalizedProjectPath.length()) { - return false; - } - return service.getIgnoredPatternObj().matcher(normalizedFileAbsPath.substring(normalizedProjectPath.length() + 1)).matches(); - } catch (Exception e) { - LOGGER.warn(file.getAbsolutePath() + ", " + project.getBasePath()); - logError(e); - return false; - } - } - - /** - * Returns the Project settings service if the project is not null and if the checkbox in the project settings was checked, - * otherwise returns the IDE settings service. - */ - @NotNull - private SettingsService getBestSettingsService(@Nullable Project project) { - if (project != null) { - SettingsProjectService settingsProjectService = SettingsProjectService.getInstance(project); - if (settingsProjectService.isOverrideIDESettings()) { - return settingsProjectService; - } - } - return SettingsIDEService.getInstance(); - } - - private enum FileType { - FILE, FOLDER - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/ExtraIconPatcher.java b/src/main/java/lermitage/intellij/extra/icons/ExtraIconPatcher.java deleted file mode 100644 index dc1edadc..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/ExtraIconPatcher.java +++ /dev/null @@ -1,133 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.util.IconLoader; -import com.intellij.openapi.util.IconPathPatcher; -import com.intellij.ui.NewUI; -import lermitage.intellij.extra.icons.cfg.services.SettingsIDEService; -import lermitage.intellij.extra.icons.utils.IconUtils; -import lermitage.intellij.extra.icons.utils.OS; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Stream; - -import static lermitage.intellij.extra.icons.utils.Base64Utils.B64_DECODER; - -public class ExtraIconPatcher extends IconPathPatcher { - - private static final @NonNls Logger LOGGER = Logger.getInstance(ExtraIconPatcher.class); - private static final OS detectedOS = OS.detectOS(); - - private Map icons; - - @NotNull - public static Map getEnabledIcons() { - final UIType uiType = NewUI.isEnabled() ? UIType.NEW_UI : UIType.OLD_UI; - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("Detected UI Type: " + uiType); - } - boolean preferNewUI = switch (SettingsIDEService.getInstance().getUiTypeIconsPreference()) { - case BASED_ON_ACTIVE_UI_TYPE -> NewUI.isEnabled(); - case PREFER_NEW_UI_ICONS -> true; - case PREFER_OLD_UI_ICONS -> false; - }; - - Map enabledIcons = new LinkedHashMap<>(); - List disabledModelIds = SettingsIDEService.getInstance().getDisabledModelIds(); - Stream.of(ExtraIconProvider.allModels(), SettingsIDEService.getInstance().getCustomModels()).flatMap(Collection::stream) - .filter(model -> model.getModelType() == ModelType.ICON) - .forEach(model -> { - if (model.isEnabled() && !enabledIcons.containsKey(model.getIdeIcon()) && !disabledModelIds.contains(model.getId())) { - String iconPathToLoad; - if (preferNewUI && model.isAutoLoadNewUIIconVariant()) { - iconPathToLoad = model.getIcon().replace("extra-icons/", "extra-icons/newui/"); //NON-NLS - } else { - iconPathToLoad = model.getIcon(); - } - enabledIcons.put(model.getIdeIcon(), iconPathToLoad); - } - }); - return enabledIcons; - } - - public ExtraIconPatcher() { - super(); - loadConfig(); - IconLoader.installPathPatcher(this); - } - - @Override - public @Nullable ClassLoader getContextClassLoader(@NotNull String path, @Nullable ClassLoader originalClassLoader) { - return ExtraIconPatcher.class.getClassLoader(); - } - - @Override - public @Nullable String patchPath(@NotNull String path, @Nullable ClassLoader classLoader) { - if (icons == null) { - loadConfig(); - } - - if (this.icons.containsKey(path)) { - return this.icons.get(path); - } - if (path.startsWith("/") && path.length() > 2) { - String simplifiedPath = path.substring(1); - if (this.icons.containsKey(simplifiedPath)) { - return this.icons.get(simplifiedPath); - } - } - - String fileName = (new File(path)).getName(); - if (this.icons.containsKey(fileName)) { - return this.icons.get(fileName); - } - - return null; - } - - private void loadConfig() { - icons = getEnabledIcons(); - try { - icons = convertUserB64IconsToLocalFilesAndKeepBundledIcons(icons); - } catch (IOException e) { - LOGGER.warn("Cannot create temporary directory to store user IDE icons, this feature won't work", e); - } - LOGGER.info("Config loaded with success, enabled " + icons.size() + " items"); - } - - /** - * Convert Base64 user icons to local files. This conversion is needed because IconPatcher can't work with - * in-memory byte arrays; we have to use bundled icons (from /resources) or local files. This method - * stores in-memory Base64 icons provided by user as temporary local files. - */ - private Map convertUserB64IconsToLocalFilesAndKeepBundledIcons(Map icons) throws IOException { - Map morphedIcons = new LinkedHashMap<>(); - for (String iconKey : icons.keySet()) { - String iconStr = icons.get(iconKey); - if (iconStr.startsWith("extra-icons/")) { //NON-NLS - // bundled icon, no icon transformation needed - morphedIcons.put(iconKey, iconStr); - } else { - // base64 icon provided by user: store as local file - File svgFile = IconUtils.createOrGetTempSVGFile(B64_DECODER.decode(iconStr)); - String decodedIconPath = svgFile.getAbsolutePath(); - if (detectedOS == OS.WIN) { // TODO see if should use VfsUtil.fixURLforIDEA(urlStr) - morphedIcons.put(iconKey, "file:/" + decodedIconPath); //NON-NLS - } else { - morphedIcons.put(iconKey, "file://" + decodedIconPath); //NON-NLS - } - } - } - return morphedIcons; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/ExtraIconProvider.java b/src/main/java/lermitage/intellij/extra/icons/ExtraIconProvider.java deleted file mode 100644 index 95e1216f..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/ExtraIconProvider.java +++ /dev/null @@ -1,1401 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -import com.intellij.openapi.project.DumbAware; -import lermitage.intellij.extra.icons.enablers.IconEnablerType; -import org.jetbrains.annotations.NotNull; - -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import static lermitage.intellij.extra.icons.Model.ofDir; -import static lermitage.intellij.extra.icons.Model.ofFile; -import static lermitage.intellij.extra.icons.Model.ofIcon; - -@SuppressWarnings({"SpellCheckingInspection", "HardCodedStringLiteral"}) -public class ExtraIconProvider extends BaseIconProvider implements DumbAware { - - private static final String[] TXT = new String[]{".md", ".txt", ".adoc", ".rst"}; - private static final String[] CFG = new String[]{".xml", ".yml", ".yaml", ".properties", ".json", ".cfg", ".conf", ".ini", ".txt"}; - private static final String[] YML = new String[]{".yaml", ".yml"}; - - @NotNull - public static List allModels() { // TODO move to SequencedCollection once migrated to jdk21? - return Stream.of( - - // - // Tip: to find IDE icon names, visit https://jetbrains.design/intellij/resources/icons_list/, pick - // an icon and open the ZIP file: you can use the non-dark SVG file name. - // docker - ofIcon("ide_docker", - "Docker.svg", "extra-icons/docker_.svg", - "IDE icon: Docker") - .altIcons("extra-icons/docker_alt.svg", "extra-icons/docker_alt2.svg") - .tags(ModelTag.DOCKER), - // docker compose - ofIcon("ide_docker_compose", - "DockerCompose.svg", "extra-icons/dockercompose_.svg", - "IDE icon: Docker Compose") - .altIcons("extra-icons/dockercompose_alt.svg", "extra-icons/dockercompose_alt2.svg") - .tags(ModelTag.DOCKER), - // html - ofIcon("ide_html", - "html.svg", "extra-icons/html5.svg", - "IDE icon: HTML") - .altIcons("extra-icons/html5_alt.svg", "extra-icons/html5_alt2.svg", - "extra-icons/ide/firefox.svg", "extra-icons/ide/firefoxDeveloper.svg", - "extra-icons/ide/vivaldi.svg", "extra-icons/ide/edge.svg", - "extra-icons/ide/explorer.svg", "extra-icons/ide/opera.svg", - "extra-icons/ide/chrome.svg", "extra-icons/ide/canary.svg", - "extra-icons/ide/safari.svg") - .tags(ModelTag.HTML), - // java - ofIcon("ide_java_enum_class", - "enum.svg", "extra-icons/ide/enum_.svg", - "IDE icon: Java enum") - .altIcons("extra-icons/ide/enum_alt.svg", "extra-icons/ide/enum_alt2.svg") - .autoLoadNewUIIconVariant(), - // FIXME temporary workaround for IDEA-339254 (can't refresh Exception and Abstract Exception file IDE icons) - ofFile("ide_java_abstract_exception_workaround_IDEA339254", - "extra-icons/ide/abstractException_.svg", "Java abstract exception class (regex): '.*/[a-z\\d._\\-]*abstract[a-z\\d._\\-]*exception\\.java' (partial workaround for IDEA-339254)") - .regex(".*/[a-z\\d._\\-]*abstract[a-z\\d._\\-]*exception+\\.java") - .autoLoadNewUIIconVariant(), - ofFile("ide_java_exception_workaround_IDEA339254", - "extra-icons/ide/exceptionClass_.svg", "Java exception class (regex): '.*/[a-z\\d._\\-]*exception\\.java' (partial workaround for IDEA-339254)") - .regex(".*/[a-z\\d._\\-]*exception\\.java") - .autoLoadNewUIIconVariant(), - ofIcon("ide_java_abstract_exception", - "abstractException.svg", "extra-icons/ide/abstractException_.svg", - "IDE icon: Java abstract exception class (affected by IDEA-339254)") - .autoLoadNewUIIconVariant(), - ofIcon("ide_java_exception_class", - "exceptionClass.svg", "extra-icons/ide/exceptionClass_.svg", - "IDE icon: Java exception class (affected by IDEA-339254)") - .autoLoadNewUIIconVariant(), - // kotlin - ofIcon("ide_kotlin_enum_class", - "enumKotlin.svg", "extra-icons/ide/enumKotlin_.svg", - "IDE icon: Kotlin enum") - .altIcons("extra-icons/ide/enumKotlin_alt.svg", "extra-icons/ide/enumKotlin_alt2.svg") - .autoLoadNewUIIconVariant(), - // kotlin gradle script - ofIcon("ide_kotlin_gradle_script", - "kotlin_gradle_script.svg", "extra-icons/gradle_kotlin_colored.svg", - "IDE icon: Kotlin Gradle script") - .altIcons("extra-icons/gradle_kotlin.svg"), - // yaml - ofIcon("ide_sh_file", - "shFile.svg", "extra-icons/bash.svg", - "IDE icon: Bash file"), - // yaml - ofIcon("ide_yaml", - "yaml.svg", "extra-icons/ide/yaml_.svg", - "IDE icon: YAML") - .altIcons("extra-icons/ide/yaml_alt.svg", "extra-icons/ide/yaml_alt2.svg"), - // - - // - ofDir("dir_circleci", "extra-icons/folder_circleci.svg", "Circle CI: .circleci folder") - .eq(".circleci"), - ofDir("dir_dependabot", "extra-icons/folder_dependabot.svg", "Dependabot: .dependabot folder") - .eq(".dependabot") - .altIcons("extra-icons/folder_dependabot_alt.svg"), - ofDir("dir_docker", "extra-icons/folder_docker.svg", "Docker: docker folder") - .eq("docker") - .tags(ModelTag.DOCKER), - ofDir("dir_fleet", "extra-icons/folder_fleet.svg", "JetBrains Fleet: .fleet folder") - .eq(".fleet") - .autoLoadNewUIIconVariant(), - ofDir("dir_github", "extra-icons/folder_github.svg", "Github: .github folder") - .eq(".github"), - ofDir("dir_gitlab", "extra-icons/folder_gitlab.svg", "Gitlab: .gitlab folder") - .eq(".gitlab"), - ofDir("dir_gradle", "extra-icons/folder_gradle.svg", "Gradle: gradle folder") - .eq("gradle") - .inProjectRootFolder(), - ofDir("dir_idea", "extra-icons/folder_idea.svg", "IntelliJ IDEA: .idea folder") - .eq(".idea"), - ofDir("dir_ideasandbox", "extra-icons/folder_idea.svg", "IntelliJ IDEA: .idea-sandbox and idea-sandbox folders") - .eq(".idea-sandbox", "idea-sandbox"), - ofDir("dir_idearun", "extra-icons/folder_idea.svg", "IntelliJ IDEA 2020+ Run/Debug Configurations: .run folder") - .eq(".run"), - ofDir("dir_jpabuddy", "extra-icons/folder_jpabuddy.svg", "JPA Buddy: .jpb folder") - .eq(".jpb") - .altIcons("extra-icons/folder_jpabuddy_alt.svg", "extra-icons/folder_jpabuddy_alt2.svg", - "extra-icons/folder_jpabuddy_alt3.svg") - .autoLoadNewUIIconVariant(), - ofDir("dir_log", "extra-icons/folder_tmp.svg", "Logs: 'log' folder at project's root level") - .eq("log") - .inProjectRootFolder() - .autoLoadNewUIIconVariant(), - ofDir("dir_dotlog", "extra-icons/folder_tmp.svg", "Logs: '.log' folder at project's root level") - .eq(".log") - .inProjectRootFolder() - .autoLoadNewUIIconVariant(), - ofDir("dir_logs", "extra-icons/folder_tmp.svg", "Logs: 'logs' folder at project's root level") - .eq("logs") - .inProjectRootFolder() - .autoLoadNewUIIconVariant(), - ofDir("dir_dotlogs", "extra-icons/folder_tmp.svg", "Logs: '.logs' folder at project's root level") - .eq(".logs") - .inProjectRootFolder() - .autoLoadNewUIIconVariant(), - ofDir("dir_mergify", "extra-icons/folder_mergify.svg", "Mergify: .mergify folder") - .eq(".mergify"), - ofDir("dir_mps", "extra-icons/folder_idea.svg", "JetBrains MPS: .mps folder") - .eq(".mps"), - ofDir("dir_mvn", "extra-icons/folder_mvnw.svg", "Maven: .mvn folder") - .eq(".mvn"), - ofDir("dir_node_modules", "extra-icons/folder_node_modules.svg", "NodeJS: node_modules folder") - .eq("node_modules") - .altIcons("extra-icons/folder_node_modules_alt.svg", "extra-icons/folder_tmp.svg"), - ofDir("dir_nuget", "extra-icons/folder_nuget.svg", "Nuget: .nuget folder") - .eq(".nuget"), - ofDir("dir_pytest_cache", "extra-icons/folder_tmp.svg", "PyTest cache: .pytest_cache folder") - .eq(".pytest_cache") - .altIcons("extra-icons/folder_pytest_cache.svg") - .autoLoadNewUIIconVariant(), - ofDir("dir_python_venv", "extra-icons/folder_python_venv.svg", "Python Virtual Environment: .venv folder") - .eq(".venv") - .autoLoadNewUIIconVariant(), - ofDir("dir_python_venv_nodot", "extra-icons/folder_python_venv.svg", "Python Virtual Environment: venv folder") - .eq("venv") - .autoLoadNewUIIconVariant(), - ofDir("dir_python_egginfo", "extra-icons/folder_tmp.svg", "Python: .egg-info folder") - .end(".egg-info") - .autoLoadNewUIIconVariant(), - ofDir("dir_python_dottox", "extra-icons/folder_tmp.svg", "Python: .tox folder") - .eq(".tox") - .autoLoadNewUIIconVariant(), - ofDir("dir_teamcity", "extra-icons/folder_teamcity.svg", "TeamCity: .teamcity folder") - .eq(".teamcity") - .autoLoadNewUIIconVariant(), - ofDir("dir_vscode_settings", "extra-icons/folder_vscode.svg", "Visual Studio Code: .vscode folder") - .eq(".vscode"), - ofDir("dir_semaphoreci", "extra-icons/folder_semaphoreci.svg", "Semaphore: .semaphore folder") - .eq(".semaphore"), - ofDir("dir_expo", "extra-icons/expo_folder.svg", "Expo: .expo folder") - .eq(".expo"), - ofDir("dir_storybook", "extra-icons/folder_storybook.svg", "Storybook: .storybook folder") - .eq(".storybook") - .tags(ModelTag.STORYBOOK), - // - Flyway databases - ofDir("dir_flyway", "extra-icons/folder_flyway.svg", "Flyway (regex): '.*/db/migration/?'") - .regex(".*/db/migration/?") - .tags(ModelTag.FLYWAY), - ofDir("dir_flyway_db2", "extra-icons/folder_db2.svg", "Flyway, IBM DB2 database folder (regex): '.*/db/migration/db2[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/db2[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_h2", "extra-icons/folder_h2.svg", "Flyway, H2 database folder (regex): '.*/db/migration/h2[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/h2[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_hsqldb", "extra-icons/folder_hsqldb.svg", "Flyway, HSQLDB database folder (regex): '.*/db/migration/hsqldb[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/hsqldb[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_mariadb", "extra-icons/folder_mariadb.svg", "Flyway, MariaDB database folder (regex): '.*/db/migration/maria[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/maria[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_mysql", "extra-icons/folder_mysql.svg", "Flyway, MySQL database folder (regex): '.*/db/migration/mysql[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/mysql[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_postgresql", "extra-icons/folder_postgresql.svg", "Flyway, PostgreSQL database folder (regex): '.*/db/migration/postgre[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/postgre[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_sqlite", "extra-icons/folder_sqlite.svg", "Flyway, Sqlite database folder (regex): '.*/db/migration/sqlite[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/sqlite[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_oracle", "extra-icons/folder_oracle.svg", "Flyway, Oracle database folder (regex): '.*/db/migration/oracle[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/oracle[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_sqlserver", "extra-icons/folder_sqlserver.svg", "Flyway, MS SQL Server database folder (regex): '.*/db/migration/sqlserver[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/sqlserver[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - ofDir("dir_flyway_mssql", "extra-icons/folder_sqlserver.svg", "Flyway, MS SQL Server database folder (regex): '.*/db/migration/mssql[a-zA-Z0-9._\\-]*'") - .regex(".*/db/migration/mssql[a-zA-Z\\d._\\-]*") - .tags(ModelTag.FLYWAY) - .autoLoadNewUIIconVariant(), - // - Liquibase databases - ofDir("dir_liquibase", "extra-icons/folder_liquibase.svg", "Liquibase (regex): '.*/db/changelog/?'") - .regex(".*/db/changelog/?") - .tags(ModelTag.LIQUIBASE), - ofDir("dir_liquibase_db2", "extra-icons/folder_db2.svg", "Liquibase, IBM DB2 database folder (regex): '.*/db/changelog/db2[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/db2[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_h2", "extra-icons/folder_h2.svg", "Liquibase, H2 database folder (regex): '.*/db/changelog/h2[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/h2[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_hsqldb", "extra-icons/folder_hsqldb.svg", "Liquibase, HSQLDB database folder (regex): '.*/db/changelog/hsqldb[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/hsqldb[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_mariadb", "extra-icons/folder_mariadb.svg", "Liquibase, MariaDB database folder (regex): '.*/db/changelog/maria[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/maria[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_mysql", "extra-icons/folder_mysql.svg", "Liquibase, MySQL database folder (regex): '.*/db/changelog/mysql[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/mysql[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_postgresql", "extra-icons/folder_postgresql.svg", "Liquibase, PostgreSQL database folder (regex): '.*/db/changelog/postgre[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/postgre[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_sqlite", "extra-icons/folder_sqlite.svg", "Liquibase, Sqlite database folder (regex): '.*/db/changelog/sqlite[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/sqlite[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_oracle", "extra-icons/folder_oracle.svg", "Liquibase, Oracle database folder (regex): '.*/db/changelog/oracle[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/oracle[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_sqlserver", "extra-icons/folder_sqlserver.svg", "Liquibase, MS SQL Server database folder (regex): '.*/db/changelog/sqlserver[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/sqlserver[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - ofDir("dir_liquibase_mssql", "extra-icons/folder_sqlserver.svg", "Liquibase, MS SQL Server database folder (regex): '.*/db/changelog/mssql[a-zA-Z0-9._\\-]*'") - .regex(".*/db/changelog/mssql[a-zA-Z\\d._\\-]*") - .tags(ModelTag.LIQUIBASE) - .autoLoadNewUIIconVariant(), - // - - // - ofFile("kustomize", "extra-icons/kustomize.svg", "Kustomize: kustomization.yaml") - .eq("kustomization.yaml") - .altIcons("extra-icons/kustomize_alt.svg") - .tags(ModelTag.KUBERNETES), - // - - // - // git - ofDir("gitsubmodule", "extra-icons/git_submodule.svg", "Git sub-module containing folder") - .iconEnabler(IconEnablerType.IS_GIT_SUBMODULE_FOLDER) - .altIcons("extra-icons/git_submodule_alt.svg"), - // helm - ofDir("helm_dir", "extra-icons/helmDirectory.svg", "Helm chart containing folder") - .iconEnabler(IconEnablerType.IS_HELM_FOLDER) - .altIcons("extra-icons/helmlogo.svg", "extra-icons/helmlogo_alt.svg") - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofFile("helm_chart_yaml", "extra-icons/helmChart.svg", "Helm: Chart.yaml") - .eq("chart.yaml") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofFile("helm_requirements_yaml", "extra-icons/helmRequirementsYaml.svg", "Helm: requirements.yaml") - .eq("requirements.yaml") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofFile("helm_values_yaml", "extra-icons/helmValues.svg", "Helm: values.yaml") - .eq("values.yaml") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofDir("helm_charts_dir", "extra-icons/helmChartsDirectory.svg", "Helm: charts folder") - .eq("charts") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofDir("helm_templates_dir", "extra-icons/helmTemplatesDirectory.svg", "Helm: templates folder") - .eq("templates") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofDir("helm_templates_test_dir", "extra-icons/helmTemplatesTestDirectory.svg", "Helm: templates tests folder") - .eq("tests") - .parents("templates") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofFile("helm_helpers.tpl", "extra-icons/helmUndeployable.svg", "Helm: templates/_helpers.tpl") - .eq("_helpers.tpl") - .parents("templates") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofFile("helm_notes_txt", "extra-icons/helmNotes.svg", "Helm: templates/NOTES.txt") - .eq("notes.txt") - .parents("templates") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - ofFile("helm_all_yaml", "extra-icons/helm.svg", "Helm: *.yaml") - .end(".yaml") - .iconEnabler(IconEnablerType.IS_IN_HELM_FOLDER) - .altIcons("extra-icons/helmlogo.svg", "extra-icons/helmlogo_alt.svg") - .tags(ModelTag.HELM) - .autoLoadNewUIIconVariant(), - // writerside - ofFile("writerside_tree", "extra-icons/writerside_tree.svg", "Writerside: *.tree") - .end(".tree") - .iconEnabler(IconEnablerType.IS_IN_WRITERSIDE_FOLDER) - .tags(ModelTag.WRITERSIDE) - .autoLoadNewUIIconVariant(), - ofFile("writerside_list", "extra-icons/writerside_list.svg", "Writerside: *.list") - .end(".list") - .iconEnabler(IconEnablerType.IS_IN_WRITERSIDE_FOLDER) - .tags(ModelTag.WRITERSIDE) - .autoLoadNewUIIconVariant(), - // - - // - ofFile("angular_json", "extra-icons/angular2.svg", "Angular: angular.json") - .eq("angular.json") - .altIcons("extra-icons/angular_renaissance.svg") - .tags(ModelTag.ANGULAR2), - ofFile("angular_component_generic", "extra-icons/angular-component.svg", "Angular (if angular.json exists): *.component.(js|ts)") - .regex(".*[^a-zA-Z\\d]component\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_component_generic_test", "extra-icons/angular-component-test.svg", "Angular (if angular.json exists): *.component.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]component\\.spec\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_controller_generic", "extra-icons/angular-controller.svg", "Angular (if angular.json exists): *.controller.(js|ts)") - .regex(".*[^a-zA-Z\\d]controller\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_controller_generic_test", "extra-icons/angular-controller-test.svg", "Angular (if angular.json exists): *.controller.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]controller\\.spec\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_directive_generic", "extra-icons/angular-directive.svg", "Angular (if angular.json exists): *.directive.(js|ts)") - .regex(".*[^a-zA-Z\\d]directive(s)?\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_directive_generic_test", "extra-icons/angular-directive-test.svg", "Angular (if angular.json exists): *.directive.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]directive(s)?\\.spec\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_guard_generic", "extra-icons/angular-guard.svg", "Angular (if angular.json exists): *.guard.(js|ts)") - .regex(".*[^a-zA-Z\\d]guard\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_guard_generic_test", "extra-icons/angular-guard-test.svg", "Angular (if angular.json exists): *.guard.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]guard\\.spec\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_module_generic", "extra-icons/angular-module.svg", "Angular (if angular.json exists): *.module.(js|ts)") - .regex(".*[^a-zA-Z\\d]module\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_module_generic_test", "extra-icons/angular-module-test.svg", "Angular (if angular.json exists): *.module.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]module\\.spec\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_pipe_generic", "extra-icons/angular-pipe.svg", "Angular (if angular.json exists): *.pipe.(js|ts)") - .regex(".*[^a-zA-Z\\d]pipe\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_pipe_generic_test", "extra-icons/angular-pipe-test.svg", "Angular (if angular.json exists): *.pipe.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]pipe\\.spec\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_resolver_generic", "extra-icons/angular-resolver.svg", "Angular (if angular.json exists): *.resolver.(js|ts)") - .regex(".*[^a-zA-Z\\d]resolver\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_resolver_generic_test", "extra-icons/angular-resolver-test.svg", "Angular (if angular.json exists): *.resolver.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]resolver\\.spec\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_service_generic", "extra-icons/angular-service.svg", "Angular (if angular.json exists): *.service.(js|ts)") - .regex(".*[^a-zA-Z\\d]service\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_service_generic_test", "extra-icons/angular-service-test.svg", "Angular (if angular.json exists): *.service.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]service\\.spec\\.(js|ts)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2), - ofFile("angular_spec_generic_js", "extra-icons/test-javascript.svg", "Angular (if angular.json exists): *.spec.js") - .regex(".*[^a-zA-Z\\d]spec\\.js") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .altIcons("extra-icons/test-javascript_alt.svg") - .tags(ModelTag.ANGULAR2), - ofFile("angular_spec_generic", "extra-icons/test-ts.svg", "Angular (if angular.json exists): *.spec.(ts|tsx)") - .regex(".*[^a-zA-Z\\d]spec\\.(ts|tsx)") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .altIcons("extra-icons/test-ts_alt.svg") - .tags(ModelTag.ANGULAR2), - ofFile("angular_html", "extra-icons/html5.svg", "Angular (if angular.json exists): *.html") - .end(".html") - .iconEnabler(IconEnablerType.IS_IN_ANGULAR_FOLDER) - .tags(ModelTag.ANGULAR2, ModelTag.HTML), - // - - // - ofFile("flutter_pubspecyaml", "extra-icons/flutter.svg", "Flutter: pubspec.yaml") - .eq("pubspec.yaml") - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofFile("flutter_pubspeclock", "extra-icons/flutterlock.svg", "Flutter: pubspec.lock") - .eq("pubspec.lock") - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofFile("flutter_metadata", "extra-icons/flutter-metadata.svg", "Flutter: .metadata") - .eq(".metadata") - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofFile("flutter_analysisoptionsyaml", "extra-icons/flutter-analysisoptions.svg", "Flutter: analysis_options.yaml") - .eq("analysis_options.yaml") - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofDir("flutter_dirandroid", "extra-icons/folder_os_android.svg", "Flutter: android folder") - .eq("android") - .autoLoadNewUIIconVariant() - .inProjectRootFolder() - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofDir("flutter_dirlinux", "extra-icons/folder_os_linux.svg", "Flutter: linux folder") - .eq("linux") - .autoLoadNewUIIconVariant() - .inProjectRootFolder() - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofDir("flutter_dirwindows", "extra-icons/folder_os_windows.svg", "Flutter: windows folder") - .eq("windows") - .autoLoadNewUIIconVariant() - .inProjectRootFolder() - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofDir("flutter_dirios", "extra-icons/folder_os_ios.svg", "Flutter: ios folder") - .eq("ios") - .autoLoadNewUIIconVariant() - .inProjectRootFolder() - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofDir("flutter_dirmacos", "extra-icons/folder_os_macos.svg", "Flutter: macos folder") - .eq("macos") - .autoLoadNewUIIconVariant() - .inProjectRootFolder() - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofDir("flutter_dirweb", "extra-icons/folder_os_web.svg", "Flutter: web folder") - .eq("web") - .autoLoadNewUIIconVariant() - .inProjectRootFolder() - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - ofDir("flutter_dirdarttool", "extra-icons/folder_tmp.svg", "Flutter: .dart_tool folder") - .eq(".dart_tool") - .autoLoadNewUIIconVariant() - .inProjectRootFolder() - .iconEnabler(IconEnablerType.IS_IN_FLUTTER_FOLDER) - .tags(ModelTag.FLUTTER), - // - - // - ofFile("elixir", "extra-icons/elixir.svg", "Elixir: *.ex, *.exs") - .end(".ex", ".exs", "mix.lock"), - // - - // - ofFile("nestjs", "extra-icons/nestjs.svg", "NestJS: .nest-cli.json, nest-cli.json, nestconfig.json, .nestconfig.json") - .eq(".nest-cli.json", "nest-cli.json", "nestconfig.json", ".nestconfig.json") - .tags(ModelTag.NESTJS), - ofFile("nestjs_adapter", "extra-icons/nestjs_adapter.svg", "NestJS: *.adapter.(js|ts)") - .regex(".*[^a-zA-Z\\d]adapter\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_controller", "extra-icons/nestjs_controller.svg", "NestJS: *.controller.(js|ts)") - .regex(".*[^a-zA-Z\\d]controller\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_controller_test", "extra-icons/nestjs_controller_test.svg", "NestJS: *.controller.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]controller\\.spec\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_decorator", "extra-icons/nestjs_decorator.svg", "NestJS: *.decorator.(js|ts)") - .regex(".*[^a-zA-Z\\d]decorator\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_dto", "extra-icons/nestjs_dto.svg", "NestJS: *.dto.(js|ts)") - .regex(".*[^a-zA-Z\\d]dto\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_entity", "extra-icons/nestjs_entity.svg", "NestJS: *.entity.(js|ts)") - .regex(".*[^a-zA-Z\\d]entity\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_filter", "extra-icons/nestjs_filter.svg", "NestJS: *.filter.(js|ts)") - .regex(".*[^a-zA-Z\\d]filter\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_gateway", "extra-icons/nestjs_gateway.svg", "NestJS: *.gateway.(js|ts)") - .regex(".*[^a-zA-Z\\d]gateway\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_guard", "extra-icons/nestjs_guard.svg", "NestJS: *.guard.(js|ts)") - .regex(".*[^a-zA-Z\\d]guard\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_interceptor", "extra-icons/nestjs_interceptor.svg", "NestJS: *.interceptor.(js|ts)") - .regex(".*[^a-zA-Z\\d]interceptor\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_middleware", "extra-icons/nestjs_middleware.svg", "NestJS: *.middleware.(js|ts)") - .regex(".*[^a-zA-Z\\d]middleware\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_model", "extra-icons/nestjs_model.svg", "NestJS: *.model.(js|ts)") - .regex(".*[^a-zA-Z\\d]model\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_module", "extra-icons/nestjs_module.svg", "NestJS: *.module.(js|ts)") - .regex(".*[^a-zA-Z\\d]module\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_pipe", "extra-icons/nestjs_pipe.svg", "NestJS: *.pipe.(js|ts)") - .regex(".*[^a-zA-Z\\d]pipe\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_service", "extra-icons/nestjs_service.svg", "NestJS: *.service.(js|ts)") - .regex(".*[^a-zA-Z\\d]service\\.(js|ts)") - .tags(ModelTag.NESTJS), - ofFile("nestjs_service_test", "extra-icons/nestjs_service_test.svg", "NestJS: *.service.spec.(js|ts)") - .regex(".*[^a-zA-Z\\d]service\\.spec\\.(js|ts)") - .tags(ModelTag.NESTJS), - // - - // - ofFile("babel", "extra-icons/babel.svg", "Babel: babel.config.[json|js|cjs|mjs]|.babelrc.[json|js|cjs|mjs]|.babelrc") - .regex(".*/babel\\.config\\.(?:js(?:on)?|[cm]js)|\\.babelrc(?:\\.(?:js(?:on)?|[cm]js))?") - .altIcons("extra-icons/babel_alt.svg"), - ofFile("cookie", "extra-icons/cookie.svg", "Cookie (regex): .*cookie[a-zA-Z\\d_-]*\\.txt") - .regex(".*cookie[a-zA-Z\\d._\\-]*\\.txt$"), - ofFile("dotenv", "extra-icons/env.svg", "Dotenv: .*\\.env(\\.[a-zA-Z0-9]+)*") - .regex(".*\\.env[a-zA-Z\\d._\\-]*$") - .altIcons("extra-icons/env_alt.svg", "extra-icons/env_alt2.svg"), - ofFile("eslint", "extra-icons/eslint.svg", "Eslint (regex): .*\\.eslintrc(\\.[cm]?js(on)?|\\.y(a)?ml)?$") - .regex(".*\\.eslintrc(\\.[cm]?js(on)?|\\.y(a)?ml)?$"), - ofFile("githubactions", "extra-icons/github_action.svg", "GitHub Actions: .github/workflows/.*\\.yml") - .regex(".*/\\.github/workflows/.*\\.yml"), - ofFile("nodemon", "extra-icons/nodemon.svg", "Nodemon: ^\\.?nodemon\\.json$") - .regex(".^\\.?nodemon\\.json$"), - ofFile("tsconfig", "extra-icons/tsconfig.svg", "TSConfig: .*/\\.?tsconfig.*\\.(js|json)$") - .regex(".*/\\.?tsconfig.*\\.(js|json)$"), - ofFile("jsconfig", "extra-icons/jsconfig.svg", "JSConfig: .*/\\.?jsconfig.*\\.(js|json)$") - .regex(".*/\\.?jsconfig.*\\.(js|json)$"), - ofFile("typescript-def", "extra-icons/typescript-def.svg", "TypescriptDef: .*\\.d\\.ts$") - .regex(".*\\.d\\.ts$"), - ofFile("post-css", "extra-icons/postcss.svg", "PostCSS: .*\\.(pcss|postcss)$") - .regex(".*\\.(pcss|postcss)$"), - ofFile("post-css-config", "extra-icons/postcss.svg", "PostCSS Configuration: .*(\\.postcssrc|postcss\\.config)(\\.[cm]?js|ts|json|ya?ml)?$") - .regex(".*(\\.postcssrc|postcss\\.config)(\\.[cm]?js|ts|json|ya?ml)?$"), - ofFile("sequelize", "extra-icons/sequelize.svg", "Sequelize: .*\\.sequelizerc(\\.[cm]?js|\\.json)?$") - .regex(".*\\.sequelizerc(\\.[cm]?js|\\.json)?$"), - ofFile("svelte", "extra-icons/svelte.svg", "Svelte: .*\\.(svelte|svx)") - .regex(".*\\.(svelte|svx)"), - ofFile("tailwindcss", "extra-icons/tailwindcss.svg", "Tailwindcss Configuration: .*\\.?tailwind.*\\.[cm]?[jt]s$") - .regex(".*\\.?tailwind.*\\.[cm]?[jt]s$"), - ofFile("test-typescript", "extra-icons/test-ts.svg", "TestTypescript: .*\\.?(test|spec)\\.(ts|tsx)$") - .regex(".*\\.?(test|spec)\\.(ts|tsx)$") - .altIcons("extra-icons/test-ts_alt.svg"), - ofFile("test-javascript", "extra-icons/test-javascript.svg", "TestJavascript: .*\\.?(test|spec)\\.js$") - .regex(".*\\.?(test|spec)\\.js$") - .altIcons("extra-icons/test-javascript_alt.svg"), - ofFile("flyway", "extra-icons/flyway.svg", "Flyway (regex): '.*/db/migration/.*\\.sql'") - .regex(".*/db/migration/.*\\.sql") - .tags(ModelTag.FLYWAY) - .altIcons("extra-icons/flyway_alt.svg", "extra-icons/flyway_alt2.png"), - ofFile("liquibase", "extra-icons/liquibase.svg", "Liquibase (regex): '.*/db/changelog/.*\\.(sql|xml)'") - .regex(".*/db/changelog/.*\\.(sql|xml)") - .tags(ModelTag.LIQUIBASE) - .altIcons("extra-icons/liquibase_alt.svg"), - ofFile("mockk", "extra-icons/mockk.svg", "Mockk: io/mockk/settings.properties") - .regex(".*/io/mockk/settings\\.properties"), - ofFile("storybook", "extra-icons/storybook.svg", "Storybook: *.stor(y|ies).(js|jsx|ts|tsx|mdx)") - .regex(".*\\.stor(y|ies)\\.(js|jsx|ts|tsx|mdx)$") - .tags(ModelTag.STORYBOOK), - // - - // - ofFile("dependabot_config", "extra-icons/dependabot.svg", "Dependabot: .dependabot/config.yml") - .eq("config.yml").parents(".dependabot") - .altIcons("extra-icons/dependabot_alt.svg"), - ofFile("dependabot_github", "extra-icons/dependabot.svg", "Dependabot: .github/dependabot.yml") - .eq("dependabot").end(YML).parents(".github") - .altIcons("extra-icons/dependabot_alt.svg"), - ofFile("dependabot_gitlab", "extra-icons/dependabot.svg", "Dependabot: .gitlab/dependabot.yml") - .eq("dependabot").end(YML).parents(".gitlab") - .altIcons("extra-icons/dependabot_alt.svg"), - ofFile("golwroot", "extra-icons/glowroot.svg", "Glowroot: glowroot/admin.json and glowroot/config.json") - .eq("admin.json", "config.json").parents("glowroot"), - ofFile("jgitver", "extra-icons/jgitver.svg", "jgitver: .mvn/jgitver.config.xml") - .eq("jgitver.config.xml").parents(".mvn"), - ofFile("mergify1", "extra-icons/mergify.svg", "Mergify: .mergify.yml") - .eq(".mergify.yml"), - ofFile("mergify2", "extra-icons/mergify.svg", "Mergify: .mergify/config.yml") - .eq("config.yml").parents(".mergify"), - ofFile("mergify3", "extra-icons/mergify.svg", "Mergify: .github/mergify.yml") - .eq("mergify.yml").parents(".github"), - ofFile("nuget", "extra-icons/nuget.svg", "Nuget: .nuget/packages.config") - .eq("packages.config").parents(".nuget"), - ofFile("onap_cba_blueprint", "extra-icons/onap-cba-blueprint.svg", "ONAP CBA: Definitions/*blueprint.json") - .end("blueprint.json").parents("definitions") - .autoLoadNewUIIconVariant(), - ofFile("onap_cba_definitions", "extra-icons/onap-cba-definitions.svg", "ONAP CBA: Definitions/*(artifact_types, data_types, node_types, relationship_types, resources_definition_types).json") - .end("artifact_types.json", "data_types.json", "node_types.json", "relationship_types.json", "resources_definition_types.json").parents("definitions") - .autoLoadNewUIIconVariant(), - ofFile("onap_cba_tosca", "extra-icons/onap-cba-tosca.svg", "ONAP CBA: TOSCA-Metadata/*TOSCA.meta") - .end("tosca.meta").parents("tosca-metadata"), - ofFile("semaphoreci", "extra-icons/semaphoreci.svg", "Semaphore: .semaphore/semaphore.yml") - .eq("semaphore.yml").parents(".semaphore"), - ofFile("vscode_settings", "extra-icons/vscode.svg", "Visual Studio Code: .vscode/settings.json") - .eq("settings.json").parents(".vscode"), - // - - // - ofFile("vcskeep", "extra-icons/keep.svg", "Various VCS: .keep, .gitkeep, .hgkeep, .svnkeep") - .eq(".keep", ".gitkeep", ".hgkeep", ".svnkeep"), - ofFile("htaccess", "extra-icons/htaccess.svg", "Apache: .htaccess") - .eq(".htaccess"), - ofFile("android_manifest", "extra-icons/android.svg", "Android: androidmanifest.xml") - .eq("androidmanifest.xml") - .altIcons("extra-icons/android_alt.svg"), - ofFile("appveyor", "extra-icons/appveyor.svg", "Appveyor: appveyor.yml, .appveyor.yml") - .eq("appveyor.yml", ".appveyor.yml"), - ofFile("allcontributors", "extra-icons/allcontributors.svg", "All Contributors: .all-contributorsrc") - .eq(".all-contributorsrc"), - ofFile("archunit", "extra-icons/archunit.svg", "ArchUnit: archunit.properties") - .eq("archunit.properties"), - ofFile("author", "extra-icons/authors.svg", "Author: author(.md,.txt,.adoc,.rst), authors") - .eq("author", "authors").mayEnd(TXT) - .altIcons("extra-icons/authors_alt.svg", "extra-icons/authors_alt2.svg", - "extra-icons/authors_alt3.svg", "extra-icons/authors_alt4.svg"), - ofFile("bamboo", "extra-icons/bamboo.svg", "Bamboo: bamboo.yml") - .eq("bamboo.yml"), - ofFile("caddyfile", "extra-icons/caddy.svg", "Caddy: Caddyfile") - .eq("caddyfile"), - ofFile("cargo", "extra-icons/cargo.svg", "Cargo: cargo.toml") - .eq("cargo.toml"), - ofFile("commitlint", "extra-icons/commitlint.svg", "Commitlint: .commitlintrc, .commitlintrc.json, .commitlintrc.yaml, etc.") - .eq(".commitlintrc", ".commitlintrc.json", ".commitlintrc.yaml", ".commitlintrc.yml", - ".commitlintrc.js", ".commitlintrc.cjs", ".commitlintrc.ts", "commitlint.config.js", - "commitlint.config.cjs", "commitlint.config.ts"), - ofFile("coveralls", "extra-icons/coveralls.svg", "Coveralls: coveralls.json") - .eq("coveralls.json"), - ofFile("gradle_main", "extra-icons/gradle.svg", "Gradle: build.gradle, gradle.properties, settings.gradle") - .eq("build.gradle", "gradle.properties", "settings.gradle"), - ofFile("gradle_kotlin", "extra-icons/gradle_kotlin_colored.svg", "Gradle (Kotlin DSL): build.gradle.kts, settings.gradle.kts") - .eq("build.gradle.kts", "settings.gradle.kts") - .altIcons("extra-icons/gradle_kotlin.svg"), - ofFile("gradle", "extra-icons/gradlew.svg", "Gradle: gradlew") - .eq("gradlew"), - ofFile("gradlew", "extra-icons/gradlew.svg", "Gradle (Windows): gradlew.bat, gradlew.cmd") - .eq("gradlew.bat", "gradlew.cmd"), - ofFile("gradle_wrapper", "extra-icons/gradle.svg", "Gradle Wrapper: gradle-wrapper.jar, gradle-wrapper.properties") - .eq("gradle-wrapper.jar", "gradle-wrapper.properties"), - ofFile("gradle_lock", "extra-icons/gradle_lock.svg", "Gradle dependency versions lock: gradle.lockfile") - .eq("gradle.lockfile"), - ofFile("gradle_buildscriptlock", "extra-icons/gradle_lock.svg", "Gradle dependency versions lock: buildscript-gradle.lockfile") - .eq("buildscript-gradle.lockfile"), - ofFile("mvnw_linux", "extra-icons/mvnw.svg", "Maven: mvnw") - .eq("mvnw"), - ofFile("berksfile", "extra-icons/berkshelf.svg", "Berkshelf: berksfile") - .eq("berksfile"), - ofFile("berksfilelock", "extra-icons/berkshelflock.svg", "Berkshelf: berksfile.lock") - .eq("berksfile.lock"), - ofFile("bitbucket", "extra-icons/bitbucket.svg", "Bitbucket: bitbucket-pipelines.yml") - .eq("bitbucket-pipelines").end(YML), - ofFile("bower", "extra-icons/bower.svg", "Bower: bower.json, .bowerrc") - .eq("bower.json", ".bowerrc"), - ofFile("browserslist", "extra-icons/browserslist.svg", "Browserslist: browserslist, .browserslistrc") - .eq("browserslist", ".browserslistrc"), - ofFile("build", "extra-icons/build.svg", "Build: build(.md,.txt,.adoc,.rst), building") - .eq("build", "building").mayEnd(TXT), - ofFile("cache2k", "extra-icons/cache2k.svg", "cache2k: cache2k.xml") - .eq("cache2k.xml"), - ofFile("cassandra", "extra-icons/cassandra.svg", "Cassandra: cassandra(.yml,.yaml)") - .eq("cassandra").mayEnd(YML), - ofFile("cassandra1", "extra-icons/cassandra.svg", "Cassandra: start by 'cassandra' and end by '.yml,.yaml'") - .start("cassandra").end(YML), - ofFile("changelog", "extra-icons/changelog.svg", "Changelog: changelog(.md,.txt,.adoc,.rst), changes, release-notes, release_notes, releasenotes") - .eq("changelog", "changes", "release-notes", "release_notes", "releasenotes").mayEnd(TXT), - ofFile("circle", "extra-icons/circleci.svg", "Circle CI: circle.yml") - .eq("circle.yml"), - ofFile("circle1", "extra-icons/circleci.svg", "Circle CI: .circleci/config.yml") - .eq("config.yml").parents(".circleci"), - ofFile("cirrus", "extra-icons/cirrus.svg", "Cirrus CI: .cirrus.yml") - .eq(".cirrus.yml"), - ofFile("composer", "extra-icons/composer.svg", "Composer: composer.json, composer.lock") - .eq("composer.json", "composer.lock"), - ofFile("cypress", "extra-icons/cypress.svg", "Cypress: cypress.json") - .eq("cypress.json"), - ofFile("mvnw_windows", "extra-icons/mvnw.svg", "Maven (Windows): mvnw.bat, mvnw.cmd") - .eq("mvnw.bat", "mvnw.cmd"), - ofFile("codecov", "extra-icons/codecov.svg", "CodeCov: .codecov.yml, codecov.yml") - .eq(".codecov.yml", "codecov.yml"), - ofFile("codefresh", "extra-icons/codefresh.svg", "Codefresh: codefresh.yml") - .eq("codefresh.yml"), - ofFile("codacy", "extra-icons/codacy.svg", "Codacy: .codacy(.yml,.yaml), codacy(.yml,.yaml)") - .eq(".codacy", "codacy").mayEnd(YML), - ofFile("codeception", "extra-icons/codeception.svg", "Codeception: codeception.dist(.yml,.yaml)") - .eq("codeception.dist.yml").mayEnd(YML), - ofFile("codeship", "extra-icons/codeship.svg", "Codeship steps: codeship-steps(.xml,.yml,...)") - .eq("codeship-steps").mayEnd(CFG) - .altIcons("extra-icons/codeship_alt.png"), - ofFile("contact", "extra-icons/contact.svg", "Contact: contact(.md,.txt,.adoc,.rst), contacts") - .eq("contact", "contacts").mayEnd(TXT), - ofFile("contribute", "extra-icons/contributing.svg", "Contribution: contribute(.md,.txt,.adoc,.rst), contributing, contribution") - .eq("contribute", "contributing", "contribution").mayEnd(TXT) - .altIcons("extra-icons/contributing_alt.png", "extra-icons/contributing_alt2.svg"), - ofFile("coveragerc", "extra-icons/coveragerc.svg", "Python coverage: .coveragerc") - .eq(".coveragerc"), - ofFile("crowdin", "extra-icons/crowdin.svg", "Crowdin: .crowdin.yml") - .eq(".crowdin.yml"), - ofFile("deno", "extra-icons/deno.svg", "Deno: deno.json, deno.jsonc") - .eq("deno.json", "deno.jsonc"), - ofFile("deptective", "extra-icons/deptective.svg", "Deptective: deptective.json") - .eq("deptective.json"), - ofFile("docker", "extra-icons/docker_.svg", "Docker: dockerfile(.xml,.yml,...)") - .eq("dockerfile").mayEnd(CFG) - .altIcons("extra-icons/docker_alt.svg", "extra-icons/docker_alt2.svg") - .tags(ModelTag.DOCKER), - ofFile("dockercompose", "extra-icons/dockercompose_.svg", "Docker: docker-compose") - .eq("docker-compose").mayEnd(CFG) - .altIcons("extra-icons/dockercompose_alt.svg", "extra-icons/dockercompose_alt2.svg") - .tags(ModelTag.DOCKER), - ofFile("docker1", "extra-icons/docker_.svg", "Docker: start by 'dockerfile' and end by '.xml,.yml,...'") - .start("dockerfile").end(CFG) - .altIcons("extra-icons/docker_alt.svg", "extra-icons/docker_alt2.svg") - .tags(ModelTag.DOCKER), - ofFile("dockercompose1", "extra-icons/dockercompose_.svg", "Docker: start by 'docker-compose' and end by '.xml,.yml,...'") - .start("docker-compose").end(CFG) - .altIcons("extra-icons/dockercompose_alt.svg", "extra-icons/dockercompose_alt2.svg") - .tags(ModelTag.DOCKER), - ofFile("dockerignore", "extra-icons/dockerignore.svg", "Docker: .dockerignore") - .eq(".dockerignore") - .altIcons("extra-icons/dockerignore_alt.svg", "extra-icons/dockerignore_alt2.svg") - .tags(ModelTag.DOCKER), - ofFile("editorconfig", "extra-icons/editorconfig.svg", "EditorConfig: .editorconfig") - .eq(".editorconfig").mayEnd(CFG) - .altIcons("extra-icons/editorconfig_alt.svg", "extra-icons/editorconfig_alt2.svg"), - ofFile("elastic", "extra-icons/elasticsearch.svg", "Elasticsearch: elastic(.yml,.yaml)") - .eq("elastic").mayEnd(YML), - ofFile("elastic1", "extra-icons/elasticsearch.svg", "Elasticsearch: start by 'elastic' and end by '.yml,.yaml'") - .start("elastic").end(YML), - ofFile("expo_eas", "extra-icons/expo.svg", "Expo EAS: eas.json") - .eq("eas.json"), - ofFile("cerebro", "extra-icons/elastic-cerebro.svg", "Cerebro: cerebro(.conf)") - .eq("cerebro").mayEnd(".conf"), - ofFile("cerebro1", "extra-icons/elastic-cerebro.svg", "Cerebro: start by 'cerebro' and end by '.conf'") - .start("cerebro").end(".conf"), - ofFile("detekt", "extra-icons/detekt.svg", "Detekt: end by 'detekt-config.yml' or 'detekt.yml'") - .end("detekt-config.yml", "detekt.yml"), - ofFile("faq", "extra-icons/faq.svg", "FAQ: faq(.md,.txt,.adoc,.rst)") - .eq("faq").mayEnd(TXT) - .altIcons("extra-icons/faq_alt.svg", "extra-icons/faq_alt2.svg", - "extra-icons/faq_alt3.svg", "extra-icons/faq_alt4.svg"), - ofFile("help", "extra-icons/faq.svg", "HELP: help(.md,.txt,.adoc,.rst)") - .eq("help").mayEnd(TXT) - .altIcons("extra-icons/faq_alt.svg", "extra-icons/faq_alt2.svg", - "extra-icons/faq_alt3.svg", "extra-icons/faq_alt4.svg"), - ofFile("intellijcodestyle", "extra-icons/jetbrains.svg", "IntelliJ: intellijcodestyle.xml") - .eq("intellijcodestyle.xml"), - ofFile("mailmap", "extra-icons/email.svg", "Mailmap: .mailmap") - .eq(".mailmap"), - ofFile("msazure", "extra-icons/msazure.svg", "Microsoft Azure: azure-pipelines.yml") - .eq("azure-pipelines.yml"), - ofFile("msazure1", "extra-icons/msazure.svg", "Microsoft Azure: start by 'azure-pipelines' and end by '.yml'") - .start("azure-pipelines").end(".yml"), - ofFile("gatling", "extra-icons/gatling.svg", "Gatling: gatling(.conf)") - .eq("gatling").mayEnd(".conf"), - ofFile("gatling1", "extra-icons/gatling.svg", "Gatling: start by 'gatling' and end by '.conf'") - .start("gatling").end(".conf"), - ofFile("gitpod", "extra-icons/gitpod.svg", "Gitpod: .gitpod.yml") - .start(".gitpod").end(YML), - ofFile("golangarchlinter", "extra-icons/golangarchlinter.svg", "GoLang Arch Linter: .go-arch-lint.yml") - .start(".go-arch-lint.yml"), - ofFile("goreleaser", "extra-icons/goreleaser.svg", "GoReleaser: .goreleaser.yml") - .start(".goreleaser.yml") - .altIcons("extra-icons/goreleaser_alt.svg"), - ofFile("grunt", "extra-icons/grunt.svg", "Grunt: Gruntfile.js") - .eq("gruntfile.js"), - ofFile("git", "extra-icons/git.svg", "Git: .gitattributes, .gitignore, .gitmodules, .gitreview") - .eq(".gitattributes", ".gitignore", ".gitmodules", ".gitreview"), - ofFile("gitblameignorerevs", "extra-icons/git.svg", "Git: .git-blame-ignore-revs") - .eq(".git-blame-ignore-revs"), - ofFile("gitlab", "extra-icons/gitlab.svg", "Gitlab: .gitlab-ci.yml") - .eq(".gitlab-ci.yml") - .altIcons("extra-icons/gitlab_next.svg", "extra-icons/gitlab_alt.svg"), - ofFile("grafana", "extra-icons/grafana.svg", "Grafana: grafana.ini") - .eq("grafana.ini"), - ofFile("graphqlconfig", "extra-icons/graphql_config.svg", "GraphQL: graphql.config.json") - .eq("graphql.config.json"), - ofFile("graphqlresolver", "extra-icons/graphql.svg", "GraphQL Resolvers: *.resolver.*") - .regex(".+\\.resolver\\..+") - .iconEnabler(IconEnablerType.IS_IN_GRAPHQL_FOLDER), - ofFile("graphqlschema", "extra-icons/graphql_schema.svg", "GraphQL: graphql.schema.json") - .eq("graphql.schema.json"), - ofFile("gocd", "extra-icons/gocd.svg", "Gocd: .gocd(.xml,.yml,...)") - .eq(".gocd").mayEnd(CFG), - ofFile("gomod", "extra-icons/gomod.svg", "Go: go.mod") - .eq("go.mod") - .altIcons("extra-icons/gomod_alt.svg"), - ofFile("hadolint", "extra-icons/hadolint.svg", "Hadolint: .hadolint.yaml, .hadolint.yml") - .eq(".hadolint").end(YML), - ofFile("hibernate", "extra-icons/hibernate.svg", "Hibernate: hibernate.properties") - .eq("hibernate.properties"), - ofFile("java", "extra-icons/java.svg", "JVM properties (e.g. Tomcat or Maven JVM configuration): jvm.properties, jvm.config") - .eq("jvm.properties", "jvm.config") - .altIcons("extra-icons/java_alt.png"), - ofFile("imgbot", "extra-icons/imgbot.svg", "ImgBot: .imgbotconfig") - .eq(".imgbotconfig"), - ofFile("jenkins", "extra-icons/jenkins.svg", "Jenkins: jenkinsfile(.xml,.yml,...), jenkins") - .eq("jenkinsfile", "jenkins").mayEnd(CFG) - .altIcons("extra-icons/jenkins_alt.png"), - ofFile("jenkins1", "extra-icons/jenkins.svg", "Jenkins: start by 'jenkins and end by '.xml,.yml,...'") - .start("jenkins").end(CFG) - .altIcons("extra-icons/jenkins_alt.png"), - ofFile("jenkins2", "extra-icons/jenkins.svg", "Jenkins: start by 'jenkins' and contain no dot") - .start("jenkins").noDot() - .altIcons("extra-icons/jenkins_alt.png"), - ofFile("jenkins3", "extra-icons/jenkins.svg", "Jenkins: end by '.jenkinsfile'") - .end(".jenkinsfile") - .altIcons("extra-icons/jenkins_alt.png"), - ofFile("jest_js", "extra-icons/jest.svg", "Jest: jest.config.js") - .eq("jest.config.js"), - ofFile("jest_ts", "extra-icons/jest.svg", "Jest: jest.config.ts") - .eq("jest.config.ts"), - ofFile("jitpack", "extra-icons/jitpack.svg", "JitPack: jitpack.yml") - .eq("jitpack.yml"), - ofFile("jsbeautify", "extra-icons/jsbeautify.svg", "JSBeautify: .jsbeautifyrc(.xml,.yml,...)") - .eq(".jsbeautifyrc").mayEnd(CFG) - .altIcons("extra-icons/jsbeautify_alt.svg"), - ofFile("jshint", "extra-icons/jshint.svg", "JSHint: .jshintrc(.xml,.yml,...)") - .eq(".jshintrc").mayEnd(CFG), - ofFile("junit", "extra-icons/junit5_transparent.svg", "JUnit: junit-platform.properties") - .eq("junit-platform.properties") - .altIcons("extra-icons/junit5_white.svg", "extra-icons/junit5.png"), - ofFile("just", "extra-icons/just.svg", "Just: justfile") - .eq("justfile") - .altIcons("extra-icons/just_alt.svg"), - ofFile("karate", "extra-icons/karate.svg", "Karate: karate-config.js") - .eq("karate-config.js"), - ofFile("karma_js", "extra-icons/karma.svg", "Karma: karma.conf.js") - .eq("karma.conf.js"), - ofFile("karma_ts", "extra-icons/karma.svg", "Karma: karma.conf.ts") - .eq("karma.conf.ts"), - ofFile("kibana", "extra-icons/kibana.svg", "Kibana: kibana(.xml,.yml,...)") - .eq("kibana").mayEnd(YML), - ofFile("kibana1", "extra-icons/kibana.svg", "Kibana: start by 'kibana' and end by '.xml,.yml,...'") - .start("kibana").end(YML), - ofFile("knownissues", "extra-icons/bug.svg", "Known issues: known_issues(.md,.txt,.adoc,.rst)") - .start("known_issues").mayEnd(TXT), - ofFile("kubernetes", "extra-icons/kubernetes.svg", "Kubernetes: kubernetes(.xml,.yml,...)") - .eq("kubernetes").mayEnd(YML) - .altIcons("extra-icons/kubernetes_alt.svg", "extra-icons/kubernetes_alt2.svg") - .tags(ModelTag.KUBERNETES), - ofFile("kubernetes1", "extra-icons/kubernetes.svg", "Kubernetes: start by 'kubernetes' and end by '.xml,.yml,...'") - .start("kubernetes").end(YML) - .altIcons("extra-icons/kubernetes_alt.svg", "extra-icons/kubernetes_alt2.svg") - .tags(ModelTag.KUBERNETES), - ofFile("lerna", "extra-icons/lerna.svg", "Lerna: lerna.json") - .eq("lerna.json"), - ofFile("lgtm", "extra-icons/lgtm.svg", "LGTM: .lgtm.yml, lgtm.yml") - .eq("lgtm", ".lgtm").end(YML) - .altIcons("extra-icons/lgtm_alt.svg"), - ofFile("license", "extra-icons/license.svg", "License: license(.md,.txt,.adoc,.rst), copying, license_info, additional_license_info") - .eq("license", "copying", "license_info", "additional_license_info").mayEnd(TXT) - .altIcons("extra-icons/license_alt.png"), - ofFile("lighttpd", "extra-icons/lighttpd.svg", "Lighttpd: lighttpd.conf") - .eq("lighttpd.conf"), - ofFile("log4j", "extra-icons/log4j.svg", "Log4j: log4j(.xml,.yml,...), log4j-test") - .eq("log4j", "log4j-test").mayEnd(CFG), - ofFile("logback", "extra-icons/logback.svg", "Logback: logback(.xml,.yml,...)") - .eq("logback").mayEnd(CFG), - ofFile("logback1", "extra-icons/logback.svg", "Logback: start by 'logback-' and end by '.xml,.yml,...'") - .start("logback-").mayEnd(CFG), - ofFile("logstash", "extra-icons/logstash.svg", "Logstash: logstash(.cfg,.conf,.yml,.yaml)") - .eq("logstash").mayEnd(".cfg", ".conf", ".yml", ".yaml"), - ofFile("logstash1", "extra-icons/logstash.svg", "Logstash: start by 'logstash' and end by '.cfg,.conf,.yml,.yaml'") - .start("logstash").end(".cfg", ".conf", ".yml", ".yaml"), - ofFile("logstash2", "extra-icons/logstash.svg", "Logstash: start by 'logstash-' and end by '.cfg,.conf,.yml,.yaml,.txt'") - .start("logstash-").end(".cfg", ".conf", ".yml", ".yaml", ".txt"), - ofFile("lombok", "extra-icons/lombok.svg", "Lombok: lombok.config") - .eq("lombok.config"), - ofFile("maven_shade_plugin", "extra-icons/generated_pom.svg", "Maven Shade Plugin: dependency-reduced-pom.xml") - .eq("dependency-reduced-pom.xml") - .altIcons("extra-icons/generated_pom_alt.svg"), - ofFile("metro", "extra-icons/metro.svg", "Metro config: metro.config.js") - .eq("metro.config.js"), - ofFile("mkdocs", "extra-icons/mkdocs.svg", "MkDocs: mkdocs.yml") - .eq("mkdocs.yml"), - ofFile("moduleinfojava", "extra-icons/moduleinfo.svg", "Java module: module-info.java") - .eq("module-info.java") - .altIcons("extra-icons/moduleinfo_alt.svg"), - ofFile("mongodb", "extra-icons/mongodb.svg", "MongoDB related files: *.mongo.*)") - .regex(".*\\.mongo\\..+"), - ofFile("muse", "extra-icons/muse.svg", "Muse: .muse.toml") - .eq(".muse.toml"), - ofFile("mysql", "extra-icons/my.svg", "MySQL: my.ini") - .eq("my.ini"), - ofFile("netlify", "extra-icons/netlify.svg", "Netlify: netlify.toml") - .eq("netlify.toml"), - ofFile("nginx", "extra-icons/nginx.svg", "Nginx: nginx(.conf)") - .eq("nginx").mayEnd(".conf"), - ofFile("nginx1", "extra-icons/nginx.svg", "Nginx: start by 'nginx' and end by '.conf'") - .start("nginx").end(".conf"), - ofFile("npmrc", "extra-icons/npm.svg", "NPM: .npmrc") - .eq(".npmrc"), - ofFile("npmignore", "extra-icons/npmignore.svg", "NPM: .npmignore") - .eq(".npmignore"), - ofFile("noai", "extra-icons/noai.svg", "AI Assistant: .noai (block AI features for the project)") - .eq(".noai") - .inProjectRootFolder() - .altIcons("extra-icons/noai_alt.svg"), - ofFile("notice", "extra-icons/notice.svg", "Notice: notice(.md,.txt,.adoc,.rst)") - .eq("notice").mayEnd(TXT), - ofFile("nox", "extra-icons/nox.svg", "Nox: noxfile.py") - .eq("noxfile.py"), - ofFile("nx", "extra-icons/nx.svg", "Nx: nx.json") - .eq("nx.json") - .altIcons("extra-icons/nx_alt.svg"), - ofFile("openissues", "extra-icons/bug.svg", "Open issues: open_issues(.md,.txt,.adoc,.rst)") - .start("open_issues").mayEnd(TXT), - ofFile("packageinfojava", "extra-icons/packageinfojava.svg", "Java package info: package-info.java") - .eq("package-info.java"), - ofFile("packagejson", "extra-icons/npm.svg", "NPM: package.json") - .eq("package.json"), - ofFile("packagejsonlock", "extra-icons/packagejsonlock.svg", "NPM: package-lock.json") - .eq("package-lock.json"), - ofFile("poetry-poetry-lock", "extra-icons/poetry_lock.svg", "Poetry: poetry.lock") - .eq("poetry.lock"), - ofFile("poetry-poetry-toml", "extra-icons/poetry.svg", "Poetry: poetry.toml") - .eq("poetry.toml"), - ofFile("pdd", "extra-icons/pdd.svg", "Puzzle Driven Development: .pdd") - .eq(".pdd"), - ofFile("pdd_yml", "extra-icons/pdd.svg", "Puzzle Driven Development: .0pdd.yml") - .eq(".0pdd.yml"), - ofFile("pnpmlock", "extra-icons/pnpm.svg", "PNPM: pnpm-lock.yaml") - .eq("pnpm-lock.yaml"), - ofFile("prettier", "extra-icons/prettier.svg", "Prettier: .prettierrc") - .eq(".prettierrc") - .tags(ModelTag.PRETTIER) - .altIcons("extra-icons/prettier_alt.svg"), - ofFile("prettier-yml", "extra-icons/prettier.svg", "Prettier: .prettierrc.yml, .prettierrc.yaml") - .eq(".prettierrc.yml", ".prettierrc.yaml") - .tags(ModelTag.PRETTIER) - .altIcons("extra-icons/prettier_alt.svg"), - ofFile("prettier-json", "extra-icons/prettier.svg", "Prettier: .prettierrc.json, .prettierrc.json5") - .eq(".prettierrc.json", ".prettierrc.json5") - .tags(ModelTag.PRETTIER) - .altIcons("extra-icons/prettier_alt.svg"), - ofFile("prettier-js", "extra-icons/prettier.svg", "Prettier: .prettierrc.js, prettier.config.js") - .eq(".prettierrc.js", "prettier.config.js") - .tags(ModelTag.PRETTIER) - .altIcons("extra-icons/prettier_alt.svg"), - ofFile("prettier-cjs", "extra-icons/prettier.svg", "Prettier: .prettierrc.cjs, prettier.config.cjs") - .eq(".prettierrc.cjs", "prettier.config.cjs") - .tags(ModelTag.PRETTIER) - .altIcons("extra-icons/prettier_alt.svg"), - ofFile("prettier-toml", "extra-icons/prettier.svg", "Prettier: .prettierrc.toml") - .eq(".prettierrc.toml") - .tags(ModelTag.PRETTIER) - .altIcons("extra-icons/prettier_alt.svg"), - ofFile("prettier-config-mjs", "extra-icons/prettier.svg", "Prettier: prettier.config.mjs") - .eq("prettier.config.mjs") - .tags(ModelTag.PRETTIER) - .altIcons("extra-icons/prettier_alt.svg"), - ofFile("prettirrc-mjs", "extra-icons/prettier.svg", "Prettier: .prettirrc.mjs") - .eq(".prettirrc.mjs") - .tags(ModelTag.PRETTIER) - .altIcons("extra-icons/prettier_alt.svg"), - ofFile("prettierignore", "extra-icons/prettierignore.svg", "Prettier: .prettierignore") - .eq(".prettierignore") - .tags(ModelTag.PRETTIER), - ofFile("privacy", "extra-icons/privacy.svg", "Privacy: privacy(.md,.txt,.adoc,.rst)") - .eq("privacy").mayEnd(TXT), - ofFile("proguard", "extra-icons/proguard.svg", "Proguard: proguard-rules.pro") - .eq("proguard-rules.pro"), - ofFile("prometheus", "extra-icons/prometheus.svg", "Prometheus: prometheus(.yml,.yaml)") - .eq("prometheus").end(YML), - ofFile("puppet", "extra-icons/puppet.svg", "Puppet: puppet(.conf)") - .eq("puppet").mayEnd(".conf"), - ofFile("puppet1", "extra-icons/puppet.svg", "Puppet: start by 'puppet' and end by '.conf'") - .start("puppet").end(".conf"), - ofFile("pytest", "extra-icons/pytest.svg", "Pytest: pytest.ini") - .eq("pytest.ini"), - ofFile("qodana", "extra-icons/qodana.svg", "Qodana: qodana.yaml") - .eq("qodana.yaml") - .altIcons("extra-icons/qodana_alt.svg"), - ofFile("readme", "extra-icons/readme.svg", "Readme: readme(.md,.txt,.adoc,.rst), lisezmoi") - .eq("readme", "lisezmoi").mayEnd(TXT) - .altIcons("extra-icons/readme_alt.svg", "extra-icons/readme_alt2.svg"), - ofFile("redis", "extra-icons/redis.svg", "Redis: redis(.conf)") - .eq("redis").mayEnd(".conf"), - ofFile("redis1", "extra-icons/redis.svg", "Redis: start by 'redis' and end by '.conf'") - .start("redis").end(".conf"), - ofFile("rego", "extra-icons/rego.svg", "Rego (Open Policy Agent): end by '.rego' or '.opa'") - .end(".opa", ".rego"), - ofFile("renovate", "extra-icons/renovate.svg", "Renovate: renovate.json, renovate.json5, .renovaterc.json, .renovaterc") - .eq("renovate.json", "renovate.json5", ".renovaterc.json", ".renovaterc"), - ofFile("requirementstxt_python", "extra-icons/requirementstxt_python.svg", "Python: requirements.txt (Python facet only)") - .eq("requirements.txt") - .facets("python") - .altIcons("extra-icons/requirementstxt_python_alt.svg"), - ofFile("restyled", "extra-icons/restyled.svg", "Restyled: .restyled.yaml") - .eq(".restyled.yaml") - .altIcons("extra-icons/restyled_alt.svg", "extra-icons/restyled_alt2.svg"), - ofFile("roadmap", "extra-icons/roadmap.svg", "Roadmap: roadmap(.md,.txt,.adoc,.rst)") - .eq("roadmap").mayEnd(TXT), - ofFile("rollup", "extra-icons/rollup.svg", "Rollup: rollup.config.js") - .eq("rollup.config.js"), - ofFile("rultor", "extra-icons/rultor.svg", "Rultor: .rultor.yml") - .eq(".rultor.yml"), - ofFile("scalingo", "extra-icons/scalingo.svg", "Scalingo: scalingo.json") - .eq("scalingo.json"), - ofFile("security", "extra-icons/security.svg", "Security: security(.md,.txt,.adoc,.rst)") - .eq("security").mayEnd(TXT), - ofFile("snapcraft", "extra-icons/snap.svg", "Snapcraft: snapcraft.yaml") - .eq("snapcraft.yaml"), - ofFile("screwdriver", "extra-icons/screwdriver.svg", "Screwdriver: screwdriver.yaml") - .eq("screwdriver.yaml"), - ofFile("stacksmith", "extra-icons/bitnami.svg", "Bitnami Stacksmith: stackerfile.yml") - .eq("stackerfile.yml"), - ofFile("sonar", "extra-icons/sonar.svg", "Sonar: sonar-project.properties") - .eq("sonar-project.properties", ".sonarcloud.properties"), - ofFile("svgo", "extra-icons/svgo.svg", "SVGO: svgo(.yml,.yaml)") - .eq("svgo").end(YML) - .altIcons("extra-icons/svgo_alt.svg"), - ofFile("svgo2", "extra-icons/svgo.svg", "SVGO: svgo.config.js") - .eq("svgo.config.js") - .altIcons("extra-icons/svgo_alt.svg"), - ofFile("swaggerconfig", "extra-icons/swagger.svg", "Swagger: swagger-config.yaml") - .eq("swagger-config.yaml") - .altIcons("extra-icons/swagger_alt.svg"), - ofFile("swaggerignore", "extra-icons/swaggerignore.svg", "Swagger: .swagger-codegen-ignore") - .eq(".swagger-codegen-ignore"), - ofFile("tinylogproperties", "extra-icons/tinylog_properties.svg", "Tinylog: tinylog.properties") - .eq("tinylog.properties"), - ofFile("testing", "extra-icons/testing.svg", "Test: test(.md,.txt,.adoc,.rst), testing") - .eq("test", "testing").mayEnd(TXT), - ofFile("todo", "extra-icons/todo.svg", "To-Do: todo(.md,.txt,.adoc,.rst)") - .eq("todo").mayEnd(TXT) - .altIcons("extra-icons/todo_alt.svg"), - ofFile("tox", "extra-icons/tox.svg", "Tox: tox.ini") - .eq("tox.ini"), - ofFile("travis", "extra-icons/travis.svg", "Travis CI: .travis.yml") - .eq(".travis.yml") - .altIcons("extra-icons/travis_alt.svg", "extra-icons/travis_alt02.svg", - "extra-icons/travis_alt03.svg", "extra-icons/travis_alt04.svg", - "extra-icons/travis_alt05.svg", "extra-icons/travis_alt06.svg", - "extra-icons/travis_alt07.svg", "extra-icons/travis_alt08.svg", - "extra-icons/travis_alt09.svg", "extra-icons/travis_alt10.svg", - "extra-icons/travis_alt11.svg", "extra-icons/travis_alt12.svg", - "extra-icons/travis_alt13.svg", "extra-icons/travis_alt14.svg") - .tags(ModelTag.TRAVIS), - ofFile("vagrant", "extra-icons/vagrant.svg", "Vagrant: vagrantfile") - .eq("vagrantfile"), - ofFile("version", "extra-icons/version.svg", "Version: (.)version(s)(.md,.txt,.adoc,.rst)") - .eq("version", ".version", "versions", ".versions").mayEnd(TXT), - ofFile("version_json", "extra-icons/version.svg", "Version: (.)version(s).json") - .eq("version", ".version", "versions", ".versions").end(".json"), - ofFile("version_properties", "extra-icons/version.svg", "Version: (.)version(s).properties") - .eq("version", ".version", "versions", ".versions").end(".properties"), - ofFile("version_yml", "extra-icons/version.svg", "Version: (.)version(s).y(a)ml") - .eq("version", ".version", "versions", ".versions").end(YML), - ofFile("version_xml", "extra-icons/version.svg", "Version: (.)version(s).xml") - .eq("version", ".version", "versions", ".versions").end(".xml"), - ofFile("vite", "extra-icons/vite.svg", "Vite: ^vite\\.config\\.[jt]s$") - .start("vite.config.").end(".js", ".ts") - .altIcons("extra-icons/vite_alt.svg"), - ofFile("vitest", "extra-icons/vitest.svg", "Vitest: vitest.config.ts") - .eq("vitest.config.ts"), - ofFile("weblate", "extra-icons/weblate.svg", "Weblate: .weblate") - .eq(".weblate"), - ofFile("webpack", "extra-icons/webpack.svg", "Webpack: webpack.conf.js") - .start("webpack.config.").end(".js", ".ts") - .altIcons("extra-icons/webpack_alt.svg"), - ofFile("werf", "extra-icons/werf.svg", "Werf: werf.yaml") - .eq("werf.yaml"), - ofFile("writerside", "extra-icons/writerside_cfg.svg", "Writerside: writerside.cfg") - .eq("writerside.cfg") - .tags(ModelTag.WRITERSIDE), - ofFile("zalando", "extra-icons/zalando.svg", "Zalando Zappr: .zappr.yaml") - .eq(".zappr.yaml"), - // - - // - ofFile("ext_aac", "extra-icons/aac.svg", "Advanced Audio Coding: *.aac") - .end(".aac"), - ofFile("ext_archive", "extra-icons/archive.svg", "Archive: *.zip, *.tar, *.gz, *.bz2, *.xz, *.tgz") - .end(".zip", ".tar", ".gz", ".bz2", ".xz", ".tgz") - .autoLoadNewUIIconVariant(), - ofFile("ext_archive_7z", "extra-icons/archive.svg", "Archive: *.7z") - .end(".7z") - .altIcons("extra-icons/7zip.svg") - .autoLoadNewUIIconVariant(), - ofFile("ext_adoc", "extra-icons/asciidoc.svg", "Asciidoc: *.adoc, *.asciidoc") - .end(".adoc", ".asciidoc") - .altIcons("extra-icons/asciidoc_alt.svg"), - ofFile("ext_monkeys-audio", "extra-icons/monkey's_audio.svg", "Monkey's Audio: *.ape") - .end(".ape"), - ofFile("ext_apk", "extra-icons/apk.svg", "Android application package (APK): *.apk, *.xapk") - .end(".apk", ".xapk"), - ofFile("ext_apple-audio", "extra-icons/apple.svg", "Apple Audio: *.aiff, *.aifc, *.caf") - .end(".aiff", ".aifc", ".caf"), - ofFile("ext_apple-video", "extra-icons/apple.svg", "Apple Video: *.mov, *.qt") - .end(".mov", ".qt"), - ofFile("ext_avro_avsc", "extra-icons/avro.svg", "Avro: *.avsc") - .end(".avsc") - .autoLoadNewUIIconVariant(), - ofFile("bicep", "extra-icons/bicep.svg", "Bicep: *.bicep") - .altIcons("extra-icons/bicep_alt.svg", "extra-icons/bicep_alt2.svg") - .end("bicep"), - ofFile("ext_bin", "extra-icons/binary.svg", "Binary: *.bin") - .end(".bin") - .altIcons("extra-icons/binary_alt.svg", "extra-icons/binary_alt2.svg"), - ofFile("ext_back", "extra-icons/backup.svg", "Backup: *.versionbackup, *.versionsbackup, *.bak, *.back, *.backup, *.old, *.prev, *.revert, *.releaseBackup") - .end(".versionbackup", ".versionsbackup", ".bak", ".back", ".backup", ".old", ".prev", ".revert", ".releasebackup"), - ofFile("ext_sh", "extra-icons/bash.svg", "Bash: *.sh") - .end(".sh"), - ofFile("ext_c", "extra-icons/c.svg", "C: *.c") - .end(".c") - .autoLoadNewUIIconVariant(), - ofFile("ext_cc", "extra-icons/cpp.svg", "C++: *.cc") - .end(".cc") - .autoLoadNewUIIconVariant(), - ofFile("ext_cpp", "extra-icons/cpp.svg", "C++: *.cpp") - .end(".cpp") - .autoLoadNewUIIconVariant(), - ofFile("ext_h", "extra-icons/h.svg", "C/C++: *.h") - .end(".h") - .autoLoadNewUIIconVariant(), - ofFile("ext_hpp", "extra-icons/h.svg", "C/C++: *.hpp") - .end(".hpp") - .autoLoadNewUIIconVariant(), - ofFile("ext_cert", "extra-icons/certificate.svg", "Certificate: *.jks, *.pem, *.crt, *.cert, *.ca-bundle, *.cer, ...") - .end(".jks", ".pem", ".crt", ".cert", ".ca-bundle", ".cer", ".jceks", ".p12", ".p7b", ".p7s", ".pfx", ".pubkey") - .altIcons("extra-icons/certificate_alt.svg"), - ofFile("ext_cmd", "extra-icons/cmd.svg", "Windows script: *.cmd, *.bat, *.ps1") - .end(".cmd", ".bat", ".ps1"), - ofFile("ext_csv", "extra-icons/officedocs/msexcel-papirus.svg", "CSV: *.csv") - .end(".csv") - .altIcons("extra-icons/csv_alt.svg"), - ofFile("ext_dar", "extra-icons/jar.svg", "Diffusion Archive / XL Deploy Archive: *.dar") - .end(".dar"), - ofFile("ext_deb", "extra-icons/deb.svg", "Debian package: *.deb") - .end(".deb"), - ofFile("ext_dll", "extra-icons/binary.svg", "Windows DLL: *.dll") - .end(".dll") - .altIcons("extra-icons/binary_alt.svg", "extra-icons/binary_alt2.svg"), - ofFile("ext_drawio", "extra-icons/drawio.svg", "Draw.io: *.drawio, *.dio") - .end(".drawio", ".dio") - .altIcons("extra-icons/drawio_alt.svg", "extra-icons/drawio_alt2.png"), - ofFile("ext_epub", "extra-icons/epub.svg", "Epub: *.epub, *.mobi, *.azw, *.azw3") - .end(".epub", ".mobi", ".azw", ".azw3"), - ofFile("ext_exe", "extra-icons/msexe.svg", "Windows executable: *.exe") - .end(".exe"), - ofFile("ext_form", "extra-icons/form.svg", "Form (e.g. IntelliJ Swing xml form): *.form") - .end(".form"), - ofFile("ext_graphqls", "extra-icons/graphql.svg", "GraphQL: *.graphqls") - .end(".graphqls"), - ofFile("ext_haxe", "extra-icons/haxe.svg", "Haxe: *.hx") - .end(".hx"), - ofFile("ext_haxexml", "extra-icons/haxehxml.svg", "Haxe: *.hxml") - .end(".hxml"), - ofFile("ext_http", "extra-icons/http.png", "HTTP (e.g. IntelliJ HTTP Client queries file): *.http") - .end(".http") - .altIcons("extra-icons/http_alt.svg"), - ofFile("ext_iml", "extra-icons/jetbrains.svg", "IntelliJ project: *.iml") - .end(".iml"), - ofFile("ext_jfr", "extra-icons/jfr.svg", "JFR snapshot: *.jfr") - .end(".jfr"), - ofFile("ext_jinja", "extra-icons/jinja.svg", "Jinja: *.jinja, *.jinja2") - .end(".jinja", ".jinja2"), - ofFile("ext_cfg_ini", "extra-icons/config.svg", "Configuration: *.ini") - .end(".ini") - .autoLoadNewUIIconVariant(), - ofFile("ext_cfg_cfg", "extra-icons/config.svg", "Configuration: *.cfg") - .end(".cfg") - .autoLoadNewUIIconVariant(), - ofFile("ext_cfg_conf", "extra-icons/config.svg", "Configuration: *.conf") - .end(".conf") - .autoLoadNewUIIconVariant(), - ofFile("ext_cfg_config", "extra-icons/config.svg", "Configuration: *.config") - .end(".config") - .autoLoadNewUIIconVariant(), - ofFile("ext_jar", "extra-icons/jar.svg", "Java archive: *.jar") - .end(".jar"), - ofFile("ext_jaroriginal", "extra-icons/jar.svg", "Java archive (copy): *.jar.original") - .end(".jar.original"), - ofFile("ext_jsmap", "extra-icons/javascript-map.svg", "Javascript Source Maps: *.js.map") - .end(".js.map"), - ofFile("ext_cssmap", "extra-icons/css-map.svg", "Css Source Maps: *.css.map") - .end(".css.map"), - ofFile("ext_css", "extra-icons/css.svg", "Css Files: *.css") - .end(".css"), - ofFile("ext_js", "extra-icons/javascript.svg", "Javascript: *.js") - .end(".js") - .altIcons("extra-icons/javascript_alt.svg"), - ofFile("ext_js_react", "extra-icons/jsx.svg", "JSX (Javascript + React): *.jsx") - .end(".jsx"), - ofFile("ext_kdbx", "extra-icons/keepass.svg", "KeePass: *.kdbx") - .end(".kdbx") - .altIcons("extra-icons/keepass_alt2.svg", "extra-icons/keepass_alt.png"), - ofFile("ext_matroska", "extra-icons/matroska.svg", "Matroska: *.mkv, *.mka") - .end(".mkv", ".mka"), - ofFile("ext_md", "extra-icons/markdown.svg", "Markdown: *.md") - .end(".md") - .altIcons("extra-icons/markdown_alt.svg", "extra-icons/markdown_alt2.svg", - "extra-icons/markdown_alt3.svg"), - ofFile("ext_mdx", "extra-icons/mdx.svg", "MDX: *.mdx") - .end(".mdx") - .altIcons("extra-icons/mdx_alt.svg", "extra-icons/mdx_alt2.svg"), - ofFile("ext_mmd", "extra-icons/mindmap.svg", "IDEA MindMap plugin: *.mmd") - .end(".mmd"), - ofFile("ext_mermaid", "extra-icons/mermaid.svg", "Mermaid: *.mermaid") - .end(".mermaid"), - ofFile("ext_mermaid_mmd", "extra-icons/mermaid.svg", "Mermaid: *.mmd") - .end(".mmd"), - ofFile("ext_mpeg", "extra-icons/mpeg.svg", "MPEG-1/2 Audio: *.mp3, *.mp1, *.m1a, *.mp2, *.m2a, *.mpa") - .end(".mp3", ".mp1", ".m1a", ".mp2", ".m2a", ".mpa"), - ofFile("ext_mwb", "extra-icons/mysqlworkbench.svg", "MySQL Workbench: *.mwb") - .end(".mwb"), - ofFile("ext_nsi", "extra-icons/nsis.svg", "NSIS Nullsoft Scriptable Install System: *.nsi") - .end(".nsi"), - ofFile("ext_opentofu_tf", "extra-icons/opentofu.svg", "OpenTofu: *.tf") - .end(".tf"), - ofFile("ext_opentofu_tf_json", "extra-icons/opentofu.svg", "OpenTofu: *.tf.json") - .end(".tf.json"), - ofFile("ext_pdf", "extra-icons/pdf.svg", "PDF: *.pdf") - .end(".pdf") - .altIcons("extra-icons/pdf_alt.svg", "extra-icons/pdf_alt2.svg", - "extra-icons/pdf_alt3.svg"), - ofFile("ext_pid", "extra-icons/pid.svg", "PID: *.pid") - .end(".pid"), - ofFile("ext_postmanconfig", "extra-icons/postman.svg", "Postman config: *.postman.json") - .end(".postman.json"), - ofFile("ext_puml", "extra-icons/uml.svg", "PlantUML: *.puml") - .end(".puml"), - ofFile("ext_postmancollection", "extra-icons/postman_col.svg", "Postman collection: *postman_collection.json") - .end("postman_collection.json") - .altIcons("extra-icons/postman.svg"), - ofFile("ext_postmanenvironment", "extra-icons/postman_env.svg", "Postman environment: *postman_environment.json") - .end("postman_environment.json") - .altIcons("extra-icons/postman.svg"), - ofFile("ext_rpm", "extra-icons/rpm.svg", "Red Hat package: *.rpm") - .end(".rpm"), - ofFile("ext_robotframework", "extra-icons/robotframework.svg", "Robot Framework: *.robot") - .end(".robot") - .altIcons("extra-icons/robotframework_alt.svg"), - ofFile("sass", "extra-icons/sass.svg", "SASS: *.sass") - .end(".sass"), - ofFile("scss", "extra-icons/scss.svg", "SASS: *.scss") - .end(".scss"), - ofFile("less", "extra-icons/less.svg", "LESS CSS: *.less") - .end(".less"), - ofFile("ext_stylus-browserext", "extra-icons/stylus-browserext.svg", "Stylus (browser extension): *.styl") - .end(".styl"), - ofFile("ext_svg", "extra-icons/svg.svg", "SVG: *.svg") - .end(".svg") - .altIcons("extra-icons/svg_alt.svg"), - ofFile("ext_tf", "extra-icons/terraform.svg", "Terraform: *.hcl, *.tf, *.tf.json") - .end(".hcl", ".tf", ".tf.json"), - ofFile("ext_toml", "extra-icons/toml.svg", "TOML: *.toml") - .end(".toml"), - ofFile("typescript", "extra-icons/test-ts.svg", "Typescript: *.spec.ts") - .end(".spec.ts") - .altIcons("extra-icons/test-ts_alt.svg"), - ofFile("typescript-ts", "extra-icons/typescript.svg", "Typescript: *.ts") - .end(".ts"), - ofFile("typescript-react", "extra-icons/tsx.svg", "TSX (Typescript + React): *.tsx") - .end(".tsx"), - ofFile("ext_video", "extra-icons/video.svg", "Video: *.3gp, *.avi, *.flv, *.mkv, *.mp4, *.mpeg, *.ogm, *.webm, ...") - .end(".3g2", ".3gp", ".avi", ".divx", ".f4a", ".f4b", ".f4p", ".f4v", ".flv", ".m2t", ".m4p", - ".m4v", ".mp4", ".mpg", ".mpeg", ".ogm", ".ogv", ".ts", ".tsa", ".tsv", ".vob", ".webm", ".wmv", ".xvid") - .altIcons("extra-icons/video_alt.svg", "extra-icons/video_alt2.svg", - "extra-icons/video_alt3.svg"), - ofFile("ext_velocity", "extra-icons/velocity.svg", "Velocity: *.vtl") - .end(".vtl"), - ofFile("ext_vscode-workspace", "extra-icons/vscode.svg", "Visual Studio Code: : *.code-workspace") - .end(".code-workspace"), - ofFile("ext_war", "extra-icons/tomcat.svg", "Java WAR: *.war") - .end(".war"), - ofFile("ext_wheel", "extra-icons/wheel.svg", "Python Wheel: *.whl") - .end(".whl"), - ofFile("ext_wma", "extra-icons/wma.svg", "Windows Media Audio: *.wma") - .end(".wma") - .altIcons("extra-icons/video_alt3.svg"), - ofFile("ext_xiph", "extra-icons/xiph.svg", "Xiph audio: *.flac, *.oga, *.ogg, *.opus, *.spx") - .end(".flac", ".oga", ".ogg", ".opus", ".spx"), - ofFile("ext_yang", "extra-icons/yang.svg", "YANG: *.yang") - .end(".yang"), - // - - // - ofFile("ext_libreoffice_calc", "extra-icons/officedocs/libo-calc.svg", "LibreOffice Calc: *.ods") - .end(".ods") - .altIcons("extra-icons/officedocs/localc.svg", "extra-icons/officedocs/libo-symbol-black.svg", "extra-icons/officedocs/lomain.svg") - .tags(ModelTag.LIBRE_OFFICE), - ofFile("ext_libreoffice_draw", "extra-icons/officedocs/libo-draw.svg", "LibreOffice Draw: *.odg") - .end(".odg") - .altIcons("extra-icons/officedocs/lodraw.svg", "extra-icons/officedocs/libo-symbol-black.svg", "extra-icons/officedocs/lomain.svg") - .tags(ModelTag.LIBRE_OFFICE), - ofFile("ext_libreoffice_impress", "extra-icons/officedocs/libo-impress.svg", "LibreOffice Impress: *.odp") - .end(".odp") - .altIcons("extra-icons/officedocs/loimpress.svg", "extra-icons/officedocs/libo-symbol-black.svg", "extra-icons/officedocs/lomain.svg") - .tags(ModelTag.LIBRE_OFFICE), - ofFile("ext_libreoffice_math", "extra-icons/officedocs/libo-math.svg", "LibreOffice Math: *.odf") - .end(".odf") - .altIcons("extra-icons/officedocs/lomath.svg", "extra-icons/officedocs/libo-symbol-black.svg", "extra-icons/officedocs/lomain.svg") - .tags(ModelTag.LIBRE_OFFICE), - ofFile("ext_libreoffice_writer", "extra-icons/officedocs/libo-writer.svg", "LibreOffice Writer: *.odt") - .end(".odt") - .altIcons("extra-icons/officedocs/lowriter.svg", "extra-icons/officedocs/libo-symbol-black.svg", "extra-icons/officedocs/lomain.svg") - .tags(ModelTag.LIBRE_OFFICE), - // - - // - ofFile("ext_msoffice_excel", "extra-icons/officedocs/msexcel-2019.svg", "MSOffice Excel: *.xls, *.xlsx") - .end(".xls", ".xlsx") - .altIcons("extra-icons/officedocs/msexcel.png", "extra-icons/officedocs/msexcel-papirus.svg") - .tags(ModelTag.MS_OFFICE), - ofFile("ext_msoffice_onenote", "extra-icons/officedocs/msonenote-2019.svg", "MSOffice OneNote: *.one, *.onetoc2") - .end(".one", ".onetoc2") - .altIcons("extra-icons/officedocs/msonenote.png") - .tags(ModelTag.MS_OFFICE), - ofFile("ext_msoffice_powerpoint", "extra-icons/officedocs/mspowerpoint-2019.svg", "MSOffice Powerpoint: *.ppt, *.pptx") - .end(".ppt", ".pptx") - .altIcons("extra-icons/officedocs/mspowerpoint.png", "extra-icons/officedocs/mspowerpoint-papirus.svg") - .tags(ModelTag.MS_OFFICE), - ofFile("ext_msoffice_project", "extra-icons/officedocs/msproject-2019.svg", "MSOffice Project: *.mpd, *.mpp, *.mpt") - .end(".mpd", ".mpp", ".mpt") - .altIcons("extra-icons/officedocs/msproject.png") - .tags(ModelTag.MS_OFFICE), - ofFile("ext_msoffice_visio", "extra-icons/officedocs/msvisio-2019.svg", "MSOffice Visio: *.vsd, *.vsdx, *.vss, *.vssx, *.vst, *.vstx") - .end(".vsd", ".vsdx", ".vss", ".vssx", ".vst", ".vstx") - .altIcons("extra-icons/officedocs/msvisio.png") - .tags(ModelTag.MS_OFFICE), - ofFile("ext_msoffice_word", "extra-icons/officedocs/msword-2019.svg", "MSOffice Word: *.doc, *.docx") - .end(".doc", ".docx") - .altIcons("extra-icons/officedocs/msword.png", "extra-icons/officedocs/msword-papirus.svg") - .tags(ModelTag.MS_OFFICE), - // - - // - ofFile("docker_generic", "extra-icons/docker_.svg", "Docker (generic): start by 'dockerfile'") - .start("dockerfile") - .altIcons("extra-icons/docker_alt.svg", "extra-icons/docker_alt2.svg") - .tags(ModelTag.DOCKER), - ofFile("docker_generic_2", "extra-icons/docker_.svg", "Docker (generic): end with 'dockerfile'") - .end("dockerfile") - .altIcons("extra-icons/docker_alt.svg", "extra-icons/docker_alt2.svg") - .tags(ModelTag.DOCKER) - // - ) - .flatMap(ExtraIconProvider::modelList) - //.filter(Model::isInFreemium) // TODO prepare a potential freemium mode. Free mode may include a limited set of bundled icons, allow user to define personal icons, and download icon packs - .collect(Collectors.toList()); - } - - public ExtraIconProvider() { - super(); - } - - @Override - protected List getAllModels() { - return allModels(); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/Globals.java b/src/main/java/lermitage/intellij/extra/icons/Globals.java deleted file mode 100644 index 210d418c..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/Globals.java +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -public class Globals { - - /** Reflects notificationGroup id in META-INF/settings.xml. */ - public static final String PLUGIN_GROUP_DISPLAY_ID = "ExtraIcons"; - - // Icons can be SVG or PNG only. Never allow user to pick GIF, JPEG, etc., otherwise - // we should convert these files to PNG in IconUtils:toBase64 method. - public static final String[] ALLOWED_ICON_FILE_EXTENSIONS = new String[]{"svg", "png"}; //NON-NLS - public static final String ALLOWED_ICON_FILE_EXTENSIONS_FILE_SELECTOR_LABEL = "*.svg, *.png"; //NON-NLS -} diff --git a/src/main/java/lermitage/intellij/extra/icons/IconType.java b/src/main/java/lermitage/intellij/extra/icons/IconType.java deleted file mode 100644 index 0a13002d..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/IconType.java +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -/** The type of icon: the path of a bundled icon, or a Base64 encoded user icon stored in config. */ -public enum IconType { - /** The relative path of a bundled icon. */ - PATH, - /** SVG user icon stored in config as Base64. */ - SVG, - /** PNG user icon stored in config as Base64. */ - IMG -} diff --git a/src/main/java/lermitage/intellij/extra/icons/Model.java b/src/main/java/lermitage/intellij/extra/icons/Model.java deleted file mode 100644 index 03e00a2c..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/Model.java +++ /dev/null @@ -1,418 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -import com.intellij.openapi.project.Project; -import com.intellij.util.xmlb.annotations.OptionTag; -import com.intellij.util.xmlb.annotations.XCollection; -import lermitage.intellij.extra.icons.cfg.services.SettingsService; -import lermitage.intellij.extra.icons.enablers.IconEnablerType; -import lermitage.intellij.extra.icons.enablers.services.GitSubmoduleFolderEnablerService; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; - -public class Model { - - @OptionTag - private String id; - @OptionTag - private String ideIcon; - @OptionTag - private String icon; - @OptionTag - private String description; - @OptionTag - private String iconPack; - @OptionTag - private ModelType modelType; - @OptionTag - private IconType iconType; - /** Indicates if this model is offered for the old or the new UI. If null, both UIs are supported. */ - @OptionTag - private UIType uiType; - /** - * Indicates if a user model is enabled. To know if a built-in model - * is enabled, see {@link SettingsService#getDisabledModelIds()}. - */ - @OptionTag - private boolean enabled = true; - @XCollection - private List conditions = new ArrayList<>(Collections.singletonList(new ModelCondition())); - - // transient fields are excluded from IconPack items - - /** Alternative icons. Extra Icons will automatically generate alt icons (and ids, names, etc.) based on on this list. */ - private transient String[] altIcons; // transient because computed dynamically - - /** Tags associated to this model. Used to easily (de)activate models linked to specific tags. */ - private transient List tags; // transient because not exposed to user models - - /** For a model representing an alternative icon, the ID of the base model, otherwise null. */ - private transient Object parentId = null; // transient because computed dynamically - - private boolean autoLoadNewUIIconVariant = false; - - private boolean inFreemium = false; - - // For XML deserializer (IntelliJ internals) - @SuppressWarnings("unused") - private Model() { - } - - /** - * Create a rule (Model) to apply given icon to a file. Once created, you need to - * apply condition(s) to rule, like {@link #start(String...)}, {@link #eq(String...)}, etc. - * @param id a unique id. - * @param icon the path of the icon to apply, located in plugin resources folder. - * @param description human readable description. - */ - @NotNull - @Contract("_, _, _ -> new") - public static Model ofFile(String id, String icon, String description) { - return createFileOrFolderModel(id, icon, description, ModelType.FILE, IconType.PATH, null); - } - - /** - * Create a rule (Model) to apply given icon to a folder. Once created, you need to - * apply condition(s) to rule, like {@link #start(String...)}, {@link #eq(String...)}, etc. - * @param id a unique id. - * @param icon the path of the icon to apply, located in plugin resources folder. - * @param description human readable description. - */ - @NotNull - @Contract("_, _, _ -> new") - public static Model ofDir(String id, String icon, String description) { - return createFileOrFolderModel(id, icon, description, ModelType.DIR, IconType.PATH, null); - } - - /** - * Create a rule (Model) to override given icon (ideIcon) with new icon (icon). Once created, - * you must NOT apply conditions (like {@link #start(String...)}, {@link #eq(String...)}, etc.) to this rule, - * they will be ignored. - * @param id a unique id. - * @param ideIcon the name of the icon to override. You can find icon - * names here: pick - * an icon and open the ZIP file; you can use the non-dark SVG file name. - * @param icon the path of the icon to apply, located in plugin resources folder. - * @param description human readable description. - */ - @NotNull - @Contract("_, _, _, _ -> new") - public static Model ofIcon(String id, String ideIcon, String icon, String description) { - return createIdeIconModel(id, ideIcon, icon, description, ModelType.ICON, IconType.PATH, null); - } - - @NotNull - @Contract("_, _, _, _, _, _ -> new") - public static Model createFileOrFolderModel(String id, String icon, String description, - ModelType modelType, IconType iconType, String iconPack) { - Model model = new Model(); - model.id = id; - model.icon = icon; - model.description = description; - model.modelType = modelType; - model.iconType = iconType; - model.iconPack = iconPack; - return model; - } - - @NotNull - @Contract("_, _, _, _, _, _, _ -> new") - public static Model createFileOrFolderModel(String id, String icon, String description, - ModelType modelType, IconType iconType, String iconPack, - List conditions) { - Model model = createFileOrFolderModel(id, icon, description, modelType, iconType, iconPack); - model.conditions = conditions; - return model; - } - - @NotNull - @Contract("_, _, _, _, _, _, _ -> new") - public static Model createIdeIconModel(String id, String ideIcon, String icon, String description, - ModelType modelType, IconType iconType, String iconPack) { - Model model = new Model(); - model.id = id; - model.ideIcon = ideIcon; - model.icon = icon; - model.description = description; - model.modelType = modelType; - model.iconType = iconType; - model.iconPack = iconPack; - return model; - } - - @NotNull - @Contract("_, _, _, _, _ -> new") - public static Model createAltModel(Model baseModel, String altId, String altIdeIcon, - String altIcon, String altDescription) { - Model altModel = new Model(); - altModel.id = altId; - altModel.ideIcon = altIdeIcon; - altModel.icon = altIcon; - altModel.description = altDescription; - altModel.modelType = baseModel.getModelType(); - altModel.iconType = baseModel.getIconType(); - altModel.enabled = baseModel.isEnabled(); - altModel.conditions = baseModel.getConditions(); - altModel.tags = baseModel.getTags(); - altModel.parentId = baseModel.getId(); - altModel.uiType = baseModel.getUiType(); - altModel.autoLoadNewUIIconVariant = baseModel.isAutoLoadNewUIIconVariant(); - altModel.inFreemium = baseModel.isInFreemium(); - return altModel; - } - - public String getId() { - return id; - } - - public String getDescription() { - return description; - } - - public String getIdeIcon() { - return ideIcon; - } - - public String getIcon() { - return icon; - } - - public ModelType getModelType() { - return modelType; - } - - public boolean isEnabled() { - return enabled; - } - - @Nullable - public Object getParentId() { - return parentId; - } - - @Nullable - public String getIconPack() { - return iconPack; - } - - /** - * Condition: has given parent directory(s). - * @param parents one or multiple possible directories, lowercase. - */ - public Model parents(@NotNull String... parents) { - getCurrentCondition().setParents(parents); - return this; - } - - /** - * Condition: file or folder (does not apply to {@link ModelType#ICON} model types) is located in the project folder, not in any subfolder. - */ - public Model inProjectRootFolder() { - getCurrentCondition().setIsInProjectRootFolder(); - return this; - } - - /** - * Condition: file/folder name starts with given string(s). - * @param start strings, lowercase. - */ - public Model start(@NotNull String... start) { - getCurrentCondition().setStart(start); - return this; - } - - /** - * Condition: file/folder name is equal to given string(s). - * @param name strings, lowercase. - */ - public Model eq(@NotNull String... name) { - getCurrentCondition().setEq(name); - return this; - } - - /** - * Condition: file/folder name may end with given string(s). This condition is optional. - * Example: to catch README and README.md files, you will use {@code model.eq("readme").mayEnd(".md")} - * @param end strings, lowercase. - */ - public Model mayEnd(@NotNull String... end) { - getCurrentCondition().setMayEnd(end); - return this; - } - - /** - * Condition: file/folder name ends with given string(s). - * @param end strings, lowercase. - */ - public Model end(@NotNull String... end) { - getCurrentCondition().setEnd(end); - return this; - } - - /** - * Condition: file/folder name must not contain a dot. - */ - public Model noDot() { - getCurrentCondition().setNoDot(); - return this; - } - - /** - * Condition: file/folder absolute path satisfies given regular expression. - * @param regex regular expression. - */ - public Model regex(@NotNull String regex) { - getCurrentCondition().setRegex(regex); - return this; - } - - /** - * Condition: project has given facet, like 'andoid', 'kotlin', 'python', 'spring' etc. You - * can see and add facets in Project Structure / Project Settings / Facets. - * @param facets facet(s), lowercase. - */ - public Model facets(@NotNull String... facets) { - getCurrentCondition().setFacets(Arrays.stream(facets).map(String::toLowerCase).toArray(String[]::new)); - return this; - } - - /** - * Condition: use an {@link lermitage.intellij.extra.icons.enablers.IconEnablerType}, - * like {@link GitSubmoduleFolderEnablerService}. - * @param type IconEnablerType. - */ - public Model iconEnabler(@NotNull IconEnablerType type) { - getCurrentCondition().setIconEnablerType(type); - return this; - } - - /** - * Register alternate icons. - * @param altIcons an array of icons. - */ - public Model altIcons(@NotNull String... altIcons) { - this.altIcons = altIcons; - return this; - } - - /** This model is offered for the old UI only. */ - public Model oldUIOnly() { - this.uiType = UIType.OLD_UI; - return this; - } - - /** This model is offered for the new UI only. */ - public Model newUIOnly() { - this.uiType = UIType.NEW_UI; - return this; - } - - /** Model has a new UI icon in "./newui/": plugin will use it if the new UI is active. */ - public Model autoLoadNewUIIconVariant() { - this.autoLoadNewUIIconVariant = true; - return this; - } - - /** Indicates if model has a new UI icon in "./newui/". */ - public boolean isAutoLoadNewUIIconVariant() { - return autoLoadNewUIIconVariant; - } - - /** This model is available in freemium (free) mode. If not, it requires a paid licence. */ - public Model inFreemium() { - this.inFreemium = true; - return this; - } - - public boolean isInFreemium() { - return inFreemium; - } - - /** - * Associate this model to one or multiple tags. User will be able to enable and disable multiple models by tag. - * @param tags an array of tags. - */ - public Model tags(@NotNull ModelTag... tags) { - this.tags = Arrays.stream(tags).collect(Collectors.toList()); - return this; - } - - /** Add a possible condition to current model: file/folder will have to satisfy one of configured conditions. */ - public Model or() { - this.conditions.add(new ModelCondition()); - return this; - } - - private ModelCondition getCurrentCondition() { - return conditions.get(conditions.size() - 1); - } - - public boolean check(String parentName, String fileName, @Nullable String fullPath, Set facets, Project project) { - for (ModelCondition condition : conditions) { - if (condition.check(parentName, fileName, fullPath, facets, project)) { - return true; - } - } - return false; - } - - public IconType getIconType() { - return iconType; - } - - public UIType getUiType() { - return uiType; - } - - public List getConditions() { - return conditions; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - public String[] getAltIcons() { - return altIcons; - } - - public List getTags() { - return tags == null ? Collections.emptyList() : tags; - } - - public void setIconPack(String iconPack) { - this.iconPack = iconPack; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - Model model = (Model) o; - return enabled == model.enabled && - Objects.equals(id, model.id) && - Objects.equals(ideIcon, model.ideIcon) && - Objects.equals(icon, model.icon) && - Objects.equals(iconPack, model.iconPack) && - description.equals(model.description) && - modelType == model.modelType && - uiType == model.uiType && - iconType == model.iconType && - conditions.equals(model.conditions); - } - - @Override - public int hashCode() { - return Objects.hash(id, ideIcon, icon, iconPack, description, modelType, uiType, iconType, enabled, conditions); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/ModelCondition.java b/src/main/java/lermitage/intellij/extra/icons/ModelCondition.java deleted file mode 100644 index 9293bddb..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/ModelCondition.java +++ /dev/null @@ -1,400 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.util.xmlb.annotations.OptionTag; -import com.intellij.util.xmlb.annotations.Tag; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import lermitage.intellij.extra.icons.enablers.IconEnablerProvider; -import lermitage.intellij.extra.icons.enablers.IconEnablerType; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import org.jetbrains.annotations.Nullable; - -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.Objects; -import java.util.Optional; -import java.util.ResourceBundle; -import java.util.Set; -import java.util.regex.Pattern; - -@Tag -public class ModelCondition { - - @OptionTag - private boolean start = false; - @OptionTag - private boolean eq = false; - @OptionTag - private boolean mayEnd = false; - @OptionTag - private boolean end = false; - @OptionTag - private boolean noDot = false; - @OptionTag - private boolean checkParent = false; - @OptionTag - private boolean hasRegex = false; - @OptionTag - private boolean enabled = true; - @OptionTag - private boolean checkFacets = false; - @OptionTag - private boolean hasIconEnabler = false; - @OptionTag - private boolean isInProjectRootFolder = false; - - @OptionTag - private String[] names = new String[0]; - @OptionTag - private Set parentNames = Collections.emptySet(); - @OptionTag - private String[] extensions = new String[0]; - @OptionTag - private String regex; - @OptionTag - private String[] facets = new String[0]; - - // transient fields are excluded from IconPack items - - private transient Pattern pattern; // transient because computed dynamically - private transient IconEnablerType iconEnablerType; // transient because not exposed to user models - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - public void setParents(String... parents) { - this.checkParent = true; - this.parentNames = toLowerCaseSet(parents); - } - - public void setStart(String... base) { - this.start = true; - this.names = toLowerCaseArray(base); - } - - public void setEq(String... base) { - this.eq = true; - this.names = toLowerCaseArray(base); - } - - public void setMayEnd(String... extensions) { - this.mayEnd = true; - this.extensions = toLowerCaseArray(extensions); - } - - public void setEnd(String... extensions) { - this.end = true; - this.extensions = toLowerCaseArray(extensions); - } - - public void setNoDot() { - this.noDot = true; - } - - public void setRegex(String regex) { - this.hasRegex = true; - this.regex = regex; - this.pattern = Pattern.compile(regex); - } - - public void setFacets(String[] facets) { - this.checkFacets = true; - this.facets = facets; - } - - public void setIconEnablerType(IconEnablerType iconEnablerType) { - this.hasIconEnabler = true; - this.iconEnablerType = iconEnablerType; - } - - public void setIsInProjectRootFolder() { - this.isInProjectRootFolder = true; - } - - public boolean check(String parentName, String fileName, @Nullable String fullPath, Set prjFacets, Project project) { - if (!enabled) { - return false; - } - - if (isInProjectRootFolder) { - if (fullPath == null || !fullPath.equalsIgnoreCase(project.getBasePath() + "/" + fileName)) { - return false; - } - } - - if (hasIconEnabler && fullPath != null) { - Optional iconEnabler = IconEnablerProvider.getIconEnabler(project, iconEnablerType); - if (iconEnabler.isPresent()) { - boolean iconEnabledVerified = iconEnabler.get().verify(project, fullPath); - if (!iconEnabledVerified) { - return false; - } else if (iconEnabler.get().terminatesConditionEvaluation()) { - return true; - } - } - } - - // facet is a pre-condition, should always be associated with other conditions - if (checkFacets && facets != null) { - boolean facetChecked = false; - for (String modelFacet : facets) { - if (prjFacets.contains(modelFacet)) { - facetChecked = true; - break; - } - } - if (!facetChecked) { - return false; - } - } - - if (checkParent) { - if (!(start || eq || end || mayEnd)) { - if (parentNames.contains(parentName)) { - return true; // To style all files in a subdirectory - } - } else { - if (!parentNames.contains(parentName)) { - return false; - } - } - } - - if (hasRegex && fullPath != null) { - if (pattern == null) { - pattern = Pattern.compile(regex); - } - if (pattern.matcher(fullPath).matches()) { - return true; - } - } - - if (eq) { - if (end) { - for (String n : names) { - for (String e : extensions) { - if (fileName.equals(n + e)) { - return true; - } - } - } - } else if (mayEnd) { - for (String n : names) { - if (fileName.equals(n)) { - return true; - } - for (String e : extensions) { - if (fileName.equals(n + e)) { - return true; - } - } - } - } else { - for (String n : names) { - if (fileName.equals(n)) { - return true; - } - } - } - } - - if (start) { - if (end) { - for (String n : names) { - for (String e : extensions) { - if (fileName.startsWith(n) && fileName.endsWith(e)) { - return true; - } - } - } - } else if (mayEnd) { - for (String n : names) { - if (fileName.startsWith(n)) { - return true; - } - for (String e : extensions) { - if (fileName.startsWith(n) && fileName.endsWith(e)) { - return true; - } - } - } - } else if (noDot) { - for (String n : names) { - if (fileName.startsWith(n) && !fileName.contains(".")) { - return true; - } - } - } else { - for (String n : names) { - if (fileName.startsWith(n)) { - return true; - } - } - } - } - - if (end & !eq & !start) { - for (String e : extensions) { - if (fileName.endsWith(e)) { - return true; - } - } - } - - return false; - } - - public boolean hasStart() { - return start; - } - - public boolean hasEq() { - return eq; - } - - public boolean hasMayEnd() { - return mayEnd; - } - - public boolean hasEnd() { - return end; - } - - public boolean hasNoDot() { - return noDot; - } - - public boolean hasCheckParent() { - return checkParent; - } - - public boolean hasRegex() { - return hasRegex; - } - - public boolean hasFacets() { - return checkFacets; - } - - public boolean isEnabled() { - return enabled; - } - - public boolean isValid() { - return hasRegex || checkParent || start || eq || end || mayEnd; - } - - public String[] getNames() { - return names; - } - - public String[] getExtensions() { - return extensions; - } - - public Set getParents() { - return parentNames; - } - - public String getRegex() { - return regex; - } - - public String[] getFacets() { - return facets; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - public String asReadableString(String delimiter) { - ArrayList parameters = new ArrayList<>(); - if (hasRegex) { - parameters.add(MessageFormat.format(i18n.getString("model.condition.regex"), this.regex)); - } - - if (checkParent) { - parameters.add(MessageFormat.format(i18n.getString("model.condition.check.parents"), String.join(delimiter, this.parentNames))); - } - - if (start || eq) { - String names = String.join(delimiter, this.names); - if (start) { - names = MessageFormat.format(i18n.getString("model.condition.name.starts.with"), names); - if (noDot) { - names += i18n.getString("model.condition.name.starts.with.and.no.dot"); - } - } else { - names = MessageFormat.format(i18n.getString("model.condition.name.equals"), names); - } - parameters.add(names); - } - - if (mayEnd || end) { - String extensions = String.join(delimiter, this.extensions); - if (mayEnd) { - extensions = MessageFormat.format(i18n.getString("model.condition.name.may.end.with"), extensions); - } else { - extensions = MessageFormat.format(i18n.getString("model.condition.name.ends.with"), extensions); - } - parameters.add(extensions); - } - - if (checkFacets) { - parameters.add(MessageFormat.format(i18n.getString("model.condition.facets"), Arrays.toString(this.facets))); - } - - return StringUtil.capitalize(String.join(", ", parameters)); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ModelCondition that = (ModelCondition) o; - return start == that.start && - eq == that.eq && - mayEnd == that.mayEnd && - end == that.end && - noDot == that.noDot && - checkParent == that.checkParent && - hasRegex == that.hasRegex && - enabled == that.enabled && - Arrays.equals(names, that.names) && - parentNames.equals(that.parentNames) && - Arrays.equals(extensions, that.extensions) && - Objects.equals(regex, that.regex) && - Arrays.equals(facets, that.facets); - } - - @Override - public int hashCode() { - int result = Objects.hash(start, eq, mayEnd, end, noDot, checkParent, hasRegex, enabled, parentNames, regex); - result = 31 * result + Arrays.hashCode(names); - result = 31 * result + Arrays.hashCode(extensions); - result = 31 * result + Arrays.hashCode(facets); - return result; - } - - private String[] toLowerCaseArray(String... s) { - String[] res = new String[s.length]; - for (int i = 0; i < s.length; i++) { - res[i] = s[i].toLowerCase(); - } - return res; - } - - private Set toLowerCaseSet(String... s) { - Set res = new HashSet<>(s.length); - for (String str : s) { - res.add(str.toLowerCase()); - } - return res; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/ModelTag.java b/src/main/java/lermitage/intellij/extra/icons/ModelTag.java deleted file mode 100644 index 0cf01255..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/ModelTag.java +++ /dev/null @@ -1,39 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -@SuppressWarnings("HardCodedStringLiteral") -public enum ModelTag { - - ANGULAR2("Angular", "extra-icons/angular2.svg"), - DOCKER("Docker", "extra-icons/docker_.svg"), - FLUTTER("Flutter", "extra-icons/flutter.svg"), - FLYWAY("Flyway", "extra-icons/flyway.svg"), - HELM("Helm", "extra-icons/helm.svg"), - HTML("HTML", "extra-icons/html5.svg"), - KUBERNETES("Kubernetes", "extra-icons/kubernetes.svg"), - LIBRE_OFFICE("LibreOffice", "extra-icons/officedocs/lowriter.svg"), - LIQUIBASE("Liquibase", "extra-icons/liquibase.svg"), - MS_OFFICE("MS Office", "extra-icons/officedocs/msword-2019.svg"), - NESTJS("NestJS", "extra-icons/nestjs.svg"), - PRETTIER("Prettier", "extra-icons/prettier.svg"), - STORYBOOK("Storybook", "extra-icons/storybook.svg"), - TRAVIS("Travis CI", "extra-icons/travis.svg"), - WRITERSIDE("Writerside", "extra-icons/writerside.svg"); - - ModelTag(String name, String icon) { - this.name = name; - this.icon = icon; - } - - private final String name; - private final String icon; - - public String getName() { - return name; - } - - public String getIcon() { - return icon; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/ModelType.java b/src/main/java/lermitage/intellij/extra/icons/ModelType.java deleted file mode 100644 index ea2ed8c5..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/ModelType.java +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -import lermitage.intellij.extra.icons.utils.I18nUtils; -import org.jetbrains.annotations.Contract; - -import java.util.ResourceBundle; - -public enum ModelType { - FILE, - DIR, - ICON; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - /** - * {@link ModelType} comparator: {@link ModelType#DIR} > {@link ModelType#FILE} > {@link ModelType#ICON}. - */ - @Contract(pure = true) - public static int compare(ModelType o1, ModelType o2) { - if (o1 == o2) { - return 0; - } - if (o1 == null) { - return 1; - } - if (o2 == null) { - return -1; - } - if (o1 == DIR && (o2 == FILE || o2 == ICON)) { - return -1; - } - if (o1 == FILE && o2 == ICON) { - return -1; - } - return 1; - } - - public String getI18nFriendlyName() { - return switch (this) { - case FILE -> i18n.getString("model.type.file"); - case DIR -> i18n.getString("model.type.directory"); - case ICON -> i18n.getString("model.type.icon"); - }; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/UIType.java b/src/main/java/lermitage/intellij/extra/icons/UIType.java deleted file mode 100644 index 9990eb9e..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/UIType.java +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -public enum UIType { - NEW_UI, - OLD_UI -} diff --git a/src/main/java/lermitage/intellij/extra/icons/UITypeIconsPreference.java b/src/main/java/lermitage/intellij/extra/icons/UITypeIconsPreference.java deleted file mode 100644 index c9726728..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/UITypeIconsPreference.java +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons; - -public enum UITypeIconsPreference { - BASED_ON_ACTIVE_UI_TYPE, - PREFER_NEW_UI_ICONS, - PREFER_OLD_UI_ICONS -} diff --git a/src/main/java/lermitage/intellij/extra/icons/activity/EnablerServicesProjectActivity.java b/src/main/java/lermitage/intellij/extra/icons/activity/EnablerServicesProjectActivity.java deleted file mode 100644 index 7952506f..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/activity/EnablerServicesProjectActivity.java +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.activity; - -import com.intellij.openapi.project.Project; -import com.intellij.openapi.startup.ProjectActivity; -import kotlin.Unit; -import kotlin.coroutines.Continuation; -import lermitage.intellij.extra.icons.messaging.RefreshIconsNotifierService; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Re-init icon enablers on project init, once indexing tasks are done. May fix init issues when querying IDE filename index while indexing. - * At least, it fixes icons reloading (Enablers) after long indexing tasks (example: after you asked to invalidate caches). - */ -public class EnablerServicesProjectActivity implements ProjectActivity { - - @Nullable - @Override - public Object execute(@NotNull Project project, @NotNull Continuation continuation) { - RefreshIconsNotifierService.getInstance().triggerProjectIconEnablersReinit(project); - return null; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/activity/ExtraIconsLicenseCheckIDEActivity.java b/src/main/java/lermitage/intellij/extra/icons/activity/ExtraIconsLicenseCheckIDEActivity.java deleted file mode 100644 index 4850f108..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/activity/ExtraIconsLicenseCheckIDEActivity.java +++ /dev/null @@ -1,130 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.activity; - -import com.intellij.ide.plugins.PluginManager; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.extensions.PluginDescriptor; -import com.intellij.openapi.extensions.PluginId; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.startup.ProjectActivity; -import kotlin.Unit; -import kotlin.coroutines.Continuation; -import lermitage.intellij.extra.icons.lic.ExtraIconsLicenseCheck; -import lermitage.intellij.extra.icons.lic.ExtraIconsLicenseStatus; -import lermitage.intellij.extra.icons.lic.ExtraIconsPluginType; -import lermitage.intellij.extra.icons.messaging.RefreshIconsNotifierService; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; -import java.util.ResourceBundle; -import java.util.Set; -import java.util.Timer; -import java.util.TimerTask; -import java.util.stream.Collectors; - -/** - * Check Extra Icons licence periodically. - */ -public class ExtraIconsLicenseCheckIDEActivity implements ProjectActivity { - - private static final @NonNls Logger LOGGER = Logger.getInstance(ExtraIconsLicenseCheckIDEActivity.class); - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - private static boolean started = false; // TODO improve workaround and start once per IDE, not per project opening - - private static boolean requestLicenseShown = false; - - @Nullable - @Override - public Object execute(@NotNull Project project, @NotNull Continuation continuation) { - if (started) { - return null; // workaround in order to keep only once timer per IDE instead of one timer per project opening - } - started = true; - LOGGER.info("Started Extra Icons license checker"); - - int fiest_check_delay = 60_000; // 1 min - int second_check_delay = 3_600_000; // 1 hr - int other_checks_period = 3 * 3_600_000; // 3 hrs - if ("true".equals(System.getProperty("extra.icons.license.check.fast", "false"))) { - LOGGER.warn("Detected property extra.icons.license.check.fast = true, which will dramatically " + - "increase Extra Icons license check frequency. " + - "Reminder: you should enable this property for testing purpose only"); - fiest_check_delay = 3_000; // 3 sec - second_check_delay = 30_000; // 30 sec - other_checks_period = 180_000; // 3 min - } - - long t1 = System.currentTimeMillis(); - ExtraIconsPluginType installedPluginType = findInstalledPluginType(); - long t2 = System.currentTimeMillis(); - LOGGER.info("Found Extra Icons configured for license type in " + (t2 - t1) + " ms: " + installedPluginType); - - if (installedPluginType.isRequiresLicense()) { - try { - ExtraIconsLicenseStatus.setLicenseActivated(true); - LOGGER.info("Will check Extra Icons license in " + fiest_check_delay / 1000 + " sec, " + - "in " + second_check_delay / 1000 + " sec, " + - "then every " + other_checks_period / 1000 + " sec"); - new Timer().schedule(createLicenseCheckerTimerTask(installedPluginType), fiest_check_delay); - new Timer().scheduleAtFixedRate(createLicenseCheckerTimerTask(installedPluginType), second_check_delay, other_checks_period); - } catch (Exception e) { - LOGGER.warn(e); - } - } else { - ExtraIconsLicenseStatus.setLicenseActivated(true); - } - return null; - } - - private TimerTask createLicenseCheckerTimerTask(ExtraIconsPluginType installedPluginType) { - return new TimerTask() { - @Override - public void run() { - long t1 = System.currentTimeMillis(); - Boolean isLicensed = ExtraIconsLicenseCheck.isLicensed(installedPluginType.getProductCode()); - long t2 = System.currentTimeMillis(); - LOGGER.info("Checked Extra Icons license in " + (t2 - t1) + " ms. User has a valid license: " + isLicensed); - if (isLicensed == null) { - LOGGER.warn("Extra Icons license check returned null. Let's consider user has a valid license, " + - "and retry license check later"); - } - if (isLicensed != null && !isLicensed) { - ExtraIconsLicenseStatus.setLicenseActivated(false); - LOGGER.warn("Failed to validate Extra Icons license. Disable all Extra Icons until license activation"); - RefreshIconsNotifierService.getInstance().triggerAllIconsRefreshAndIconEnablersReinit(); - if (!requestLicenseShown) { - requestLicenseShown = true; - ExtraIconsLicenseCheck.requestLicense(installedPluginType.getProductCode(), i18n.getString("license.required.msg")); - } - } - } - }; - } - - private ExtraIconsPluginType findInstalledPluginType() { - PluginDescriptor pluginDesc = PluginManager.getPluginByClass(ExtraIconsLicenseCheckIDEActivity.class); - if (pluginDesc == null) { // should never happen, as two plugins with same service class names will crash the IDE - LOGGER.warn("Failed to find installed Extra Icons plugin by class, will list all installed plugins and try to find it"); - Set registeredIds = PluginId.getRegisteredIds().stream() - .map(PluginId::getIdString) - .collect(Collectors.toSet()); - Optional extraIconsPluginTypeFound = ExtraIconsPluginType.getFindableTypes().stream() - .filter(extraIconsPluginType -> registeredIds.contains(extraIconsPluginType.getPluginId())) - .findFirst(); - return extraIconsPluginTypeFound.orElse(ExtraIconsPluginType.NOT_FOUND); - } else { - LOGGER.info("Found installed Extra Icons plugin by class: " + pluginDesc); - String installedPluginId = pluginDesc.getPluginId().getIdString(); - Optional extraIconsPluginTypeFound = ExtraIconsPluginType.getFindableTypes().stream() - .filter(extraIconsPluginType -> installedPluginId.equals(extraIconsPluginType.getPluginId())) - .findFirst(); - return extraIconsPluginTypeFound.orElse(ExtraIconsPluginType.NOT_FOUND); - } - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/activity/HintNotificationsProjectActivity.java b/src/main/java/lermitage/intellij/extra/icons/activity/HintNotificationsProjectActivity.java deleted file mode 100644 index 3bfc4e05..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/activity/HintNotificationsProjectActivity.java +++ /dev/null @@ -1,124 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.activity; - -import com.intellij.notification.Notification; -import com.intellij.notification.NotificationAction; -import com.intellij.notification.NotificationType; -import com.intellij.notification.Notifications; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.options.ShowSettingsUtil; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.startup.ProjectActivity; -import com.intellij.openapi.ui.Messages; -import kotlin.Unit; -import kotlin.coroutines.Continuation; -import lermitage.intellij.extra.icons.Globals; -import lermitage.intellij.extra.icons.cfg.SettingsForm; -import lermitage.intellij.extra.icons.cfg.services.SettingsIDEService; -import lermitage.intellij.extra.icons.messaging.RefreshIconsNotifierService; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import lermitage.intellij.extra.icons.utils.IJUtils; -import lermitage.intellij.extra.icons.utils.ProjectUtils; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.ResourceBundle; - -/** - * Display some useful hints in notifications on startup, a single time only. - */ -public class HintNotificationsProjectActivity implements ProjectActivity { - - private static final @NonNls Logger LOGGER = Logger.getInstance(HintNotificationsProjectActivity.class); - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - @Nullable - @Override - public Object execute(@NotNull Project project, @NotNull Continuation continuation) { - if (!ProjectUtils.isProjectAlive(project)) { - LOGGER.info(this.getClass().getName() + " started before project is ready. Will not show startup notifications this time"); - return null; - } - SettingsIDEService settingsIDEService = SettingsIDEService.getInstance(); - - boolean alwaysShowNotifications = System.getProperty("extra-icons.always.show.notifications", "false").equals("true"); //NON-NLS - - try { - if (!settingsIDEService.getPluginIsConfigurableHintNotifDisplayed() || alwaysShowNotifications) { - Notification notif = new Notification(Globals.PLUGIN_GROUP_DISPLAY_ID, - i18n.getString("notif.tips.plugin.config.title"), - i18n.getString("notif.tips.plugin.config.content"), - NotificationType.INFORMATION); - notif.addAction(new NotificationAction(i18n.getString("notif.tips.plugin.config.btn")) { - @Override - public void actionPerformed(@NotNull AnActionEvent e, @NotNull Notification notification) { - ShowSettingsUtil.getInstance().showSettingsDialog(project, SettingsForm.class); - } - }); - Notifications.Bus.notify(notif); - } - } finally { - settingsIDEService.setPluginIsConfigurableHintNotifDisplayed(true); - } - - // TODO uncomment once Lifetime licences are available - /*if (!IJUtils.isExtraIconsLifetimeLoaded()) { - try { - if (!settingsIDEService.getLifetimeLicIntroHintNotifDisplayed() || alwaysShowNotifications) { - Notification notif = new Notification(Globals.PLUGIN_GROUP_DISPLAY_ID, - i18n.getString("notif.tips.lifetime.lic.intro.title"), - i18n.getString("notif.tips.lifetime.lic.intro.content"), - NotificationType.INFORMATION); - notif.addAction(new NotificationAction(i18n.getString("notif.tips.lifetime.lic.intro.btn")) { - @Override - public void actionPerformed(@NotNull AnActionEvent e, @NotNull Notification notification) { - BrowserUtil.browse("https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/docs/LICENSE_FAQ.md#how-to-get-a-lifetime-license"); - } - }); - Notifications.Bus.notify(notif); - } - } finally { - settingsIDEService.setLifetimeLicIntroHintNotifDisplayed(true); - } - }*/ - - if (IJUtils.isIconViewer2Loaded()) { - try { - if (!settingsIDEService.getIconviewerShouldRenderSVGHintNotifDisplayed() || alwaysShowNotifications) { - List disabledModelIds = settingsIDEService.getDisabledModelIds(); - if (!disabledModelIds.contains("ext_svg") || !disabledModelIds.contains("ext_svg_alt")) { //NON-NLS - Notification notif = new Notification(Globals.PLUGIN_GROUP_DISPLAY_ID, - i18n.getString("notif.tips.plugin.config.title"), - i18n.getString("notif.tips.iconviewer.should.render.svg"), - NotificationType.INFORMATION); - notif.addAction(new NotificationAction(i18n.getString("notif.tips.iconviewer.should.render.svg.accept.btn")) { - @Override - public void actionPerformed(@NotNull AnActionEvent e, @NotNull Notification notification) { - disabledModelIds.add("ext_svg"); //NON-NLS - disabledModelIds.add("ext_svg_alt"); //NON-NLS - settingsIDEService.setDisabledModelIds(disabledModelIds); - RefreshIconsNotifierService.getInstance().triggerAllIconsRefreshAndIconEnablersReinit(); - Messages.showInfoMessage( - i18n.getString("configured.iconviewer.for.svg.rendering"), - i18n.getString("configured.iconviewer.for.svg.rendering.title") - ); - notif.hideBalloon(); - notif.expire(); - } - }); - Notifications.Bus.notify(notif); - } - } - } finally { - settingsIDEService.setIconviewerShouldRenderSVGHintNotifDisplayed(true); - } - } - - return null; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/activity/RefreshIconsListenerProjectActivity.java b/src/main/java/lermitage/intellij/extra/icons/activity/RefreshIconsListenerProjectActivity.java deleted file mode 100644 index 2ebd08ef..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/activity/RefreshIconsListenerProjectActivity.java +++ /dev/null @@ -1,128 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.activity; - -import com.intellij.ide.projectView.ProjectView; -import com.intellij.ide.projectView.impl.AbstractProjectViewPane; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx; -import com.intellij.openapi.fileEditor.impl.EditorWindow; -import com.intellij.openapi.project.DumbService; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.startup.ProjectActivity; -import com.intellij.ui.IconDeferrer; -import kotlin.Unit; -import kotlin.coroutines.Continuation; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import lermitage.intellij.extra.icons.enablers.IconEnablerProvider; -import lermitage.intellij.extra.icons.enablers.IconEnablerType; -import lermitage.intellij.extra.icons.messaging.RefreshIconsNotifier; -import lermitage.intellij.extra.icons.utils.IJUtils; -import lermitage.intellij.extra.icons.utils.ProjectUtils; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; - -// TODO migrate to Listener https://plugins.jetbrains.com/docs/intellij/plugin-listeners.html#defining-project-level-listeners -public class RefreshIconsListenerProjectActivity implements ProjectActivity { - - private static final Logger LOGGER = Logger.getInstance(RefreshIconsListenerProjectActivity.class); - - @Nullable - @Override - public Object execute(@NotNull Project project, @NotNull Continuation continuation) { - String projectName = project.getName(); - project.getMessageBus().connect().subscribe(RefreshIconsNotifier.EXTRA_ICONS_REFRESH_ICONS_NOTIFIER_TOPIC, - new RefreshIconsNotifier() { - - @Override - public void refreshProjectIcons(@Nullable Project project) { - if (LOGGER.isDebugEnabled()) { - // activate with Help > Diagnostic Tools > Debug Log Settings > #lermitage.intellij.extra.icons.RefreshIconsListenerProjectActivity - LOGGER.debug("refreshProjectIcons on project: " + projectName); //NON-NLS - } - refreshIcons(project); - } - - @Override - public void reinitProjectIconEnablers(@Nullable Project project) { - if (LOGGER.isDebugEnabled()) { - // activate with Help > Diagnostic Tools > Debug Log Settings > #lermitage.intellij.extra.icons.RefreshIconsListenerProjectActivity - LOGGER.debug("reinitProjectIconEnablers on project: " + projectName); //NON-NLS - } - reinitIconEnablers(project); - } - }); - return null; - } - - private void reinitIconEnablers(@Nullable Project project) { - IJUtils.runInBGT("reinit icon enablers", () -> { //NON-NLS - if (ProjectUtils.isProjectAlive(project)) { - assert project != null; - DumbService.getInstance(project).runReadActionInSmartMode(() -> { - for (IconEnablerType iconEnablerType : IconEnablerType.values()) { - if (ProjectUtils.isProjectAlive(project)) { - Optional iconEnabler = IconEnablerProvider.getIconEnabler(project, iconEnablerType); - iconEnabler.ifPresent(enabler -> enabler.init(project)); - } - } - }); - } - }, true); - } - - private void refreshIcons(@Nullable Project project) { - if (IJUtils.IS_IDE_2023_OR_OLDER) { - IconDeferrer.getInstance().clearCache(); - } - IJUtils.runInEDT("refresh icons", () -> { //NON-NLS - ApplicationManager.getApplication().runReadAction(() -> { - - if (ProjectUtils.isProjectAlive(project)) { - assert project != null; - - ProjectView view = ProjectView.getInstance(project); - if (view != null) { - - view.refresh(); - //IJUtils.runInBGT("refresh ProjectView", view::refresh, true); //NON-NLS - - AbstractProjectViewPane currentProjectViewPane = view.getCurrentProjectViewPane(); - if (currentProjectViewPane != null) { - - currentProjectViewPane.updateFromRoot(true); - //IJUtils.runInBGT("update AbstractProjectViewPane", () -> currentProjectViewPane.updateFromRoot(true), true); //NON-NLS - - } else { - if (LOGGER.isDebugEnabled()) { - LOGGER.warn("Project view pane is null"); //NON-NLS - } - } - try { - EditorWindow[] editorWindows = FileEditorManagerEx.getInstanceEx(project).getWindows(); - for (EditorWindow editorWindow : editorWindows) { - try { - - editorWindow.getManager().refreshIcons(); - //IJUtils.runInBGT("refresh EditorWindow icons", () -> editorWindow.getManager().refreshIcons(), true); //NON-NLS - - } catch (Exception e) { - LOGGER.warn("Failed to refresh editor tabs icon (EditorWindow manager failed to refresh icons)", e); //NON-NLS - } - } - } catch (Exception e) { - LOGGER.warn("Failed to refresh editor tabs icon (can't get FileEditorManagerEx instance or project's windows)", e); //NON-NLS - } - } else { - if (LOGGER.isDebugEnabled()) { - LOGGER.warn("Project view is null"); //NON-NLS - } - } - } - }); - }); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/activity/VFSChangesListenersProjectActivity.java b/src/main/java/lermitage/intellij/extra/icons/activity/VFSChangesListenersProjectActivity.java deleted file mode 100644 index 4b124f34..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/activity/VFSChangesListenersProjectActivity.java +++ /dev/null @@ -1,64 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.activity; - -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.DumbService; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.ProjectFileIndex; -import com.intellij.openapi.roots.ProjectRootManager; -import com.intellij.openapi.startup.ProjectActivity; -import com.intellij.openapi.vfs.VirtualFileManager; -import com.intellij.openapi.vfs.newvfs.BulkFileListener; -import com.intellij.openapi.vfs.newvfs.events.VFileEvent; -import kotlin.Unit; -import kotlin.coroutines.Continuation; -import lermitage.intellij.extra.icons.enablers.IconEnablerProvider; -import lermitage.intellij.extra.icons.enablers.IconEnablerType; -import lermitage.intellij.extra.icons.enablers.services.GitSubmoduleFolderEnablerService; -import lermitage.intellij.extra.icons.messaging.RefreshIconsNotifierService; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -// TODO migrate to Listener https://plugins.jetbrains.com/docs/intellij/plugin-listeners.html#defining-project-level-listeners -public class VFSChangesListenersProjectActivity implements ProjectActivity { - - private static final Logger LOGGER = Logger.getInstance(VFSChangesListenersProjectActivity.class); - - @Nullable - @Override - public Object execute(@NotNull Project project, @NotNull Continuation continuation) { - project.getMessageBus().connect().subscribe(VirtualFileManager.VFS_CHANGES, new BulkFileListener() { - @Override - public void after(@NotNull List events) { - refreshGitSubmodules(events, project); - } - }); - return null; - } - - // TODO big refactoring: update all enablers with modified files, this way there is no need to re-init manually from the UI, which would eliminate the problem of enablers (IDE filename index queries) from EDT - private void refreshGitSubmodules(@NotNull List events, @NotNull Project project) { - try { - DumbService.getInstance(project).runReadActionInSmartMode(() -> { - final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex(); - boolean gitmodulesUpdated = events.stream() - .anyMatch(vFileEvent -> vFileEvent.getFile() != null - && vFileEvent.isFromSave() - && fileIndex.isInProject(vFileEvent.getFile()) - && vFileEvent.getPath().endsWith(GitSubmoduleFolderEnablerService.GIT_MODULES_FILENAME) - ); - if (gitmodulesUpdated) { - IconEnablerProvider.getIconEnabler(project, IconEnablerType.IS_GIT_SUBMODULE_FOLDER).ifPresent(iconEnabler -> - iconEnabler.init(project) - ); - RefreshIconsNotifierService.getInstance().triggerProjectIconsRefresh(project); - } - }); - } catch (Exception e) { - LOGGER.warn(e); - } - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/IconPack.java b/src/main/java/lermitage/intellij/extra/icons/cfg/IconPack.java deleted file mode 100644 index 462d2449..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/IconPack.java +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg; - -import lermitage.intellij.extra.icons.Model; - -import java.util.List; - -/** - * A downloadable and exportable list of {@link Model} objects (icons and conditions). - */ -public class IconPack { - - /** - * Icon Pack's name, used to identify the icon pack in user icons table. - */ - private String name; - - /** - * List of models. - */ - private List models; - - public IconPack(String name, List models) { - this.name = name; - this.models = models; - } - - @SuppressWarnings("unused") - public IconPack() { - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getModels() { - return models; - } - - public void setModels(List models) { - this.models = models; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/SettingsForm.form b/src/main/java/lermitage/intellij/extra/icons/cfg/SettingsForm.form deleted file mode 100644 index 4a702a0f..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/SettingsForm.form +++ /dev/null @@ -1,639 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/SettingsForm.java b/src/main/java/lermitage/intellij/extra/icons/cfg/SettingsForm.java deleted file mode 100644 index 73a52523..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/SettingsForm.java +++ /dev/null @@ -1,871 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg; - -import com.google.common.base.Strings; -import com.intellij.ide.BrowserUtil; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.options.Configurable; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.Messages; -import com.intellij.openapi.util.IconLoader; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.ui.ComboboxSpeedSearch; -import com.intellij.ui.IdeBorderFactory; -import com.intellij.ui.ToolbarDecorator; -import com.intellij.ui.components.JBLabel; -import com.intellij.ui.table.JBTable; -import lermitage.intellij.extra.icons.Model; -import lermitage.intellij.extra.icons.ModelTag; -import lermitage.intellij.extra.icons.ModelType; -import lermitage.intellij.extra.icons.UITypeIconsPreference; -import lermitage.intellij.extra.icons.cfg.dialogs.AskSingleTextDialog; -import lermitage.intellij.extra.icons.cfg.dialogs.IconPackUninstallerDialog; -import lermitage.intellij.extra.icons.cfg.dialogs.ModelDialog; -import lermitage.intellij.extra.icons.cfg.models.PluginIconsSettingsTableModel; -import lermitage.intellij.extra.icons.cfg.models.UserIconsSettingsTableModel; -import lermitage.intellij.extra.icons.cfg.services.SettingsIDEService; -import lermitage.intellij.extra.icons.cfg.services.SettingsProjectService; -import lermitage.intellij.extra.icons.cfg.services.SettingsService; -import lermitage.intellij.extra.icons.lic.ExtraIconsLicenseStatus; -import lermitage.intellij.extra.icons.messaging.RefreshIconsNotifierService; -import lermitage.intellij.extra.icons.utils.ComboBoxWithImageItem; -import lermitage.intellij.extra.icons.utils.ComboBoxWithImageRenderer; -import lermitage.intellij.extra.icons.utils.FileChooserUtils; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import lermitage.intellij.extra.icons.utils.IconPackUtils; -import lermitage.intellij.extra.icons.utils.IconUtils; -import lermitage.intellij.extra.icons.utils.OS; -import org.apache.commons.collections4.CollectionUtils; -import org.jetbrains.annotations.Nls; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import javax.swing.Icon; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTabbedPane; -import javax.swing.JTextField; -import javax.swing.ListSelectionModel; -import javax.swing.RowFilter; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.table.DefaultTableModel; -import javax.swing.table.TableColumnModel; -import javax.swing.table.TableModel; -import javax.swing.table.TableRowSorter; -import javax.swing.table.TableStringConverter; -import java.awt.event.ItemEvent; -import java.io.File; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Locale; -import java.util.Optional; -import java.util.ResourceBundle; -import java.util.regex.PatternSyntaxException; -import java.util.stream.Collectors; -import java.util.stream.IntStream; -import java.util.stream.Stream; - -public class SettingsForm implements Configurable, Configurable.NoScroll { - - private static final @NonNls Logger LOGGER = Logger.getInstance(SettingsForm.class); - - private JPanel pane; - private JButton buttonEnableAll; - private JButton buttonDisableAll; - private JCheckBox overrideSettingsCheckbox; - private JTextField ignoredPatternTextField; - private JBLabel ignoredPatternTitle; - private JTabbedPane iconsTabbedPane; - private JBTable pluginIconsTable; - private JPanel userIconsTablePanel; - private final JBTable userIconsTable = new JBTable(); - private JPanel overrideSettingsPanel; - private JCheckBox addToIDEUserIconsCheckbox; - private JLabel filterLabel; - private JTextField filterTextField; - private JButton filterResetBtn; - private JBLabel bottomTip; - private JLabel additionalUIScaleTitle; - private JTextField additionalUIScaleTextField; - private JComboBox comboBoxIconsGroupSelector; - private JLabel disableOrEnableOrLabel; - private JLabel disableOrEnableLabel; - private JButton buttonReloadProjectsIcons; - private JLabel iconPackLabel; - private JButton buttonImportIconPackFromFile; - private JButton buttonExportUserIconsAsIconPack; - private JButton buttonUninstallIconPack; - private JLabel iconPackContextHelpLabel; - private JButton buttonShowIconPacksFromWeb; - private JPanel iconPackPanel; - private JComboBox uiTypeSelector; - private JLabel uiTypeSelectorTitle; - private JLabel uiTypeSelectorHelpLabel; - private JTabbedPane mainTabbedPane; - private JPanel experimentalPanel; - private JCheckBox useIDEFilenameIndexCheckbox; - private JBLabel useIDEFilenameIndexTip; - private JButton detectAdditionalUIScaleButton; - private JLabel resetHintsTitle; - private JButton resetHintsButton; - private JButton buttonKnownIssue1; - private JButton buttonKnownIssue2; - private JLabel labelKnownIssue1; - private JLabel labelKnownIssue2; - private JLabel labelKnownIssueTitle; - private JLabel labelKnownIssue3; - private JButton buttonKnownIssue3; - private JLabel licenseMissingLabel; - - private PluginIconsSettingsTableModel pluginIconsSettingsTableModel; - private UserIconsSettingsTableModel userIconsSettingsTableModel; - private @Nullable Project project; - private List customModels = new ArrayList<>(); - - private boolean forceUpdate = false; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - public SettingsForm() { - buttonEnableAll.addActionListener(e -> enableAll(true)); - buttonDisableAll.addActionListener(e -> enableAll(false)); - filterResetBtn.addActionListener(e -> resetFilter()); - filterTextField.getDocument().addDocumentListener(new DocumentListener() { - @Override - public void insertUpdate(DocumentEvent e) { - applyFilter(); - } - - @Override - public void removeUpdate(DocumentEvent e) { - applyFilter(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - applyFilter(); - } - }); - buttonReloadProjectsIcons.addActionListener(al -> { - try { - RefreshIconsNotifierService.getInstance().triggerAllIconsRefreshAndIconEnablersReinit(); - Messages.showInfoMessage( - i18n.getString("icons.reloaded"), - i18n.getString("icons.reloaded.title") - ); - } catch (Exception e) { - LOGGER.warn("Config updated, but failed to reload icons for project", e); - Messages.showErrorDialog( - i18n.getString("icons.failed.to.reload"), - i18n.getString("icons.failed.to.reload.title") - ); - } - }); - buttonImportIconPackFromFile.addActionListener(al -> { - try { - Optional iconPackPath = FileChooserUtils.chooseFile(i18n.getString("dialog.import.icon.pack.title"), - this.pane, "*.json", "json"); //NON-NLS - if (iconPackPath.isPresent()) { - IconPack iconPack = IconPackUtils.fromJsonFile(new File(iconPackPath.get())); - for (Model model : iconPack.getModels()) { - if (iconPack.getName() != null && !iconPack.getName().isBlank()) { - model.setIconPack(iconPack.getName()); - } - customModels.add(model); - } - foldersFirst(customModels); - setUserIconsTableModel(); - apply(); - Messages.showInfoMessage( - i18n.getString("dialog.import.icon.pack.success"), - i18n.getString("dialog.import.icon.pack.success.title") - ); - } - } catch (Exception e) { - LOGGER.error("Failed to import Icon Pack", e); // TODO replace by error dialog - } - }); - buttonShowIconPacksFromWeb.addActionListener(al -> - BrowserUtil.browse("https://github.com/jonathanlermitage/intellij-extra-icons-plugin/blob/master/themes/THEMES.md#downloadable-icon-packs")); - buttonExportUserIconsAsIconPack.addActionListener(al -> { - try { - Optional folderPath = FileChooserUtils.chooseFolder(i18n.getString("dialog.export.icon.pack.title"), this.pane); - if (folderPath.isPresent()) { - String filename = "extra-icons-" + System.currentTimeMillis() + "-icon-pack.json"; //NON-NLS - AskSingleTextDialog askSingleTextDialog = new AskSingleTextDialog( // TODO replace by Messages.showInputDialog - i18n.getString("dialog.export.ask.icon.pack.name.window.title"), - i18n.getString("dialog.export.ask.icon.pack.name.title")); - String iconPackName = ""; - if (askSingleTextDialog.showAndGet()) { - iconPackName = askSingleTextDialog.getTextFromInput(); - } - File exportFile = new File(folderPath.get() + "/" + filename); - IconPackUtils.writeToJsonFile(exportFile, new IconPack(iconPackName, getBestSettingsService(project).getCustomModels())); - Messages.showInfoMessage( - i18n.getString("dialog.export.icon.pack.success") + "\n" + exportFile.getAbsolutePath(), - i18n.getString("dialog.export.icon.pack.success.title") - ); - } - } catch (Exception e) { - LOGGER.error("Failed to export user icons", e); // TODO replace by error dialog - } - }); - buttonUninstallIconPack.addActionListener(al -> { - try { - apply(); - IconPackUninstallerDialog iconPackUninstallerDialog = new IconPackUninstallerDialog(customModels); - if (iconPackUninstallerDialog.showAndGet()) { - String iconPackToUninstall = iconPackUninstallerDialog.getIconPackNameFromInput(); - if (!iconPackToUninstall.isBlank()) { - customModels = customModels.stream() - .filter(model -> !iconPackToUninstall.equals(model.getIconPack())) - .collect(Collectors.toList()); - foldersFirst(customModels); - setUserIconsTableModel(); - apply(); - } - } - } catch (Exception e) { - LOGGER.error("Failed to uninstall Icon Pack", e); // TODO replace by error dialog - } - }); - detectAdditionalUIScaleButton.addActionListener(al -> { - String uiScale = Double.toString(SettingsService.DEFAULT_ADDITIONAL_UI_SCALE); - additionalUIScaleTextField.setText(uiScale); - additionalUIScaleTextField.grabFocus(); - Messages.showInfoMessage( - MessageFormat.format(i18n.getString("btn.scalefactor.detect.infomessage.message"), uiScale), - i18n.getString("btn.scalefactor.detect.infomessage.title")); - }); - resetHintsButton.addActionListener(al -> { - SettingsIDEService settingsIDEService = SettingsIDEService.getInstance(); - settingsIDEService.setIconviewerShouldRenderSVGHintNotifDisplayed(false); - settingsIDEService.setPluginIsConfigurableHintNotifDisplayed(false); - settingsIDEService.setLifetimeLicIntroHintNotifDisplayed(false); - resetHintsButton.setEnabled(false); - Messages.showInfoMessage( - i18n.getString("reset.hints.success.subtitle"), - i18n.getString("reset.hints.success.title") - ); - }); - } - - public SettingsForm(@NotNull Project project) { - this(); - this.project = project; - } - - public boolean isProjectForm() { - return project != null; - } - - @Nls(capitalization = Nls.Capitalization.Title) - @Override - public String getDisplayName() { - return "Extra Icons"; //NON-NLS - } - - @Nullable - @Override - public String getHelpTopic() { - return null; - } - - @Nullable - @Override - public JComponent createComponent() { - initComponents(); - return pane; - } - - @Override - public boolean isModified() { - if (forceUpdate) { - return true; - } - - SettingsService bestSettingsService = getBestSettingsService(project); - SettingsIDEService settingsIDEService = SettingsIDEService.getInstance(); - - if (isProjectForm()) { - //noinspection DataFlowIssue - SettingsProjectService projectService = SettingsProjectService.getInstance(project); - if (projectService.isOverrideIDESettings() != overrideSettingsCheckbox.isSelected()) { - return true; - } - if (projectService.isAddToIDEUserIcons() != addToIDEUserIconsCheckbox.isSelected()) { - return true; - } - } - if (!CollectionUtils.isEqualCollection(collectDisabledModelIds(), bestSettingsService.getDisabledModelIds())) { - return true; - } - if (!CollectionUtils.isEqualCollection(customModels, bestSettingsService.getCustomModels())) { - return true; - } - if (!CollectionUtils.isEqualCollection(customModels.stream().map(Model::isEnabled).collect(Collectors.toList()), collectUserIconEnabledStates())) { - return true; - } - if (settingsIDEService.getUiTypeIconsPreference() != getSelectedUITypeIconsPreference()) { - return true; - } - if (!bestSettingsService.getIgnoredPattern().equals(ignoredPatternTextField.getText())) { - return true; - } - if (settingsIDEService.getUseIDEFilenameIndex2() != useIDEFilenameIndexCheckbox.isSelected()) { - return true; - } - return !ignoredPatternTextField.getText().equals(bestSettingsService.getIgnoredPattern()) - || !additionalUIScaleTextField.getText().equals(Double.toString(settingsIDEService.getAdditionalUIScale2())); - } - - private List collectDisabledModelIds() { - if (pluginIconsSettingsTableModel == null) { - return Collections.emptyList(); - } - - List disabledModelIds = new ArrayList<>(); - for (int settingsTableRow = 0; settingsTableRow < pluginIconsSettingsTableModel.getRowCount(); settingsTableRow++) { - boolean iconEnabled = (boolean) pluginIconsSettingsTableModel.getValueAt(settingsTableRow, PluginIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER); - if (!iconEnabled) { - disabledModelIds.add((String) pluginIconsSettingsTableModel.getValueAt(settingsTableRow, PluginIconsSettingsTableModel.ICON_ID_COL_NUMBER)); - } - } - return disabledModelIds; - } - - private List collectUserIconEnabledStates() { - if (userIconsSettingsTableModel == null) { - return Collections.emptyList(); - } - - return IntStream.range(0, userIconsSettingsTableModel.getRowCount()).mapToObj( - index -> ((boolean) userIconsSettingsTableModel.getValueAt(index, UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER)) - ).collect(Collectors.toList()); - } - - private UITypeIconsPreference getSelectedUITypeIconsPreference() { - int selectedIndex = uiTypeSelector.getSelectedIndex(); - if (selectedIndex == 0) { - return UITypeIconsPreference.BASED_ON_ACTIVE_UI_TYPE; - } else if (selectedIndex == 1) { - return UITypeIconsPreference.PREFER_OLD_UI_ICONS; - } else { - return UITypeIconsPreference.PREFER_NEW_UI_ICONS; - } - } - - private void setSelectedUITypeIconsPreference(UITypeIconsPreference uiTypeIconsPreference) { - switch (uiTypeIconsPreference) { - case BASED_ON_ACTIVE_UI_TYPE -> uiTypeSelector.setSelectedIndex(0); - case PREFER_OLD_UI_ICONS -> uiTypeSelector.setSelectedIndex(1); - case PREFER_NEW_UI_ICONS -> uiTypeSelector.setSelectedIndex(2); - } - } - - @Override - public void apply() { - SettingsService bestSettingsService = getBestSettingsService(project); - SettingsIDEService settingsIDEService = SettingsIDEService.getInstance(); - - if (isProjectForm()) { - //noinspection DataFlowIssue - SettingsProjectService projectService = SettingsProjectService.getInstance(project); - projectService.setOverrideIDESettings(overrideSettingsCheckbox.isSelected()); - projectService.setAddToIDEUserIcons(addToIDEUserIconsCheckbox.isSelected()); - } - settingsIDEService.setUseIDEFilenameIndex2(useIDEFilenameIndexCheckbox.isSelected()); - settingsIDEService.setUiTypeIconsPreference(getSelectedUITypeIconsPreference()); - bestSettingsService.setDisabledModelIds(collectDisabledModelIds()); - bestSettingsService.setIgnoredPattern(ignoredPatternTextField.getText()); - try { - settingsIDEService.setAdditionalUIScale2(Double.valueOf(additionalUIScaleTextField.getText())); - } catch (NumberFormatException e) { - Messages.showErrorDialog( - MessageFormat.format(i18n.getString("invalid.ui.scalefactor"), additionalUIScaleTextField.getText()), - i18n.getString("invalid.ui.scalefactor.title") - ); - } - List enabledStates = collectUserIconEnabledStates(); - for (int i = 0; i < customModels.size(); i++) { - Model model = customModels.get(i); - model.setEnabled(enabledStates.get(i)); - } - bestSettingsService.setCustomModels(customModels); - - try { - if (isProjectForm()) { - RefreshIconsNotifierService.getInstance().triggerProjectIconEnablersReinit(project); - RefreshIconsNotifierService.getInstance().triggerProjectIconsRefresh(project); - } else { - RefreshIconsNotifierService.getInstance().triggerAllIconsRefreshAndIconEnablersReinit(); - } - } catch (Exception e) { - LOGGER.warn("Config updated, but failed to reload icons", e); - } - - forceUpdate = false; - } - - @Nullable - public Project getProject() { - return this.project; - } - - private void initComponents() { - licenseMissingLabel.setText(i18n.getString("license.not.found.config.title")); - licenseMissingLabel.setVisible(!ExtraIconsLicenseStatus.isLicenseActivated()); - - uiTypeSelector.setRenderer(new ComboBoxWithImageRenderer()); - uiTypeSelector.addItem(new ComboBoxWithImageItem( - "extra-icons/plugin-internals/auto.svg", //NON-NLS - i18n.getString("uitype.selector.auto.select"))); - uiTypeSelector.addItem(new ComboBoxWithImageItem( - "extra-icons/plugin-internals/folder_oldui.svg",//NON-NLS - i18n.getString("uitype.selector.prefer.old"))); - uiTypeSelector.addItem(new ComboBoxWithImageItem( - "extra-icons/plugin-internals/folder_newui.svg", //NON-NLS - i18n.getString("uitype.selector.prefer.new"))); - setSelectedUITypeIconsPreference(SettingsIDEService.getInstance().getUiTypeIconsPreference()); - - disableOrEnableLabel.setText(i18n.getString("quick.action.label")); - - buttonEnableAll.setText(i18n.getString("btn.enable.all")); - buttonEnableAll.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/gutterCheckBoxSelected.svg", SettingsForm.class)); //NON-NLS - - buttonDisableAll.setText(i18n.getString("btn.disable.all")); - buttonDisableAll.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/gutterCheckBox.svg", SettingsForm.class)); //NON-NLS - - ignoredPatternTitle.setText(i18n.getString("label.regex.ignore.relative.paths")); - ignoredPatternTextField.setToolTipText(i18n.getString("field.regex.ignore.relative.paths")); - additionalUIScaleTitle.setText(i18n.getString("label.ui.scalefactor")); - additionalUIScaleTextField.setToolTipText(i18n.getString("field.ui.scalefactor")); - detectAdditionalUIScaleButton.setText(i18n.getString("btn.scalefactor.detect")); - additionalUIScaleTextField.setColumns(4); - filterLabel.setText(i18n.getString("plugin.icons.table.filter")); - filterTextField.setText(""); - filterTextField.setToolTipText(i18n.getString("plugin.icons.table.filter.tooltip")); - filterResetBtn.setText(i18n.getString("btn.plugin.icons.table.filter.reset")); - bottomTip.setText(i18n.getString("plugin.icons.table.bottom.tip")); - resetHintsTitle.setText(i18n.getString("reset.hints.title")); - resetHintsButton.setText(i18n.getString("reset.hints.btn")); - - initCheckbox(); - - loadPluginIconsTable(); - //TableSpeedSearch.installOn(pluginIconsTable); // TODO install a SpeedSearch on icons table once 232 is the new IDE min version, and make it work (for now, the settings search field steals focus) - - userIconsTable.setShowHorizontalLines(false); - userIconsTable.setShowVerticalLines(false); - userIconsTable.setFocusable(false); - userIconsTable.setRowSelectionAllowed(true); - userIconsTablePanel.add(createToolbarDecorator()); - loadUserIconsTable(); - loadIgnoredPattern(); - loadAdditionalUIScale(); - - if (isProjectForm()) { - additionalUIScaleTitle.setVisible(false); - additionalUIScaleTextField.setVisible(false); - buttonReloadProjectsIcons.setVisible(false); - iconPackPanel.setVisible(false); - uiTypeSelector.setVisible(false); - uiTypeSelectorTitle.setVisible(false); - uiTypeSelectorHelpLabel.setVisible(false); - experimentalPanel.setVisible(false); - detectAdditionalUIScaleButton.setVisible(false); - resetHintsTitle.setVisible(false); - resetHintsButton.setVisible(false); - } - - overrideSettingsCheckbox.setText(i18n.getString("checkbox.override.ide.settings")); - overrideSettingsCheckbox.setToolTipText(i18n.getString("checkbox.override.ide.settings.tooltip")); - overrideSettingsCheckbox.addItemListener(item -> { - boolean enabled = item.getStateChange() == ItemEvent.SELECTED; - setComponentState(enabled); - }); - - addToIDEUserIconsCheckbox.setText(i18n.getString("checkbox.dont.overwrite.ide.user.icons")); - addToIDEUserIconsCheckbox.setToolTipText(i18n.getString("checkbox.dont.overwrite.ide.user.icons.tooltip")); - - buttonReloadProjectsIcons.setText(i18n.getString("btn.reload.project.icons")); - buttonReloadProjectsIcons.setToolTipText(i18n.getString("btn.reload.project.icons.tooltip")); - buttonReloadProjectsIcons.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/refresh.svg", SettingsForm.class)); //NON-NLS - - comboBoxIconsGroupSelector.setRenderer(new ComboBoxWithImageRenderer()); - comboBoxIconsGroupSelector.addItem(new ComboBoxWithImageItem(i18n.getString("icons"))); - Arrays.stream(ModelTag.values()).forEach(modelTag -> comboBoxIconsGroupSelector.addItem( - new ComboBoxWithImageItem(modelTag, MessageFormat.format(i18n.getString("icons.tag.name"), modelTag.getName())) - )); - ComboboxSpeedSearch.installSpeedSearch(comboBoxIconsGroupSelector, ComboBoxWithImageItem::getTitle); - - iconPackLabel.setText(i18n.getString("icon.pack.label")); - - buttonImportIconPackFromFile.setText(i18n.getString("btn.import.icon.pack.file")); - buttonImportIconPackFromFile.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/import.svg", SettingsForm.class)); //NON-NLS - - buttonShowIconPacksFromWeb.setText(i18n.getString("btn.import.icon.pack.web")); - buttonShowIconPacksFromWeb.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/web.svg", SettingsForm.class)); //NON-NLS - buttonShowIconPacksFromWeb.setToolTipText(i18n.getString("btn.import.icon.pack.web.tooltip")); - - buttonExportUserIconsAsIconPack.setText(i18n.getString("btn.export.icon.pack")); - buttonExportUserIconsAsIconPack.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/export.svg", SettingsForm.class)); //NON-NLS - - iconPackContextHelpLabel.setText(""); - iconPackContextHelpLabel.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/contextHelp.svg", SettingsForm.class)); //NON-NLS - iconPackContextHelpLabel.setToolTipText(i18n.getString("icon.pack.context.help")); - - uiTypeSelectorTitle.setText(i18n.getString("uitype.selector.context.title")); - uiTypeSelectorHelpLabel.setText(""); - uiTypeSelectorHelpLabel.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/contextHelp.svg", SettingsForm.class)); //NON-NLS - uiTypeSelectorHelpLabel.setToolTipText(i18n.getString("uitype.selector.context.help")); - - buttonUninstallIconPack.setText(i18n.getString("btn.uninstall.icon.pack")); - buttonUninstallIconPack.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/remove.svg", SettingsForm.class)); //NON-NLS - - mainTabbedPane.setTitleAt(0, " " + i18n.getString("main.pane.main.config.title") + " "); - mainTabbedPane.setTitleAt(1, " " + i18n.getString("main.pane.advanced.config.title") + " "); - mainTabbedPane.setTitleAt(2, " " + i18n.getString("main.pane.known.issues.title") + " "); - - iconsTabbedPane.setTitleAt(0, " " + i18n.getString("plugin.icons.table.tab.name") + " "); - iconsTabbedPane.setTitleAt(1, " " + i18n.getString("user.icons.table.tab.name") + " "); - - experimentalPanel.setBorder(IdeBorderFactory.createTitledBorder(i18n.getString("experimental.panel.title"))); - - useIDEFilenameIndexCheckbox.setSelected(SettingsIDEService.getInstance().getUseIDEFilenameIndex2()); - useIDEFilenameIndexCheckbox.setText(i18n.getString("checkbox.use.ide.filename.index.label")); - useIDEFilenameIndexTip.setText(i18n.getString("checkbox.use.ide.filename.index.tip")); - - labelKnownIssueTitle.setText(i18n.getString("known.issues.title")); - - labelKnownIssue1.setText(i18n.getString("known.issue.label1")); - labelKnownIssue2.setText(i18n.getString("known.issue.label2")); - labelKnownIssue3.setText(i18n.getString("known.issue.label3")); - buttonKnownIssue1.setText(i18n.getString("known.issue.btn1")); - buttonKnownIssue2.setText(i18n.getString("known.issue.btn2")); - buttonKnownIssue3.setText(i18n.getString("known.issue.btn3")); - buttonKnownIssue1.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/web.svg", SettingsForm.class)); //NON-NLS - buttonKnownIssue2.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/web.svg", SettingsForm.class)); //NON-NLS - buttonKnownIssue3.setIcon(IconLoader.getIcon("extra-icons/plugin-internals/web.svg", SettingsForm.class)); //NON-NLS - buttonKnownIssue1.addActionListener(al -> - BrowserUtil.browse("https://youtrack.jetbrains.com/issue/IDEA-247819")); - buttonKnownIssue2.addActionListener(al -> - BrowserUtil.browse("https://youtrack.jetbrains.com/issue/IDEA-339254")); - buttonKnownIssue3.addActionListener(al -> - BrowserUtil.browse("https://youtrack.jetbrains.com/issue/RIDER-101621")); - - initCheckbox(); - } - - private void createUIComponents() { - // Use default project here because project is not available yet - } - - private void initCheckbox() { - if (!isProjectForm()) { - overrideSettingsPanel.setVisible(false); - return; - } - //noinspection DataFlowIssue project is not null here - SettingsProjectService settingsService = SettingsProjectService.getInstance(project); - boolean shouldOverride = settingsService.isOverrideIDESettings(); - overrideSettingsCheckbox.setSelected(shouldOverride); - setComponentState(shouldOverride); - boolean shouldAdd = settingsService.isAddToIDEUserIcons(); - addToIDEUserIconsCheckbox.setSelected(shouldAdd); - } - - private void setComponentState(boolean enabled) { - Stream.of(pluginIconsTable, userIconsTable, ignoredPatternTitle, ignoredPatternTextField, - iconsTabbedPane, addToIDEUserIconsCheckbox, filterLabel, - filterTextField, filterResetBtn, buttonEnableAll, - disableOrEnableOrLabel, buttonDisableAll, disableOrEnableLabel, - comboBoxIconsGroupSelector, mainTabbedPane).forEach(jComponent -> jComponent.setEnabled(enabled)); - } - - @Override - public void reset() { - initCheckbox(); - loadPluginIconsTable(); - loadUserIconsTable(); - loadIgnoredPattern(); - loadAdditionalUIScale(); - } - - private void loadUserIconsTable() { - customModels = new ArrayList<>(getBestSettingsService(project).getCustomModels()); - foldersFirst(customModels); - setUserIconsTableModel(); - } - - private void setUserIconsTableModel() { - SettingsIDEService settingsIDEService = SettingsIDEService.getInstance(); - - int currentSelected = userIconsSettingsTableModel != null ? userIconsTable.getSelectedRow() : -1; - userIconsSettingsTableModel = new UserIconsSettingsTableModel(); - final Double additionalUIScale = settingsIDEService.getAdditionalUIScale2(); - final UITypeIconsPreference uiTypeIconsPreference = settingsIDEService.getUiTypeIconsPreference(); - customModels.forEach(m -> { - try { - userIconsSettingsTableModel.addRow(new Object[]{ - IconUtils.getIcon(m, additionalUIScale, uiTypeIconsPreference), - m.isEnabled(), - m.getDescription(), - m.getIconPack() - }); - } catch (Throwable e) { - LOGGER.warn(e); - } - } - ); - userIconsTable.setModel(userIconsSettingsTableModel); - userIconsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - userIconsTable.setRowHeight(28); - TableColumnModel columnModel = userIconsTable.getColumnModel(); - columnModel.getColumn(UserIconsSettingsTableModel.ICON_COL_NUMBER).setMaxWidth(28); - columnModel.getColumn(UserIconsSettingsTableModel.ICON_COL_NUMBER).setWidth(28); - columnModel.getColumn(UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER).setWidth(28); - columnModel.getColumn(UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER).setMaxWidth(28); - columnModel.getColumn(UserIconsSettingsTableModel.ICON_LABEL_COL_NUMBER).sizeWidthToFit(); - columnModel.getColumn(UserIconsSettingsTableModel.ICON_PACK_COL_NUMBER).setMinWidth(250); - columnModel.getColumn(UserIconsSettingsTableModel.ICON_PACK_COL_NUMBER).setMaxWidth(450); - columnModel.getColumn(UserIconsSettingsTableModel.ICON_PACK_COL_NUMBER).setPreferredWidth(280); - if (currentSelected != -1 && currentSelected < userIconsTable.getRowCount()) { - userIconsTable.setRowSelectionInterval(currentSelected, currentSelected); - } - } - - /** - * Get the selected tag for quick action. Empty if "all icons" is selected, otherwise returns selected tag. - */ - private Optional getSelectedTag() { - int selectedItemIdx = comboBoxIconsGroupSelector.getSelectedIndex(); - if (selectedItemIdx == 0) { - return Optional.empty(); - } - return Optional.of(ModelTag.values()[selectedItemIdx - 1]); - } - - private void enableAll(boolean enable) { - boolean isPluginIconsSettingsTableModelSelected = iconsTabbedPane.getSelectedIndex() == 0; - DefaultTableModel tableModel = isPluginIconsSettingsTableModelSelected ? pluginIconsSettingsTableModel : userIconsSettingsTableModel; - for (int settingsTableRow = 0; settingsTableRow < tableModel.getRowCount(); settingsTableRow++) { - Optional selectedTag = getSelectedTag(); - if (selectedTag.isEmpty()) { - tableModel.setValueAt(enable, settingsTableRow, PluginIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER); // Enabled column number is the same for both models - } else if (isPluginIconsSettingsTableModelSelected) { - @SuppressWarnings("unchecked") List rowTags = (List) tableModel.getValueAt(settingsTableRow, PluginIconsSettingsTableModel.ICON_TAGS_ENUM_LIST_COL_NUMBER); - if (rowTags.contains(selectedTag.get())) { - tableModel.setValueAt(enable, settingsTableRow, PluginIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER); - } - } - } - } - - private void applyFilter() { - String filter = filterTextField.getText(); - TableRowSorter sorter = new TableRowSorter<>(((PluginIconsSettingsTableModel) pluginIconsTable.getModel())); - if (StringUtil.isEmpty(filter)) { - filter = ".*"; - } - try { - sorter.setStringConverter(new TableStringConverter() { - @Override - public String toString(TableModel model, int row, int column) { - String desc = model.getValueAt(row, PluginIconsSettingsTableModel.ICON_LABEL_COL_NUMBER).toString(); - return desc + " " + desc.toLowerCase(Locale.ENGLISH) + " " + desc.toUpperCase(Locale.ENGLISH); - } - }); - // "yes"/"no" to filter by icons enabled/disabled, otherwise regex filter - boolean isYesFilter = "yes".equalsIgnoreCase(filter); //NON-NLS - if (isYesFilter || "no".equalsIgnoreCase(filter)) { //NON-NLS - sorter.setRowFilter(new RowFilter<>() { - @Override - public boolean include(Entry entry) { - boolean iconEnabled = ((boolean) entry.getValue(PluginIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER)); - if (isYesFilter) { - return iconEnabled; - } else { - return !iconEnabled; - } - } - }); - } else { - sorter.setRowFilter(RowFilter.regexFilter(filter)); - } - pluginIconsTable.setRowSorter(sorter); - } catch (PatternSyntaxException pse) { - LOGGER.warnWithDebug(pse); - } - } - - private void resetFilter() { - filterTextField.setText(""); - applyFilter(); - } - - private void loadPluginIconsTable() { - SettingsIDEService settingsIDEService = SettingsIDEService.getInstance(); - - int currentSelected = pluginIconsSettingsTableModel != null ? pluginIconsTable.getSelectedRow() : -1; - pluginIconsSettingsTableModel = new PluginIconsSettingsTableModel(); - List allRegisteredModels = SettingsService.getAllRegisteredModels(); - if (isProjectForm()) { - // IDE icon overrides work at IDE level only, not a project level, that's why - // the project-level icons list won't show IDE icons. - allRegisteredModels = allRegisteredModels.stream() - .filter(model -> model.getModelType() != ModelType.ICON) - .collect(Collectors.toList()); - } - foldersFirst(allRegisteredModels); - List disabledModelIds = getBestSettingsService(project).getDisabledModelIds(); - final Double additionalUIScale = settingsIDEService.getAdditionalUIScale2(); - final UITypeIconsPreference uiTypeIconsPreference = settingsIDEService.getUiTypeIconsPreference(); - final Icon restartIcon = IconLoader.getIcon("extra-icons/plugin-internals/reboot.svg", SettingsForm.class); //NON-NLS - allRegisteredModels.forEach(m -> pluginIconsSettingsTableModel.addRow(new Object[]{ - IconUtils.getIcon(m, additionalUIScale, uiTypeIconsPreference), - !disabledModelIds.contains(m.getId()), - m.getDescription(), - Arrays.toString(m.getTags().stream().map(ModelTag::getName).toArray()).replaceAll("\\[|]*", "").trim(), - Strings.isNullOrEmpty(m.getIdeIcon()) ? null : restartIcon, - m.getTags(), - m.getId() - }) - ); - pluginIconsTable.setModel(pluginIconsSettingsTableModel); - pluginIconsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - pluginIconsTable.setRowHeight(28); - TableColumnModel columnModel = pluginIconsTable.getColumnModel(); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_COL_NUMBER).setMaxWidth(28); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_COL_NUMBER).setWidth(28); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER).setWidth(28); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER).setMaxWidth(28); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_LABEL_COL_NUMBER).sizeWidthToFit(); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_TAGS_LABEL_COL_NUMBER).setMaxWidth(120); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_TAGS_LABEL_COL_NUMBER).setMinWidth(120); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_TAGS_LABEL_COL_NUMBER).setMaxWidth(120); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_TAGS_LABEL_COL_NUMBER).setMinWidth(120); - int requireRestartColWidth = I18nUtils.isChineseUIEnabled() ? 100 : 80; - if (OS.detectOS() == OS.WIN) { - requireRestartColWidth -= 5; - } - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_REQUIRE_IDE_RESTART).setMaxWidth(requireRestartColWidth); - columnModel.getColumn(PluginIconsSettingsTableModel.ICON_REQUIRE_IDE_RESTART).setMinWidth(requireRestartColWidth); - - // set invisible but keep data - columnModel.removeColumn(columnModel.getColumn(PluginIconsSettingsTableModel.ICON_ID_COL_NUMBER)); - columnModel.removeColumn(columnModel.getColumn(PluginIconsSettingsTableModel.ICON_TAGS_ENUM_LIST_COL_NUMBER)); - if (currentSelected != -1) { - pluginIconsTable.setRowSelectionInterval(currentSelected, currentSelected); - } - } - - private void loadIgnoredPattern() { - ignoredPatternTextField.setText(getBestSettingsService(project).getIgnoredPattern()); - } - - private void loadAdditionalUIScale() { - additionalUIScaleTextField.setText(Double.toString(SettingsIDEService.getInstance().getAdditionalUIScale2())); - } - - private JComponent createToolbarDecorator() { - ToolbarDecorator decorator = ToolbarDecorator.createDecorator(userIconsTable) - - .setAddAction(anActionButton -> { - ModelDialog modelDialog = new ModelDialog(this, this.project); - if (modelDialog.showAndGet()) { - Model newModel = modelDialog.getModelFromInput(); - customModels.add(newModel); - foldersFirst(customModels); - setUserIconsTableModel(); - } - }) - - .setEditAction(anActionButton -> { - int currentSelected = userIconsTable.getSelectedRow(); - ModelDialog modelDialog = new ModelDialog(this, this.project); - modelDialog.setModelToEdit(customModels.get(currentSelected)); - if (modelDialog.showAndGet()) { - Model newModel = modelDialog.getModelFromInput(); - customModels.set(currentSelected, newModel); - setUserIconsTableModel(); - } - }) - - .setRemoveAction(anActionButton -> { - customModels.remove(userIconsTable.getSelectedRow()); - setUserIconsTableModel(); - }) - - .setButtonComparator(i18n.getString("btn.add"), i18n.getString("btn.edit"), i18n.getString("btn.remove")) - - .setMoveUpAction(anActionButton -> reorderUserIcons(MoveDirection.UP, userIconsTable.getSelectedRow())) - - .setMoveDownAction(anActionButton -> reorderUserIcons(MoveDirection.DOWN, userIconsTable.getSelectedRow())); - return decorator.createPanel(); - } - - private void reorderUserIcons(MoveDirection moveDirection, int selectedItemIdx) { - Model modelToMove = customModels.get(selectedItemIdx); - int newSelectedItemIdx = moveDirection == MoveDirection.UP ? selectedItemIdx - 1 : selectedItemIdx + 1; - boolean selectedItemIsEnabled = (boolean) userIconsTable.getValueAt(selectedItemIdx, UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER); - boolean newSelectedItemIsEnabled = (boolean) userIconsTable.getValueAt(newSelectedItemIdx, UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER); - List itemsAreEnabled = new ArrayList<>(); - for (int i = 0; i < userIconsTable.getRowCount(); i++) { - itemsAreEnabled.add((Boolean) userIconsTable.getValueAt(i, UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER)); - } - - customModels.set(selectedItemIdx, customModels.get(newSelectedItemIdx)); - customModels.set(newSelectedItemIdx, modelToMove); - setUserIconsTableModel(); - - // User may have enabled or disabled some items, but changes are not applied yet to customModels, so setUserIconsTableModel will reset - // the Enabled column to previous state. We need to reapply user changes on this column. - for (int i = 0; i < userIconsTable.getRowCount(); i++) { - userIconsTable.setValueAt(itemsAreEnabled.get(i), i, UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER); - } - userIconsTable.setValueAt(selectedItemIsEnabled, newSelectedItemIdx, UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER); - userIconsTable.setValueAt(newSelectedItemIsEnabled, selectedItemIdx, UserIconsSettingsTableModel.ICON_ENABLED_COL_NUMBER); - - userIconsTable.clearSelection(); - userIconsTable.setRowSelectionInterval(newSelectedItemIdx, newSelectedItemIdx); - - // TODO fix Model and ModelCondition equals & hashCode methods in order - // to fix CollectionUtils.isEqualCollection(customModels, service.getCustomModels()). - // For now, the comparison returns true when customModels ordering changed. It should return false. - forceUpdate = true; - } - - /** - * Returns the Project settings service if the project is not null, otherwise returns the IDE settings service. - */ - @NotNull - private SettingsService getBestSettingsService(@Nullable Project project) { - if (project != null) { - return SettingsProjectService.getInstance(project); - } - return SettingsIDEService.getInstance(); - } - - private enum MoveDirection { - UP, - DOWN - } - - private void foldersFirst(List models) { - models.sort((o1, o2) -> { - // folders first, then files - return ModelType.compare(o1.getModelType(), o2.getModelType()); - }); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/AskSingleTextDialog.form b/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/AskSingleTextDialog.form deleted file mode 100644 index c6c8563f..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/AskSingleTextDialog.form +++ /dev/null @@ -1,54 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/AskSingleTextDialog.java b/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/AskSingleTextDialog.java deleted file mode 100644 index ae099799..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/AskSingleTextDialog.java +++ /dev/null @@ -1,41 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.dialogs; - -import com.intellij.openapi.ui.DialogWrapper; -import org.jetbrains.annotations.Nullable; - -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; - -/** - * A dialog which asks for a single text input. Input can be empty. - */ -public class AskSingleTextDialog extends DialogWrapper { - - private JPanel pane; - private JTextField textField; - private JLabel label; - - @Override - protected @Nullable JComponent createCenterPanel() { - return pane; - } - - public AskSingleTextDialog(String windowTitle, String fieldTitle) { - super(true); - init(); - setTitle(windowTitle); - initComponents(fieldTitle); - } - - private void initComponents(String fieldTitle) { - label.setText(fieldTitle); - } - - public String getTextFromInput() { - return textField.getText(); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/IconPackUninstallerDialog.form b/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/IconPackUninstallerDialog.form deleted file mode 100644 index 1b0100d8..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/IconPackUninstallerDialog.form +++ /dev/null @@ -1,57 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/IconPackUninstallerDialog.java b/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/IconPackUninstallerDialog.java deleted file mode 100644 index 8f879040..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/IconPackUninstallerDialog.java +++ /dev/null @@ -1,59 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.dialogs; - -import com.intellij.openapi.ui.DialogWrapper; -import lermitage.intellij.extra.icons.Model; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import org.jetbrains.annotations.Nullable; - -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import java.util.HashSet; -import java.util.List; -import java.util.ResourceBundle; -import java.util.Set; - -/** - * A dialog which asks to choose an icon pack name, or nothing. - */ -public class IconPackUninstallerDialog extends DialogWrapper { - - private final List models; - - private JPanel pane; - private JLabel iconPackChooserTitleLabel; - private JComboBox iconPackComboBox; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - @Override - protected @Nullable JComponent createCenterPanel() { - return pane; - } - - public IconPackUninstallerDialog(List models) { - super(true); - this.models = models; - init(); - setTitle(i18n.getString("model.dialog.uninstall.icon.pack.window.title")); - initComponents(); - } - - private void initComponents() { - iconPackChooserTitleLabel.setText(i18n.getString("model.dialog.uninstall.icon.pack.title")); - Set iconPacks = new HashSet<>(); - models.forEach(model -> { - if (model.getIconPack() != null && !model.getIconPack().isBlank()) { - iconPacks.add(model.getIconPack()); - } - }); - iconPacks.stream().sorted().forEach(s -> iconPackComboBox.addItem(s)); - } - - public String getIconPackNameFromInput() { - return iconPackComboBox.getItemAt(iconPackComboBox.getSelectedIndex()); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelConditionDialog.form b/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelConditionDialog.form deleted file mode 100644 index 78cb5346..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelConditionDialog.form +++ /dev/null @@ -1,167 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelConditionDialog.java b/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelConditionDialog.java deleted file mode 100644 index 12771aab..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelConditionDialog.java +++ /dev/null @@ -1,284 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.dialogs; - -import com.intellij.openapi.ui.DialogWrapper; -import com.intellij.openapi.ui.ValidationInfo; -import com.intellij.ui.components.JBLabel; -import lermitage.intellij.extra.icons.ModelCondition; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import org.jetbrains.annotations.Nullable; - -import javax.swing.ButtonGroup; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JTextField; -import java.awt.event.ItemEvent; -import java.text.MessageFormat; -import java.util.ResourceBundle; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - -public class ModelConditionDialog extends DialogWrapper { - - public static final String FIELD_SEPARATOR = ";"; - public static final String FIELD_SEPARATOR_NAME = "semicolon"; //NON-NLS - - private JPanel dialogPanel; - private JCheckBox regexCheckBox; - private JTextField regexTextField; - private JCheckBox parentsCheckBox; - private JTextField parentsTextField; - private JCheckBox namesCheckBox; - private JTextField namesTextField; - private JCheckBox extensionsCheckBox; - private JTextField extensionsTextField; - private JRadioButton mayEndWithRadioButton; - private JRadioButton endsWithRadioButton; - private JRadioButton startsWithRadioButton; - private JRadioButton equalsRadioButton; - private JCheckBox noDotCheckBox; - private JBLabel tipsLabel; - private JCheckBox facetsCheckBox; - private JTextField facetsTextField; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - public ModelConditionDialog() { - super(false); - init(); - setTitle(i18n.getString("model.condition.dialog.title")); - } - - @Nullable - @Override - protected JComponent createCenterPanel() { - initComponents(); - return dialogPanel; - } - - private void initComponents() { - ButtonGroup endButtonGroup = new ButtonGroup(); - endButtonGroup.add(endsWithRadioButton); - endButtonGroup.add(mayEndWithRadioButton); - endsWithRadioButton.setSelected(true); - endsWithRadioButton.setEnabled(false); - mayEndWithRadioButton.setEnabled(false); - - ButtonGroup namesButtonGroup = new ButtonGroup(); - namesButtonGroup.add(startsWithRadioButton); - namesButtonGroup.add(equalsRadioButton); - startsWithRadioButton.setSelected(true); - startsWithRadioButton.setEnabled(false); - equalsRadioButton.setEnabled(false); - noDotCheckBox.setEnabled(false); - - regexCheckBox.addItemListener(item -> { - boolean selected = item.getStateChange() == ItemEvent.SELECTED; - regexTextField.setEnabled(selected); - }); - - parentsCheckBox.addItemListener(item -> { - boolean selected = item.getStateChange() == ItemEvent.SELECTED; - parentsTextField.setEnabled(selected); - }); - - namesCheckBox.addItemListener(item -> { - boolean selected = item.getStateChange() == ItemEvent.SELECTED; - namesTextField.setEnabled(selected); - startsWithRadioButton.setEnabled(selected); - equalsRadioButton.setEnabled(selected); - }); - - extensionsCheckBox.addItemListener(item -> { - boolean selected = item.getStateChange() == ItemEvent.SELECTED; - extensionsTextField.setEnabled(selected); - mayEndWithRadioButton.setEnabled(selected); - endsWithRadioButton.setEnabled(selected); - }); - - startsWithRadioButton.addItemListener(item -> { - boolean selected = item.getStateChange() == ItemEvent.SELECTED; - noDotCheckBox.setEnabled(selected); - }); - - startsWithRadioButton.addPropertyChangeListener("enabled", propertyChange -> - noDotCheckBox.setEnabled((boolean) propertyChange.getNewValue()) - ); - - facetsCheckBox.addItemListener(item -> { - boolean selected = item.getStateChange() == ItemEvent.SELECTED; - facetsTextField.setEnabled(selected); - }); - - regexTextField.setEnabled(false); - parentsTextField.setEnabled(false); - namesTextField.setEnabled(false); - extensionsTextField.setEnabled(false); - facetsTextField.setEnabled(false); - - tipsLabel.setText(MessageFormat.format(i18n.getString("model.condition.dialog.tips"), FIELD_SEPARATOR_NAME)); - - regexCheckBox.setText(i18n.getString("model.condition.dialog.regex.checkbox")); - parentsCheckBox.setText(i18n.getString("model.condition.dialog.parents.checkbox")); - namesCheckBox.setText(i18n.getString("model.condition.dialog.names.checkbox")); - startsWithRadioButton.setText(i18n.getString("model.condition.dialog.startswith.checkbox")); - equalsRadioButton.setText(i18n.getString("model.condition.dialog.equals.checkbox")); - noDotCheckBox.setText(i18n.getString("model.condition.dialog.nodot.checkbox")); - extensionsCheckBox.setText(i18n.getString("model.condition.dialog.extensions.checkbox")); - endsWithRadioButton.setText(i18n.getString("model.condition.dialog.endswith.checkbox")); - mayEndWithRadioButton.setText(i18n.getString("model.condition.dialog.mayendwith.checkbox")); - facetsCheckBox.setText(i18n.getString("model.condition.dialog.facets.checkbox")); - } - - private void createUIComponents() { - } - - @Nullable - @Override - protected ValidationInfo doValidate() { - if (regexCheckBox.isSelected()) { - String regex = regexTextField.getText(); - PatternSyntaxException exception = tryCompileRegex(regex); - if (regex.isEmpty() || exception != null) { - String message = i18n.getString("model.condition.dialog.err.invalid.regex"); - if (exception != null) { - message += " ( " + exception.getMessage() + ")"; - } - return new ValidationInfo(message); - } - } - - if (parentsCheckBox.isSelected()) { - if (parentsTextField.getText().isEmpty()) { - return new ValidationInfo(i18n.getString("model.condition.dialog.err.parent.missing"), parentsTextField); - } - } - - if (namesCheckBox.isSelected()) { - if (namesTextField.getText().isEmpty()) { - return new ValidationInfo(i18n.getString("model.condition.dialog.err.name.missing"), namesTextField); - } - } - - if (extensionsCheckBox.isSelected()) { - if (extensionsTextField.getText().isEmpty()) { - return new ValidationInfo(i18n.getString("model.condition.dialog.err.extension.missing"), extensionsTextField); - } - } - - if (mayEndWithRadioButton.isSelected() && mayEndWithRadioButton.isEnabled()) { - if (!namesCheckBox.isSelected()) { - return new ValidationInfo(i18n.getString("model.condition.dialog.err.names.checkbox.if.may.end"), namesCheckBox); - } - } - - if (facetsCheckBox.isSelected()) { - if (facetsTextField.getText().isEmpty()) { - return new ValidationInfo(i18n.getString("model.condition.dialog.err.facet.missing"), facetsTextField); - } - } - - if (!getModelConditionFromInput().isValid()) { - return new ValidationInfo(i18n.getString("model.condition.dialog.err.select.at.least.one.checkbox")); - } - - return null; - } - - /** - * Creates a {@link ModelCondition} object from the user input. - */ - public ModelCondition getModelConditionFromInput() { - ModelCondition modelCondition = new ModelCondition(); - - if (regexCheckBox.isSelected()) { - modelCondition.setRegex(regexTextField.getText()); - } - - if (parentsCheckBox.isSelected()) { - String[] parents = parentsTextField.getText().split(FIELD_SEPARATOR); - modelCondition.setParents(parents); - } - - if (namesCheckBox.isSelected()) { - String[] names = namesTextField.getText().split(FIELD_SEPARATOR); - if (startsWithRadioButton.isSelected()) { - modelCondition.setStart(names); - if (noDotCheckBox.isSelected()) { - modelCondition.setNoDot(); - } - } else { - modelCondition.setEq(names); - } - } - - if (extensionsCheckBox.isSelected()) { - String[] extensions = extensionsTextField.getText().split(FIELD_SEPARATOR); - if (mayEndWithRadioButton.isSelected()) { - modelCondition.setMayEnd(extensions); - } else { - modelCondition.setEnd(extensions); - } - } - - if (facetsCheckBox.isSelected()) { - String[] facets = facetsTextField.getText().toLowerCase().split(FIELD_SEPARATOR); - modelCondition.setFacets(facets); - } - - return modelCondition; - } - - /** - * Sets a condition that can be edited using this dialog. - */ - public void setCondition(ModelCondition modelCondition) { - setTitle(i18n.getString("model.condition.dialog.edit.condition.title")); - - if (modelCondition.hasRegex()) { - regexCheckBox.setSelected(true); - regexTextField.setText(modelCondition.getRegex()); - } - - if (modelCondition.hasCheckParent()) { - parentsCheckBox.setSelected(true); - parentsTextField.setText(String.join(FIELD_SEPARATOR, modelCondition.getParents())); - } - - if (modelCondition.hasStart() || modelCondition.hasEq()) { - namesCheckBox.setSelected(true); - namesTextField.setText(String.join(FIELD_SEPARATOR, modelCondition.getNames())); - startsWithRadioButton.setSelected(modelCondition.hasStart()); - noDotCheckBox.setSelected(modelCondition.hasNoDot()); - equalsRadioButton.setSelected(modelCondition.hasEq()); - } - - if (modelCondition.hasEnd() || modelCondition.hasMayEnd()) { - extensionsCheckBox.setSelected(true); - extensionsTextField.setText(String.join(FIELD_SEPARATOR, modelCondition.getExtensions())); - endsWithRadioButton.setSelected(modelCondition.hasEnd()); - mayEndWithRadioButton.setSelected(modelCondition.hasMayEnd()); - } - - if (modelCondition.hasFacets()) { - facetsCheckBox.setSelected(true); - facetsTextField.setText(String.join(FIELD_SEPARATOR, modelCondition.getFacets())); - } - } - - /** - * Tries to compile a given regex and returns an exception if it failed. - */ - @Nullable - private PatternSyntaxException tryCompileRegex(String regex) { - try { - Pattern.compile(regex); - return null; - } catch (PatternSyntaxException ex) { - return ex; - } - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelDialog.form b/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelDialog.form deleted file mode 100644 index a8a77489..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelDialog.form +++ /dev/null @@ -1,181 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelDialog.java b/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelDialog.java deleted file mode 100644 index c8c236a4..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/dialogs/ModelDialog.java +++ /dev/null @@ -1,497 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.dialogs; - -import com.intellij.ide.ui.laf.darcula.ui.DarculaTextBorder; -import com.intellij.openapi.actionSystem.ex.ActionUtil; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.DialogWrapper; -import com.intellij.openapi.ui.Messages; -import com.intellij.openapi.ui.ValidationInfo; -import com.intellij.openapi.util.IconLoader; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileManager; -import com.intellij.ui.CheckBoxList; -import com.intellij.ui.ComboboxSpeedSearch; -import com.intellij.ui.JBColor; -import com.intellij.ui.ListUtil; -import com.intellij.ui.ToolbarDecorator; -import com.intellij.ui.components.JBLabel; -import com.intellij.ui.components.JBTextField; -import com.intellij.util.IconUtil; -import lermitage.intellij.extra.icons.ExtraIconProvider; -import lermitage.intellij.extra.icons.Globals; -import lermitage.intellij.extra.icons.IconType; -import lermitage.intellij.extra.icons.Model; -import lermitage.intellij.extra.icons.ModelCondition; -import lermitage.intellij.extra.icons.ModelType; -import lermitage.intellij.extra.icons.cfg.SettingsForm; -import lermitage.intellij.extra.icons.cfg.services.SettingsIDEService; -import lermitage.intellij.extra.icons.utils.BundledIcon; -import lermitage.intellij.extra.icons.utils.ComboBoxWithImageRenderer; -import lermitage.intellij.extra.icons.utils.FileChooserUtils; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import lermitage.intellij.extra.icons.utils.IconUtils; -import lermitage.intellij.extra.icons.utils.ProjectUtils; -import org.jetbrains.annotations.Nullable; - -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.SwingUtilities; -import javax.swing.border.LineBorder; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import java.awt.BorderLayout; -import java.awt.Cursor; -import java.awt.Desktop; -import java.awt.event.ComponentAdapter; -import java.awt.event.ItemEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.net.URI; -import java.nio.file.Path; -import java.text.MessageFormat; -import java.util.Collections; -import java.util.Objects; -import java.util.Optional; -import java.util.ResourceBundle; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.IntStream; - -import static lermitage.intellij.extra.icons.cfg.dialogs.ModelConditionDialog.FIELD_SEPARATOR; - -public class ModelDialog extends DialogWrapper { - - private final SettingsForm settingsForm; - private final Project project; - - private CheckBoxList conditionsCheckboxList; - private JPanel pane; - private JBTextField modelIDField; - private JBTextField descriptionField; - private JComboBox typeComboBox; - private JLabel iconLabel; - private JButton chooseIconButton; - private JPanel conditionsPanel; - private JBLabel idLabel; - private JComboBox chooseIconSelector; - private JBTextField ideIconOverrideTextField; - private JLabel ideIconOverrideLabel; - private JBLabel ideIconOverrideTip; - private JTextField testTextField; - private JLabel testLabel; - private JLabel descriptionLabel; - private JLabel typeLabel; - private JLabel iconLeftLabel; - private JBTextField iconPackField; - private JLabel iconPackLabel; - - private IconUtils.ImageWrapper customIconImage; - private JPanel toolbarPanel; - - private Model modelToEdit; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - public ModelDialog(SettingsForm settingsForm, Project project) { - super(true); - this.settingsForm = settingsForm; - this.project = project; - init(); - setTitle(i18n.getString("model.dialog.title")); - initComponents(); - conditionsPanel.addComponentListener(new ComponentAdapter() { - }); - } - - @Nullable - @Override - protected JComponent createCenterPanel() { - return pane; - } - - private void initComponents() { - setIdComponentsVisible(false); - ideIconOverrideTip.setText(i18n.getString("model.dialog.override.ide.tip")); - ideIconOverrideTip.setToolTipText(i18n.getString("model.dialog.override.ide.tip.tooltip")); - ideIconOverrideTip.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - ideIconOverrideTip.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - try { - Desktop.getDesktop().browse(new URI("https://jetbrains.design/intellij/resources/icons_list/")); - } catch (Exception ex) { - //ignore - } - } - }); - conditionsCheckboxList = new CheckBoxList<>((index, value) -> { - //noinspection ConstantConditions - conditionsCheckboxList.getItemAt(index).setEnabled(value); - }); - - chooseIconButton.addActionListener(al -> { - try { - customIconImage = loadCustomIcon(); - if (customIconImage != null) { - chooseIconSelector.setSelectedIndex(0); - iconLabel.setIcon(IconUtil.createImageIcon(customIconImage.getImage())); - } - } catch (IllegalArgumentException ex) { - Messages.showErrorDialog(ex.getMessage(), i18n.getString("model.dialog.choose.icon.failed.to.load.icon")); - } - }); - - conditionsCheckboxList.getEmptyText().setText(i18n.getString("model.dialog.choose.icon.no.conditions.added")); - conditionsCheckboxList.addPropertyChangeListener(evt -> testModel(getModelFromInput(), testTextField)); - - toolbarPanel = createConditionsListToolbar(); - conditionsPanel.add(toolbarPanel, BorderLayout.CENTER); - - typeComboBox.addItem(ModelType.FILE.getI18nFriendlyName()); - typeComboBox.addItem(ModelType.DIR.getI18nFriendlyName()); - if (!settingsForm.isProjectForm()) { - typeComboBox.addItem(ModelType.ICON.getI18nFriendlyName()); - } - - typeComboBox.addActionListener(e -> updateUIOnTypeChange()); - - chooseIconSelector.addItem(i18n.getString("model.dialog.choose.icon.first.item")); - ExtraIconProvider.allModels().stream() - .map(Model::getIcon) - .sorted() - .distinct() - .forEach(iconPath -> chooseIconSelector.addItem(new BundledIcon( - iconPath, MessageFormat.format(i18n.getString("model.dialog.choose.icon.bundled.icon"), - iconPath.replace("extra-icons/", ""))))); //NON-NLS - ComboBoxWithImageRenderer renderer = new ComboBoxWithImageRenderer(); - // customIconImage - chooseIconSelector.setRenderer(renderer); - chooseIconSelector.setToolTipText(i18n.getString("model.dialog.choose.icon.tooltip")); - chooseIconSelector.addItemListener(event -> { - if (event.getStateChange() == ItemEvent.SELECTED) { - Object item = event.getItem(); - if (item instanceof BundledIcon bundledIcon) { - iconLabel.setIcon(IconLoader.getIcon((bundledIcon).iconPath(), IconUtils.class)); - customIconImage = new IconUtils.ImageWrapper(bundledIcon.iconPath()); - } else if (item instanceof String) { - iconLabel.setIcon(new ImageIcon()); - } - } - }); - - ComboboxSpeedSearch.installSpeedSearch(chooseIconSelector, Object::toString); - - testLabel.setText(i18n.getString("model.dialog.model.tester")); - testTextField.setText(""); - testTextField.setToolTipText(i18n.getString("model.dialog.model.tester.tooltip")); - testTextField.getDocument().addDocumentListener(new DocumentListener() { - @Override - public void insertUpdate(DocumentEvent e) { - testModel(getModelFromInput(), testTextField); - } - - @Override - public void removeUpdate(DocumentEvent e) { - testModel(getModelFromInput(), testTextField); - } - - @Override - public void changedUpdate(DocumentEvent e) { - testModel(getModelFromInput(), testTextField); - } - }); - - idLabel.setText(i18n.getString("model.dialog.id.label")); - descriptionLabel.setText(i18n.getString("model.dialog.description.label")); - typeLabel.setText(i18n.getString("model.dialog.type.label")); - iconPackLabel.setText(i18n.getString("model.dialog.iconpack.label")); - ideIconOverrideLabel.setText(i18n.getString("model.dialog.icons.name.label")); - iconLeftLabel.setText(i18n.getString("model.dialog.icon.type.selector.label")); - chooseIconButton.setText(i18n.getString("model.dialog.icon.chooser.btn")); - testLabel.setText(i18n.getString("model.dialog.tester.label")); - - updateUIOnTypeChange(); - } - - private void testModel(Model model, JTextField testTextField) { - if (testTextField.getText().isEmpty()) { - testTextField.setBorder(new DarculaTextBorder()); - } else { - if (model == null || model.getConditions().isEmpty()) { - testTextField.setBorder(new LineBorder(JBColor.RED, 1)); - } else { - boolean checked = model.check( - parent(testTextField.getText().toLowerCase()), - filenameOnly(testTextField.getText().toLowerCase()), - testTextField.getText().toLowerCase(), - Collections.emptySet(), null); - if (checked) { - testTextField.setBorder(new LineBorder(JBColor.GREEN, 1)); - } else { - testTextField.setBorder(new LineBorder(JBColor.RED, 1)); - } - } - } - } - - private void updateUIOnTypeChange() { - Object selectedItem = typeComboBox.getSelectedItem(); - testLabel.setVisible(true); - testTextField.setVisible(true); - if (selectedItem != null) { - Optional selectedModelType = getSelectedModelType(); - boolean ideIconOverrideSelected = selectedModelType.isPresent() && selectedModelType.get() == ModelType.ICON; - ideIconOverrideLabel.setVisible(ideIconOverrideSelected); - ideIconOverrideTextField.setVisible(ideIconOverrideSelected); - ideIconOverrideTip.setVisible(ideIconOverrideSelected); - conditionsPanel.setVisible(!ideIconOverrideSelected); - if (ideIconOverrideSelected) { - testLabel.setVisible(false); - testTextField.setVisible(false); - } - } - } - - /** - * Creates a new model from the user input. - */ - public Model getModelFromInput() { - String icon = null; - IconType iconType = null; - if (customIconImage != null) { - iconType = customIconImage.getIconType(); - if (customIconImage.getIconType() == IconType.PATH) { - icon = customIconImage.getImageAsBundledIconRef(); - } else { - icon = IconUtils.toBase64(customIconImage); - } - } else if (modelToEdit != null) { - icon = modelToEdit.getIcon(); - iconType = modelToEdit.getIconType(); - } - - Optional selectedModlType = getSelectedModelType(); - Model newModel = null; - if (selectedModlType.isPresent()) { - if (selectedModlType.get() == ModelType.ICON) { - newModel = Model.createIdeIconModel( - modelIDField.isVisible() ? modelIDField.getText() : null, - ideIconOverrideTextField.getText(), - icon, - descriptionField.getText(), - selectedModlType.get(), - iconType, - iconPackField.getText() - ); - } else { - newModel = Model.createFileOrFolderModel( - modelIDField.isVisible() ? modelIDField.getText() : null, - icon, - descriptionField.getText(), - selectedModlType.get(), - iconType, - iconPackField.getText(), - IntStream.range(0, conditionsCheckboxList.getItemsCount()) - .mapToObj(index -> conditionsCheckboxList.getItemAt(index)) - .collect(Collectors.toList()) - ); - } - } - - if (modelToEdit != null && newModel != null) { - newModel.setEnabled(modelToEdit.isEnabled()); - } - return newModel; - } - - private Optional getSelectedModelType() { - int selectedIndex = typeComboBox.getSelectedIndex(); - if (selectedIndex < 0) { - return Optional.empty(); - } - return Optional.of(ModelType.values()[typeComboBox.getSelectedIndex()]); - } - - private int getModelTypeIdx(ModelType modelType) { - return switch (modelType) { - case FILE -> 0; - case DIR -> 1; - case ICON -> 2; - }; - } - - /** - * Sets a model that will be edited using this dialog. - */ - public void setModelToEdit(Model model) { - modelToEdit = model; - setTitle(i18n.getString("model.dialog.model.editor")); - boolean hasModelId = model.getId() != null; - setIdComponentsVisible(hasModelId); - if (hasModelId) { - modelIDField.setText(model.getId()); - } - descriptionField.setText(model.getDescription()); - ideIconOverrideTextField.setText(model.getIdeIcon()); - typeComboBox.setSelectedIndex(getModelTypeIdx(model.getModelType())); - typeComboBox.updateUI(); - iconPackField.setText(model.getIconPack()); - - SettingsIDEService settingsIDEService = SettingsIDEService.getInstance(); - Double additionalUIScale = settingsIDEService.getAdditionalUIScale2(); - SwingUtilities.invokeLater(() -> iconLabel.setIcon(IconUtils.getIcon(model, additionalUIScale, settingsIDEService.getUiTypeIconsPreference()))); - if (model.getIconType() == IconType.PATH) { - for (int itemIdx = 0; itemIdx < chooseIconSelector.getItemCount(); itemIdx++) { - Object item = chooseIconSelector.getItemAt(itemIdx); - if (item instanceof BundledIcon && ((BundledIcon) item).iconPath().equals(model.getIcon())) { - chooseIconSelector.setSelectedIndex(itemIdx); - break; - } - } - } - model.getConditions().forEach(modelCondition -> - conditionsCheckboxList.addItem(modelCondition, modelCondition.asReadableString(FIELD_SEPARATOR), modelCondition.isEnabled())); - - updateUIOnTypeChange(); - } - - /** - * Adds a toolbar with add, edit and remove actions to the CheckboxList. - */ - private JPanel createConditionsListToolbar() { - return ToolbarDecorator.createDecorator(conditionsCheckboxList).setAddAction(anActionButton -> { - ModelConditionDialog modelConditionDialog = new ModelConditionDialog(); - if (modelConditionDialog.showAndGet()) { - ModelCondition modelCondition = modelConditionDialog.getModelConditionFromInput(); - conditionsCheckboxList.addItem(modelCondition, modelCondition.asReadableString(FIELD_SEPARATOR), modelCondition.isEnabled()); - } - testModel(getModelFromInput(), testTextField); - }).setEditAction(anActionButton -> { - int selectedItem = conditionsCheckboxList.getSelectedIndex(); - ModelCondition selectedCondition = Objects.requireNonNull(conditionsCheckboxList.getItemAt(selectedItem)); - boolean isEnabled = conditionsCheckboxList.isItemSelected(selectedCondition); - - ModelConditionDialog modelConditionDialog = new ModelConditionDialog(); - modelConditionDialog.setCondition(selectedCondition); - if (modelConditionDialog.showAndGet()) { - ModelCondition newCondition = modelConditionDialog.getModelConditionFromInput(); - conditionsCheckboxList.updateItem(selectedCondition, newCondition, newCondition.asReadableString(FIELD_SEPARATOR)); - newCondition.setEnabled(isEnabled); - } - testModel(getModelFromInput(), testTextField); - }).setRemoveAction(anActionButton -> { - ListUtil.removeSelectedItems(conditionsCheckboxList); - testModel(getModelFromInput(), testTextField); - } - ).setButtonComparator( - i18n.getString("model.dialog.creator.condition.col.add"), - i18n.getString("model.dialog.creator.condition.col.edit"), - i18n.getString("model.dialog.creator.condition.col.remove") - ).createPanel(); - } - - /** - * Opens a file chooser dialog and loads the icon. - */ - private IconUtils.ImageWrapper loadCustomIcon() { - Optional iconPath = FileChooserUtils.chooseFile("", this.pane, - Globals.ALLOWED_ICON_FILE_EXTENSIONS_FILE_SELECTOR_LABEL, - Globals.ALLOWED_ICON_FILE_EXTENSIONS); - Project projectToLinkToModalProgress = project; - if (projectToLinkToModalProgress == null) { - projectToLinkToModalProgress = ProjectUtils.getFirstOpenedProject(); - } - if (projectToLinkToModalProgress == null) { - if (iconPath.isPresent()) { - // TODO User wants to edit a User Icon when no project is opened. We have no workaround to - // avoid "Slow operations are prohibited on EDT" error log in this situation, but, this is only - // a log message, nothing is broken. I think we can leave it as is, and remove this code once - // issue #126 has a better fix. - VirtualFile fileByUrl = VirtualFileManager.getInstance().findFileByNioPath(Path.of(iconPath.get())); - if (fileByUrl != null) { - return IconUtils.loadFromVirtualFile(fileByUrl); - } - } - } else { - if (iconPath.isPresent()) { - // FIXME temporary workaround for "Slow operations are prohibited on EDT" issue - // https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/126 - // We should be able to use VirtualFileManager.getInstance().findFileByNioPath directly - return ActionUtil.underModalProgress(projectToLinkToModalProgress, "Loading selected icon", //NON-NLS - () -> { - VirtualFile fileByUrl = VirtualFileManager.getInstance().findFileByNioPath(Path.of(iconPath.get())); - if (fileByUrl != null) { - return IconUtils.loadFromVirtualFile(fileByUrl); - } - return null; - }); - } - } - return null; - } - - private void setIdComponentsVisible(boolean visible) { - idLabel.setVisible(visible); - modelIDField.setVisible(visible); - } - - @Nullable - @Override - protected ValidationInfo doValidate() { - if (modelIDField.isVisible() && modelIDField.getText().isEmpty()) { - return new ValidationInfo(i18n.getString("model.dialog.validation.id.missing"), modelIDField); - } - if (descriptionField.getText().isEmpty()) { - return new ValidationInfo(i18n.getString("model.dialog.validation.desc.missing"), descriptionField); - } - if (customIconImage == null && modelToEdit == null) { - return new ValidationInfo(i18n.getString("model.dialog.validation.icon.missing"), chooseIconButton); - } - - int selectedItemIdx = typeComboBox.getSelectedIndex(); - if (selectedItemIdx != -1 && selectedItemIdx == getModelTypeIdx(ModelType.ICON)) { - if (ideIconOverrideTextField.getText().trim().isEmpty()) { - return new ValidationInfo(i18n.getString("model.dialog.validation.ide.icon.name.missing"), ideIconOverrideTextField); - } else if (!ideIconOverrideTextField.getText().endsWith(".svg")) { - return new ValidationInfo(i18n.getString("model.dialog.validation.ide.icon.must.end.svg"), ideIconOverrideTextField); - } - } else { - if (conditionsCheckboxList.isEmpty()) { - return new ValidationInfo(i18n.getString("model.dialog.validation.condition.missing"), toolbarPanel); - } - } - - return super.doValidate(); - } - - /** - * Find parent folder of given path, otherwise return empty string. - */ - private String parent(String path) { - path = path.replace("\\\\", "/"); - Matcher matcher = Pattern.compile(".*/(.+)/.+").matcher(path); - if (matcher.find()) { - return matcher.group(1); - } - return ""; - } - - private String filenameOnly(String path) { - path = path.replace("\\\\", "/"); - if (path.endsWith("/")) { - path = path.substring(0, path.length() - 1); - } - if (path.contains("/")) { - return path.substring(path.lastIndexOf("/") + 1); - } - return path; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/models/PluginIconsSettingsTableModel.java b/src/main/java/lermitage/intellij/extra/icons/cfg/models/PluginIconsSettingsTableModel.java deleted file mode 100644 index 8ca10ba1..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/models/PluginIconsSettingsTableModel.java +++ /dev/null @@ -1,52 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.models; - -import lermitage.intellij.extra.icons.utils.I18nUtils; - -import javax.swing.Icon; -import javax.swing.table.DefaultTableModel; -import java.util.List; -import java.util.ResourceBundle; - -public class PluginIconsSettingsTableModel extends DefaultTableModel { - - public static final int ICON_COL_NUMBER = 0; - public static final int ICON_ENABLED_COL_NUMBER = 1; - public static final int ICON_LABEL_COL_NUMBER = 2; - public static final int ICON_TAGS_LABEL_COL_NUMBER = 3; - public static final int ICON_REQUIRE_IDE_RESTART = 4; - public static final int ICON_TAGS_ENUM_LIST_COL_NUMBER = 5; - public static final int ICON_ID_COL_NUMBER = 6; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - /** - * Table columns type. - */ - @SuppressWarnings("unchecked") - private final Class[] types = new Class[]{Icon.class, Boolean.class, String.class, String.class, Icon.class, List.class, String.class}; - - /** - * Indicates if table columns are editable. - */ - private final boolean[] canEdit = new boolean[]{false, true, false, false, false, false, false}; - - public PluginIconsSettingsTableModel() { - super(new Object[][]{}, new String[]{"", "", - i18n.getString("plugin.icons.table.col.description"), - i18n.getString("plugin.icons.table.col.tags"), - i18n.getString("plugin.icons.table.col.need.restart"), - "", ""}); - } - - @Override - public Class getColumnClass(int columnIndex) { - return types[columnIndex]; - } - - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return canEdit[columnIndex]; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/models/UserIconsSettingsTableModel.java b/src/main/java/lermitage/intellij/extra/icons/cfg/models/UserIconsSettingsTableModel.java deleted file mode 100644 index b2ef80aa..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/models/UserIconsSettingsTableModel.java +++ /dev/null @@ -1,45 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.models; - -import lermitage.intellij.extra.icons.utils.I18nUtils; - -import javax.swing.Icon; -import javax.swing.table.DefaultTableModel; -import java.util.ResourceBundle; - -public class UserIconsSettingsTableModel extends DefaultTableModel { - - public static final int ICON_COL_NUMBER = 0; - public static final int ICON_ENABLED_COL_NUMBER = 1; - public static final int ICON_LABEL_COL_NUMBER = 2; - public static final int ICON_PACK_COL_NUMBER = 3; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - /** - * Table columns type. - */ - @SuppressWarnings("unchecked") - private final Class[] types = new Class[]{Icon.class, Boolean.class, String.class, String.class}; - - /** - * Indicates if table columns are editable. - */ - private final boolean[] canEdit = new boolean[]{false, true, false, false}; - - public UserIconsSettingsTableModel() { - super(new Object[][]{}, new String[]{"", "", - i18n.getString("user.icons.table.col.description"), i18n.getString("user.icons.table.col.iconpack")}); - } - - @Override - public Class getColumnClass(int columnIndex) { - return types[columnIndex]; - } - - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return canEdit[columnIndex]; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/providers/IDEConfigurableProvider.java b/src/main/java/lermitage/intellij/extra/icons/cfg/providers/IDEConfigurableProvider.java deleted file mode 100644 index cd17bd8f..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/providers/IDEConfigurableProvider.java +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.providers; - - -import com.intellij.openapi.options.Configurable; -import com.intellij.openapi.options.ConfigurableProvider; -import lermitage.intellij.extra.icons.cfg.SettingsForm; -import org.jetbrains.annotations.Nullable; - -public class IDEConfigurableProvider extends ConfigurableProvider { - - @Nullable - @Override - public Configurable createConfigurable() { - return new SettingsForm(); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/providers/ProjectConfigurableProvider.java b/src/main/java/lermitage/intellij/extra/icons/cfg/providers/ProjectConfigurableProvider.java deleted file mode 100644 index 0132a0c0..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/providers/ProjectConfigurableProvider.java +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.providers; - -import com.intellij.openapi.options.Configurable; -import com.intellij.openapi.options.ConfigurableProvider; -import com.intellij.openapi.project.Project; -import lermitage.intellij.extra.icons.cfg.SettingsForm; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class ProjectConfigurableProvider extends ConfigurableProvider { - - private final Project project; - - public ProjectConfigurableProvider(@NotNull Project project) { - this.project = project; - } - - @Nullable - @Override - public Configurable createConfigurable() { - return new SettingsForm(project); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsIDEService.java b/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsIDEService.java deleted file mode 100644 index e55625a2..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsIDEService.java +++ /dev/null @@ -1,112 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.services; - -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.components.PersistentStateComponent; -import com.intellij.openapi.components.State; -import com.intellij.openapi.components.Storage; -import com.intellij.util.xmlb.XmlSerializerUtil; -import lermitage.intellij.extra.icons.UITypeIconsPreference; -import org.jetbrains.annotations.NotNull; - -// see http://www.jetbrains.org/intellij/sdk/docs/basics/persisting_state_of_components.html -@State( - name = "ExtraIconsSettings", - storages = @Storage("lermitage-extra-icons.xml") -) -public class SettingsIDEService extends SettingsService implements PersistentStateComponent { - - @SuppressWarnings("WeakerAccess") - public Double additionalUIScale2; // renamed to 2 because fixed default user interface scale calculation, so a reset is needed - @SuppressWarnings("WeakerAccess") - public UITypeIconsPreference uiTypeIconsPreference; - @SuppressWarnings("WeakerAccess") - public Boolean useIDEFilenameIndex2; // renamed to 2 because a previous bug had set it to false when using project level settings - @SuppressWarnings("WeakerAccess") - public Boolean pluginIsConfigurableHintNotifDisplayed; - @SuppressWarnings("WeakerAccess") - public Boolean iconviewerShouldRenderSVGHintNotifDisplayed; - @SuppressWarnings("WeakerAccess") - public Boolean lifetimeLicIntroHintNotifDisplayed; - - public static SettingsIDEService getInstance() { - return ApplicationManager.getApplication().getService(SettingsIDEService.class); - } - - @Override - public SettingsIDEService getState() { - return this; - } - - @Override - public void loadState(@NotNull SettingsIDEService state) { - XmlSerializerUtil.copyBean(state, this); - } - - public Double getAdditionalUIScale2() { - if (additionalUIScale2 == null) { - additionalUIScale2 = DEFAULT_ADDITIONAL_UI_SCALE; - } - return additionalUIScale2; - } - - public void setAdditionalUIScale2(Double additionalUIScale2) { - this.additionalUIScale2 = additionalUIScale2; - } - - public UITypeIconsPreference getUiTypeIconsPreference() { - if (uiTypeIconsPreference == null) { - uiTypeIconsPreference = UITypeIconsPreference.BASED_ON_ACTIVE_UI_TYPE; - } - return uiTypeIconsPreference; - } - - public void setUiTypeIconsPreference(UITypeIconsPreference uiTypeIconsPreference) { - this.uiTypeIconsPreference = uiTypeIconsPreference; - } - - public Boolean getUseIDEFilenameIndex2() { - if (useIDEFilenameIndex2 == null) { - useIDEFilenameIndex2 = true; - } - return useIDEFilenameIndex2; - } - - public void setUseIDEFilenameIndex2(Boolean useIDEFilenameIndex2) { - this.useIDEFilenameIndex2 = useIDEFilenameIndex2; - } - - public Boolean getPluginIsConfigurableHintNotifDisplayed() { - if (pluginIsConfigurableHintNotifDisplayed == null) { - pluginIsConfigurableHintNotifDisplayed = false; - } - return pluginIsConfigurableHintNotifDisplayed; - } - - public void setPluginIsConfigurableHintNotifDisplayed(Boolean pluginIsConfigurableHintNotifDisplayed) { - this.pluginIsConfigurableHintNotifDisplayed = pluginIsConfigurableHintNotifDisplayed; - } - - public Boolean getIconviewerShouldRenderSVGHintNotifDisplayed() { - if (iconviewerShouldRenderSVGHintNotifDisplayed == null) { - iconviewerShouldRenderSVGHintNotifDisplayed = false; - } - return iconviewerShouldRenderSVGHintNotifDisplayed; - } - - public void setIconviewerShouldRenderSVGHintNotifDisplayed(Boolean iconviewerShouldRenderSVGHintNotifDisplayed) { - this.iconviewerShouldRenderSVGHintNotifDisplayed = iconviewerShouldRenderSVGHintNotifDisplayed; - } - - public Boolean getLifetimeLicIntroHintNotifDisplayed() { - if (lifetimeLicIntroHintNotifDisplayed == null) { - lifetimeLicIntroHintNotifDisplayed = false; - } - return lifetimeLicIntroHintNotifDisplayed; - } - - public void setLifetimeLicIntroHintNotifDisplayed(Boolean lifetimeLicIntroHintNotifDisplayed) { - this.lifetimeLicIntroHintNotifDisplayed = lifetimeLicIntroHintNotifDisplayed; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsProjectService.java b/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsProjectService.java deleted file mode 100644 index 77b6fb19..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsProjectService.java +++ /dev/null @@ -1,52 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.services; - -import com.intellij.openapi.components.PersistentStateComponent; -import com.intellij.openapi.components.State; -import com.intellij.openapi.project.Project; -import com.intellij.util.xmlb.XmlSerializerUtil; -import org.jetbrains.annotations.NotNull; - -// see http://www.jetbrains.org/intellij/sdk/docs/basics/persisting_state_of_components.html -@State( - name = "ExtraIconsSettingsProject" -) -public class SettingsProjectService extends SettingsService implements PersistentStateComponent { - - @SuppressWarnings("WeakerAccess") - public boolean overrideIDESettings = false; - @SuppressWarnings("WeakerAccess") - public boolean addToIDEUserIcons = true; - - @NotNull - public static SettingsProjectService getInstance(Project project) { - return project.getService(SettingsProjectService.class); - } - - public boolean isOverrideIDESettings() { - return overrideIDESettings; - } - - public void setOverrideIDESettings(boolean overrideIDESettings) { - this.overrideIDESettings = overrideIDESettings; - } - - public boolean isAddToIDEUserIcons() { - return addToIDEUserIcons; - } - - public void setAddToIDEUserIcons(boolean addToIDEUserIcons) { - this.addToIDEUserIcons = addToIDEUserIcons; - } - - @Override - public SettingsProjectService getState() { - return this; - } - - @Override - public void loadState(@NotNull SettingsProjectService state) { - XmlSerializerUtil.copyBean(state, this); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsService.java b/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsService.java deleted file mode 100644 index 5554ab95..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/cfg/services/SettingsService.java +++ /dev/null @@ -1,122 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.services; - -import com.intellij.notification.NotificationGroupManager; -import com.intellij.notification.NotificationType; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.ui.scale.JBUIScale; -import lermitage.intellij.extra.icons.ExtraIconProvider; -import lermitage.intellij.extra.icons.Globals; -import lermitage.intellij.extra.icons.Model; -import lermitage.intellij.extra.icons.utils.I18nUtils; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; - -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.List; -import java.util.ResourceBundle; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - -public abstract class SettingsService { - - // the implementation of PersistentStateComponent works by serializing public fields, so keep them public - @SuppressWarnings("WeakerAccess") - public List disabledModelIds = new ArrayList<>(); - @SuppressWarnings("WeakerAccess") - public String ignoredPattern; - @SuppressWarnings("WeakerAccess") - public List customModels = new ArrayList<>(); - - private Pattern ignoredPatternObj; - private Boolean isIgnoredPatternValid; - - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - private static final @NonNls Logger LOGGER = Logger.getInstance(SettingsService.class); - - public static final double DEFAULT_ADDITIONAL_UI_SCALE = findSysScale(); // TODO see what fits best: JBUIScale.sysScale or JBUI.pixScale. JBUI.pixScale can take a frame, which may be useful with multiple displays - - private static double findSysScale() { - try { - return JBUIScale.sysScale(); - } catch (Throwable t) { - LOGGER.warn(t); - return 1; - } - } - - public List getDisabledModelIds() { - if (disabledModelIds == null) { // a malformed xml file could make it null - disabledModelIds = new ArrayList<>(); - } - return disabledModelIds; - } - - public String getIgnoredPattern() { - return ignoredPattern == null ? "" : ignoredPattern; - } - - public Pattern getIgnoredPatternObj() { - if (isIgnoredPatternValid == null) { - compileAndSetIgnoredPattern(ignoredPattern); - } - if (isIgnoredPatternValid == Boolean.TRUE) { - return ignoredPatternObj; - } - return null; - } - - public void setDisabledModelIds(List disabledModelIds) { - this.disabledModelIds = disabledModelIds; - } - - public void setIgnoredPattern(String ignoredPattern) { - this.ignoredPattern = ignoredPattern; - compileAndSetIgnoredPattern(ignoredPattern); - } - - public List getCustomModels() { - if (customModels == null) { // a malformed xml file could make it null - customModels = new ArrayList<>(); - } - return customModels; - } - - public void setCustomModels(List customModels) { - this.customModels = customModels; - } - - @NotNull - public static List getAllRegisteredModels() { - return ExtraIconProvider.allModels(); - } - - private void compileAndSetIgnoredPattern(String regex) { - if (regex != null && !regex.isEmpty()) { - try { - ignoredPatternObj = Pattern.compile(regex); - isIgnoredPatternValid = true; - } catch (PatternSyntaxException e) { - NotificationGroupManager.getInstance().getNotificationGroup(Globals.PLUGIN_GROUP_DISPLAY_ID) - .createNotification( - MessageFormat.format( - i18n.getString("notification.content.cant.compile.regex"), - regex, - e.getMessage()), - NotificationType.WARNING) - .setTitle( - MessageFormat.format( - i18n.getString("notification.content.cant.compile.regex.title"), - i18n.getString("extra.icons.plugin"))) - .setSubtitle(i18n.getString("notification.content.cant.compile.regex.subtitle")) - .setImportant(true) - .notify(null); - ignoredPatternObj = null; - isIgnoredPatternValid = false; - } - } - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/AbstractFolderEnabler.java b/src/main/java/lermitage/intellij/extra/icons/enablers/AbstractFolderEnabler.java deleted file mode 100644 index 3cf471b4..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/AbstractFolderEnabler.java +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers; - -import com.intellij.openapi.project.Project; -import org.jetbrains.annotations.NotNull; - -public abstract class AbstractFolderEnabler extends AbstractInFolderEnabler implements IconEnabler { - - @Override - public boolean verify(@NotNull Project project, @NotNull String absolutePathToVerify) { - String normalizedPathToVerify = normalizePath(absolutePathToVerify); - if (!normalizedPathToVerify.endsWith("/")) { - normalizedPathToVerify += "/"; - } - for (String folder : enabledFolders) { - if (normalizedPathToVerify.equals(folder)) { - return true; - } - } - return false; - } - - @Override - public boolean terminatesConditionEvaluation() { - return true; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/AbstractInFolderEnabler.java b/src/main/java/lermitage/intellij/extra/icons/enablers/AbstractInFolderEnabler.java deleted file mode 100644 index d6470e13..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/AbstractInFolderEnabler.java +++ /dev/null @@ -1,186 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers; - -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.module.ModuleManager; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.project.ProjectUtil; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.search.FilenameIndex; -import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.util.ui.EDT; -import lermitage.intellij.extra.icons.cfg.services.SettingsIDEService; -import org.jetbrains.annotations.NotNull; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -@SuppressWarnings("HardCodedStringLiteral") -public abstract class AbstractInFolderEnabler implements IconEnabler { - - private static final Logger LOGGER = Logger.getInstance(AbstractInFolderEnabler.class); - - /** Parent folder(s) where files or folders should be located in order to activate Enabler. */ - protected Set enabledFolders = Collections.emptySet(); - - protected abstract String[] getFilenamesToSearch(); - - /** The name of this icon enabler. Used to identify disabled icon enabler if an error occurred. */ - public abstract String getName(); - - /** A boolean flag used to obtain a match if any of the specified files exists in the project. */ - public boolean getRequiredSearchedFiles() { - return true; - } - - @Override - public synchronized void init(@NotNull Project project) { - try { - if (SettingsIDEService.getInstance().getUseIDEFilenameIndex2()) { - enabledFolders = initWithIDEFileIndex(project, getFilenamesToSearch()); - } else { - enabledFolders = initWithRegularFS(project, getFilenamesToSearch()); - } - } catch (Throwable e) { - LOGGER.warn("Canceled init of " + getName() + " Enabler", e); - } - } - - /** - * Look for given files in modules base path and level-1 sub-folders (by querying - * regular FS, not IDE filename index), then return folders containing at least one - * of these files. - */ - private Set initWithRegularFS(@NotNull Project project, String[] filenamesToSearch) { - ModuleManager moduleManager = ModuleManager.getInstance(project); - Set modulePaths = new HashSet<>(); - Stream.of(moduleManager.getModules()).forEach(module -> { - VirtualFile moduleVirtualFile = ProjectUtil.guessModuleDir(module); - if (moduleVirtualFile != null) { - modulePaths.add(moduleVirtualFile.getPath()); - } - }); - Set foldersToEnable = new HashSet<>(); - modulePaths.forEach(modulePath -> { - - // look in modules root - for (String filenameToSearch : filenamesToSearch) { - try { - if (new File(modulePath, filenameToSearch).exists()) { - foldersToEnable.add(normalizePath(modulePath + "/")); - } - } catch (Exception e) { - LOGGER.warn("Failed to check '" + modulePath + "/" + filenameToSearch + "' existence", e); - } - } - - // look in modules level-1 sub-folders - File[] moduleSubFiles = new File(modulePath).listFiles(); - if (moduleSubFiles != null) { - Stream.of(moduleSubFiles).filter(File::isDirectory).forEach(dir -> { - for (String filenameToSearch : filenamesToSearch) { - try { - if (new File(dir, filenameToSearch).exists()) { - foldersToEnable.add(normalizePath(dir.getAbsolutePath() + "/")); - } - } catch (Exception e) { - LOGGER.warn("Failed to check '" + modulePath + "/" + filenameToSearch + "' existence", e); - } - } - }); - } - }); - - return foldersToEnable; - } - - /** - * Look for given files in project (by querying IDE filename index), then return - * folders containing at least one of these files. - */ - private Set initWithIDEFileIndex(@NotNull Project project, String[] filenamesToSearch) { - if (EDT.isCurrentThreadEdt()) { // we can no longer read index in EDT. See com.intellij.util.SlowOperations documentation - LOGGER.warn(getName() + " Enabler's init has been called while in EDT thread. " + - "Will try again later. Some icons override may not work."); - return Collections.emptySet(); - } - if (!project.isInitialized()) { - LOGGER.warn(getName() + " Enabler can't query IDE filename index: project " + project.getName() + " is not initialized. " + - "Will try again later. Some icons override may not work."); - return Collections.emptySet(); - } - - final boolean allRequired = getRequiredSearchedFiles(); - Collection virtualFilesByName = null; - String matchedFile = null; - - for (String filename : filenamesToSearch) { - try { - virtualFilesByName = FilenameIndex.getVirtualFilesByName(filename, true, GlobalSearchScope.projectScope(project)); - if (!virtualFilesByName.isEmpty()) { - matchedFile = filename; - break; - } - } catch (Exception e) { - LOGGER.warn(getName() + " Enabler failed to query IDE filename index. " + - "Will try again later. Some icons override may not work.", e); - if (allRequired) { - return Collections.emptySet(); - } - } - } - - final String[] additionalFilenamesToSearch = filenamesToSearch.length > 1 && allRequired ? - Arrays.copyOfRange(filenamesToSearch, 1, filenamesToSearch.length) : - new String[0]; - - final String matchedFilename = matchedFile; - - return virtualFilesByName.stream() - .map(virtualFile -> - normalizePath(virtualFile.getPath()) - .replace(normalizePath("/" + matchedFilename), "/")) - .filter(folder -> { - for (String additionalFilenameToSearch : additionalFilenamesToSearch) { - try { - if (!new File(folder, additionalFilenameToSearch).exists()) { - return false; - } - } catch (Exception e) { - LOGGER.warn(getName() + " Enabler failed to check " + folder + "/" + additionalFilenameToSearch + " existence", e); - } - } - return true; - }) - .collect(Collectors.toSet()); - } - - @Override - public boolean verify(@NotNull Project project, @NotNull String absolutePathToVerify) { - String normalizedPathToVerify = normalizePath(absolutePathToVerify); - for (String folder : enabledFolders) { - if (normalizedPathToVerify.startsWith(folder)) { - return true; - } - } - return false; - } - - protected String normalizePath(@NotNull String path) { - return path.toLowerCase() - .replaceAll("\\\\", "/") - .replaceAll("//", "/"); - } - - @Override - public boolean terminatesConditionEvaluation() { - return false; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnabler.java b/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnabler.java deleted file mode 100644 index 8390bf30..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnabler.java +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers; - -import com.intellij.openapi.project.Project; -import org.jetbrains.annotations.NotNull; - -public interface IconEnabler { - - void init(@NotNull Project project); - - boolean verify(@NotNull Project project, @NotNull String absolutePathToVerify); - - boolean terminatesConditionEvaluation(); -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnablerProvider.java b/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnablerProvider.java deleted file mode 100644 index 85a85575..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnablerProvider.java +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers; - -import com.intellij.openapi.project.Project; -import lermitage.intellij.extra.icons.enablers.services.GitSubmoduleFolderEnablerService; -import lermitage.intellij.extra.icons.enablers.services.HelmFolderEnablerService; -import lermitage.intellij.extra.icons.enablers.services.InAngularFolderEnablerService; -import lermitage.intellij.extra.icons.enablers.services.InFlutterFolderEnablerService; -import lermitage.intellij.extra.icons.enablers.services.InGraphQLFolderEnablerService; -import lermitage.intellij.extra.icons.enablers.services.InHelmFolderEnablerService; -import lermitage.intellij.extra.icons.enablers.services.InWritersideFolderEnablerService; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; - -public class IconEnablerProvider { - - public static Optional getIconEnabler(@Nullable Project project, @Nullable IconEnablerType type) { - if (project == null || type == null) { - return Optional.empty(); - } - return switch (type) { - case IS_GIT_SUBMODULE_FOLDER -> Optional.of(GitSubmoduleFolderEnablerService.getInstance(project)); - case IS_HELM_FOLDER -> Optional.of(HelmFolderEnablerService.getInstance(project)); - case IS_IN_ANGULAR_FOLDER -> Optional.of(InAngularFolderEnablerService.getInstance(project)); - case IS_IN_FLUTTER_FOLDER -> Optional.of(InFlutterFolderEnablerService.getInstance(project)); - case IS_IN_GRAPHQL_FOLDER -> Optional.of(InGraphQLFolderEnablerService.getInstance(project)); - case IS_IN_HELM_FOLDER -> Optional.of(InHelmFolderEnablerService.getInstance(project)); - case IS_IN_WRITERSIDE_FOLDER -> Optional.of(InWritersideFolderEnablerService.getInstance(project)); - }; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnablerType.java b/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnablerType.java deleted file mode 100644 index 141c1db8..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/IconEnablerType.java +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers; - -public enum IconEnablerType { - - /** Detect git submodule folders. */ - IS_GIT_SUBMODULE_FOLDER, - - /** Detect Helm folders. */ - IS_HELM_FOLDER, - - /** Detect folders containing Angular files. */ - IS_IN_ANGULAR_FOLDER, - - /** Detect folders containing Flutter files. */ - IS_IN_FLUTTER_FOLDER, - - /** Detect folders containing GraphQL files. */ - IS_IN_GRAPHQL_FOLDER, - - /** Detect folders containing Helm files. */ - IS_IN_HELM_FOLDER, - - /** Detect folders containing Writerside files. */ - IS_IN_WRITERSIDE_FOLDER -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/services/GitSubmoduleFolderEnablerService.java b/src/main/java/lermitage/intellij/extra/icons/enablers/services/GitSubmoduleFolderEnablerService.java deleted file mode 100644 index 29e019cd..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/services/GitSubmoduleFolderEnablerService.java +++ /dev/null @@ -1,137 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers.services; - -import com.intellij.openapi.components.Service; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.project.ProjectUtil; -import com.intellij.openapi.vfs.VirtualFile; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import lermitage.intellij.extra.icons.utils.ProjectUtils; -import org.jetbrains.annotations.NotNull; - -import java.io.File; -import java.io.FileNotFoundException; -import java.util.Collections; -import java.util.HashSet; -import java.util.Scanner; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -@SuppressWarnings("HardCodedStringLiteral") -@Service(Service.Level.PROJECT) -public final class GitSubmoduleFolderEnablerService implements IconEnabler { - - public static GitSubmoduleFolderEnablerService getInstance(@NotNull Project project) { - return project.getService(GitSubmoduleFolderEnablerService.class); - } - - private static final Logger LOGGER = Logger.getInstance(GitSubmoduleFolderEnablerService.class); - - public static final String GIT_MODULES_FILENAME = ".gitmodules"; - - private static final Pattern GIT_MODULES_PATH_PATTERN = Pattern.compile("\\s*path\\s*=\\s*([^\\s]+)\\s*"); - - private Set submoduleFolders = Collections.emptySet(); - - @Override - public synchronized void init(@NotNull Project project) { - long t1 = System.currentTimeMillis(); - try { - submoduleFolders = findAllGitModulesFilesRecursively(project); - } catch (Exception e) { - LOGGER.warn("Failed to init Git submodule Enabler", e); - } - - long t2 = System.currentTimeMillis(); - long execDuration = t2 - t1; - String logMsg = "Searched for git submodules in project " + project.getName() + " in " + execDuration + " ms." + - " Found git submodule folders: " + submoduleFolders; - if (execDuration > 4000) { - LOGGER.warn(logMsg + ". Operation should complete faster"); - } else { - LOGGER.info(logMsg); - } - } - - /** - * Find .gitmodules at root, then find every nested .gitmodules for every module (don't have to explore the whole project files). - */ - private Set findAllGitModulesFilesRecursively(@NotNull Project project) { - Set submoduleFoldersFound = new HashSet<>(); - VirtualFile projectVirtualDir = ProjectUtil.guessProjectDir(project); - if (projectVirtualDir == null) { - return submoduleFoldersFound; - } - try { - submoduleFoldersFound = findGitModulesFilesInFolder(projectVirtualDir.getPath()) - .stream() - .map(String::toLowerCase) - .collect(Collectors.toSet()); - submoduleFoldersFound.addAll(findNestedGitModulesFilesRecursively(submoduleFoldersFound)); - } catch (FileNotFoundException e) { - LOGGER.warn("Error while looking for git submodules", e); - } - return submoduleFoldersFound; - } - - private Set findNestedGitModulesFilesRecursively(@NotNull Set parentModules) { - Set nestedModules = new HashSet<>(); - for (String parentModule : parentModules) { - try { - Set submoduleFoldersFound = findGitModulesFilesInFolder(parentModule) - .stream() - .map(String::toLowerCase) - .collect(Collectors.toSet()); - if (!submoduleFoldersFound.isEmpty()) { - nestedModules.addAll(submoduleFoldersFound); - nestedModules.addAll(findNestedGitModulesFilesRecursively(submoduleFoldersFound)); - } - } catch (FileNotFoundException e) { - LOGGER.warn("Error while looking for nested git submodules (parent git module: '" + parentModule + "')", e); - } catch (StackOverflowError e) { - LOGGER.warn("Error while looking for nested git submodules (parent git module: '" + parentModule + "')" + - ", the git submodules tree is too deep", e); - } - } - return nestedModules; - } - - /** - * Find Git submodules in given folder. - * - * @param folderPath folder's path. - * @return submodule paths relative to folderPath. - * @throws FileNotFoundException if folderPath doesn't exist. - */ - private Set findGitModulesFilesInFolder(@NotNull String folderPath) throws FileNotFoundException { - File rootGitModules = new File(folderPath, GIT_MODULES_FILENAME); - if (!rootGitModules.exists()) { - return Collections.emptySet(); - } - Set submodules = new HashSet<>(); - Scanner scanner = new Scanner(rootGitModules); - while (scanner.hasNextLine()) { - String line = scanner.nextLine(); - Matcher matcher = GIT_MODULES_PATH_PATTERN.matcher(line); - if (matcher.find()) { - String path = matcher.group(1); - submodules.add(folderPath + "/" + path); - } - } - return submodules; - } - - @Override - public boolean verify(@NotNull Project project, @NotNull String absolutePathToVerify) { - return submoduleFolders.contains(absolutePathToVerify.toLowerCase()); - } - - @Override - public boolean terminatesConditionEvaluation() { - return true; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/services/HelmFolderEnablerService.java b/src/main/java/lermitage/intellij/extra/icons/enablers/services/HelmFolderEnablerService.java deleted file mode 100644 index 9e4b20b6..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/services/HelmFolderEnablerService.java +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers.services; - -import com.intellij.openapi.components.Service; -import com.intellij.openapi.project.Project; -import lermitage.intellij.extra.icons.enablers.AbstractFolderEnabler; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import org.jetbrains.annotations.NotNull; - -@Service(Service.Level.PROJECT) -public final class HelmFolderEnablerService extends AbstractFolderEnabler implements IconEnabler { - - public static HelmFolderEnablerService getInstance(@NotNull Project project) { - return project.getService(HelmFolderEnablerService.class); - } - - @NotNull - @Override - protected String[] getFilenamesToSearch() { - return new String[]{"Chart.yaml", "values.yaml"}; - } - - @Override - public String getName() { - return "Helm folder icon"; //NON-NLS - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InAngularFolderEnablerService.java b/src/main/java/lermitage/intellij/extra/icons/enablers/services/InAngularFolderEnablerService.java deleted file mode 100644 index 3598101c..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InAngularFolderEnablerService.java +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers.services; - -import com.intellij.openapi.components.Service; -import com.intellij.openapi.project.Project; -import lermitage.intellij.extra.icons.enablers.AbstractInFolderEnabler; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import org.jetbrains.annotations.NotNull; - -@Service(Service.Level.PROJECT) -public final class InAngularFolderEnablerService extends AbstractInFolderEnabler implements IconEnabler { - - public static InAngularFolderEnablerService getInstance(@NotNull Project project) { - return project.getService(InAngularFolderEnablerService.class); - } - - @NotNull - @Override - protected String[] getFilenamesToSearch() { - return new String[]{"angular.json"}; - } - - @Override - public String getName() { - return "Angular icons"; //NON-NLS - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InFlutterFolderEnablerService.java b/src/main/java/lermitage/intellij/extra/icons/enablers/services/InFlutterFolderEnablerService.java deleted file mode 100644 index cae14ef4..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InFlutterFolderEnablerService.java +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers.services; - -import com.intellij.openapi.components.Service; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.Project; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import org.jetbrains.annotations.NotNull; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; - -@Service(Service.Level.PROJECT) -public final class InFlutterFolderEnablerService implements IconEnabler { - - private boolean isFlutterProject = false; - - private static final Logger LOGGER = Logger.getInstance(InFlutterFolderEnablerService.class); - - public static InFlutterFolderEnablerService getInstance(@NotNull Project project) { - return project.getService(InFlutterFolderEnablerService.class); - } - - @Override - public void init(@NotNull Project project) { - File pubspec = new File(project.getBasePath(), "pubspec.yaml"); - if (pubspec.exists()) { - try { - String pubspecContent = Files.readString(pubspec.toPath()); - isFlutterProject = pubspecContent.contains("sdk: flutter") || pubspecContent.contains("sdk:flutter"); //NON-NLS - } catch (IOException e) { - LOGGER.warn("Canceled init of Flutter icons Enabler", e); //NON-NLS - } - } - } - - @Override - public boolean verify(@NotNull Project project, @NotNull String absolutePathToVerify) { - return isFlutterProject; - } - - @Override - public boolean terminatesConditionEvaluation() { - return false; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InGraphQLFolderEnablerService.java b/src/main/java/lermitage/intellij/extra/icons/enablers/services/InGraphQLFolderEnablerService.java deleted file mode 100644 index 3b46e261..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InGraphQLFolderEnablerService.java +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers.services; - -import com.intellij.openapi.components.Service; -import com.intellij.openapi.project.Project; -import lermitage.intellij.extra.icons.enablers.AbstractInFolderEnabler; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import org.jetbrains.annotations.NotNull; - -@Service(Service.Level.PROJECT) -public final class InGraphQLFolderEnablerService extends AbstractInFolderEnabler implements IconEnabler { - - public static InGraphQLFolderEnablerService getInstance(@NotNull Project project) { - return project.getService(InGraphQLFolderEnablerService.class); - } - - @NotNull - @Override - protected String[] getFilenamesToSearch() { - return new String[]{"schema.graphql", "schema.gql", "codegen.yml", ".graphqlconfig", "schema.graphql.json"}; - } - - @Override - public String getName() { - return "GraphQL icons"; //NON-NLS - } - - @Override - public boolean getRequiredSearchedFiles() { - return false; - } - -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InHelmFolderEnablerService.java b/src/main/java/lermitage/intellij/extra/icons/enablers/services/InHelmFolderEnablerService.java deleted file mode 100644 index 0c5a8cc0..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InHelmFolderEnablerService.java +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers.services; - -import com.intellij.openapi.components.Service; -import com.intellij.openapi.project.Project; -import lermitage.intellij.extra.icons.enablers.AbstractInFolderEnabler; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import org.jetbrains.annotations.NotNull; - -@Service(Service.Level.PROJECT) -public final class InHelmFolderEnablerService extends AbstractInFolderEnabler implements IconEnabler { - - public static InHelmFolderEnablerService getInstance(@NotNull Project project) { - return project.getService(InHelmFolderEnablerService.class); - } - - @NotNull - @Override - protected String[] getFilenamesToSearch() { - return new String[]{"Chart.yaml", "values.yaml"}; - } - - @Override - public String getName() { - return "Helm icons"; //NON-NLS - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InWritersideFolderEnablerService.java b/src/main/java/lermitage/intellij/extra/icons/enablers/services/InWritersideFolderEnablerService.java deleted file mode 100644 index dab7b8a2..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/enablers/services/InWritersideFolderEnablerService.java +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.enablers.services; - -import com.intellij.openapi.components.Service; -import com.intellij.openapi.project.Project; -import lermitage.intellij.extra.icons.enablers.AbstractInFolderEnabler; -import lermitage.intellij.extra.icons.enablers.IconEnabler; -import org.jetbrains.annotations.NotNull; - -@Service(Service.Level.PROJECT) -public final class InWritersideFolderEnablerService extends AbstractInFolderEnabler implements IconEnabler { - - public static InWritersideFolderEnablerService getInstance(@NotNull Project project) { - return project.getService(InWritersideFolderEnablerService.class); - } - - @NotNull - @Override - protected String[] getFilenamesToSearch() { - return new String[]{"writerside.cfg"}; - } - - @Override - public String getName() { - return "Writerside icons"; //NON-NLS - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsLicenseCheck.java b/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsLicenseCheck.java deleted file mode 100644 index 0fc3e50f..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsLicenseCheck.java +++ /dev/null @@ -1,324 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.lic; - -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.DataContext; -import com.intellij.openapi.actionSystem.Presentation; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.application.ModalityState; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.ui.LicensingFacade; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.io.ByteArrayInputStream; -import java.nio.charset.StandardCharsets; -import java.security.Signature; -import java.security.cert.CertPath; -import java.security.cert.CertPathBuilder; -import java.security.cert.CertPathValidator; -import java.security.cert.CertStore; -import java.security.cert.Certificate; -import java.security.cert.CertificateFactory; -import java.security.cert.CollectionCertStoreParameters; -import java.security.cert.PKIXBuilderParameters; -import java.security.cert.TrustAnchor; -import java.security.cert.X509CertSelector; -import java.security.cert.X509Certificate; -import java.time.Instant; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Base64; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.HashSet; -import java.util.Set; -import java.util.TimeZone; - -// Based on https://plugins.jetbrains.com/docs/marketplace/add-marketplace-license-verification-calls-to-the-plugin-code.html -public class ExtraIconsLicenseCheck { - - private static final @NonNls Logger LOGGER = Logger.getInstance(ExtraIconsLicenseCheck.class); - - private static final String KEY_PREFIX = "key:"; //NON-NLS - private static final String STAMP_PREFIX = "stamp:"; //NON-NLS - private static final String EVAL_PREFIX = "eval:"; //NON-NLS - - /** - * Public root certificates needed to verify JetBrains-signed licenses - */ - @SuppressWarnings("HardCodedStringLiteral") - private static final String[] ROOT_CERTIFICATES = new String[]{ - """ ------BEGIN CERTIFICATE----- -MIIFOzCCAyOgAwIBAgIJANJssYOyg3nhMA0GCSqGSIb3DQEBCwUAMBgxFjAUBgNV -BAMMDUpldFByb2ZpbGUgQ0EwHhcNMTUxMDAyMTEwMDU2WhcNNDUxMDI0MTEwMDU2 -WjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMIICIjANBgkqhkiG9w0BAQEFAAOC -Ag8AMIICCgKCAgEA0tQuEA8784NabB1+T2XBhpB+2P1qjewHiSajAV8dfIeWJOYG -y+ShXiuedj8rL8VCdU+yH7Ux/6IvTcT3nwM/E/3rjJIgLnbZNerFm15Eez+XpWBl -m5fDBJhEGhPc89Y31GpTzW0vCLmhJ44XwvYPntWxYISUrqeR3zoUQrCEp1C6mXNX -EpqIGIVbJ6JVa/YI+pwbfuP51o0ZtF2rzvgfPzKtkpYQ7m7KgA8g8ktRXyNrz8bo -iwg7RRPeqs4uL/RK8d2KLpgLqcAB9WDpcEQzPWegbDrFO1F3z4UVNH6hrMfOLGVA -xoiQhNFhZj6RumBXlPS0rmCOCkUkWrDr3l6Z3spUVgoeea+QdX682j6t7JnakaOw -jzwY777SrZoi9mFFpLVhfb4haq4IWyKSHR3/0BlWXgcgI6w6LXm+V+ZgLVDON52F -LcxnfftaBJz2yclEwBohq38rYEpb+28+JBvHJYqcZRaldHYLjjmb8XXvf2MyFeXr -SopYkdzCvzmiEJAewrEbPUaTllogUQmnv7Rv9sZ9jfdJ/cEn8e7GSGjHIbnjV2ZM -Q9vTpWjvsT/cqatbxzdBo/iEg5i9yohOC9aBfpIHPXFw+fEj7VLvktxZY6qThYXR -Rus1WErPgxDzVpNp+4gXovAYOxsZak5oTV74ynv1aQ93HSndGkKUE/qA/JECAwEA -AaOBhzCBhDAdBgNVHQ4EFgQUo562SGdCEjZBvW3gubSgUouX8bMwSAYDVR0jBEEw -P4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2Zp -bGUgQ0GCCQDSbLGDsoN54TAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkq -hkiG9w0BAQsFAAOCAgEAjrPAZ4xC7sNiSSqh69s3KJD3Ti4etaxcrSnD7r9rJYpK -BMviCKZRKFbLv+iaF5JK5QWuWdlgA37ol7mLeoF7aIA9b60Ag2OpgRICRG79QY7o -uLviF/yRMqm6yno7NYkGLd61e5Huu+BfT459MWG9RVkG/DY0sGfkyTHJS5xrjBV6 -hjLG0lf3orwqOlqSNRmhvn9sMzwAP3ILLM5VJC5jNF1zAk0jrqKz64vuA8PLJZlL -S9TZJIYwdesCGfnN2AETvzf3qxLcGTF038zKOHUMnjZuFW1ba/12fDK5GJ4i5y+n -fDWVZVUDYOPUixEZ1cwzmf9Tx3hR8tRjMWQmHixcNC8XEkVfztID5XeHtDeQ+uPk -X+jTDXbRb+77BP6n41briXhm57AwUI3TqqJFvoiFyx5JvVWG3ZqlVaeU/U9e0gxn -8qyR+ZA3BGbtUSDDs8LDnE67URzK+L+q0F2BC758lSPNB2qsJeQ63bYyzf0du3wB -/gb2+xJijAvscU3KgNpkxfGklvJD/oDUIqZQAnNcHe7QEf8iG2WqaMJIyXZlW3me -0rn+cgvxHPt6N4EBh5GgNZR4l0eaFEV+fxVsydOQYo1RIyFMXtafFBqQl6DDxujl -FeU3FZ+Bcp12t7dlM4E0/sS1XdL47CfGVj4Bp+/VbF862HmkAbd7shs7sDQkHbU= ------END CERTIFICATE----- -""", - """ ------BEGIN CERTIFICATE----- -MIIFTDCCAzSgAwIBAgIJAMCrW9HV+hjZMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNV -BAMMEkxpY2Vuc2UgU2VydmVycyBDQTAgFw0xNjEwMTIxNDMwNTRaGA8yMTE2MTIy -NzE0MzA1NFowHTEbMBkGA1UEAwwSTGljZW5zZSBTZXJ2ZXJzIENBMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoT7LvHj3JKK2pgc5f02z+xEiJDcvlBi6 -fIwrg/504UaMx3xWXAE5CEPelFty+QPRJnTNnSxqKQQmg2s/5tMJpL9lzGwXaV7a -rrcsEDbzV4el5mIXUnk77Bm/QVv48s63iQqUjVmvjQt9SWG2J7+h6X3ICRvF1sQB -yeat/cO7tkpz1aXXbvbAws7/3dXLTgAZTAmBXWNEZHVUTcwSg2IziYxL8HRFOH0+ -GMBhHqa0ySmF1UTnTV4atIXrvjpABsoUvGxw+qOO2qnwe6ENEFWFz1a7pryVOHXg -P+4JyPkI1hdAhAqT2kOKbTHvlXDMUaxAPlriOVw+vaIjIVlNHpBGhqTj1aqfJpLj -qfDFcuqQSI4O1W5tVPRNFrjr74nDwLDZnOF+oSy4E1/WhL85FfP3IeQAIHdswNMJ -y+RdkPZCfXzSUhBKRtiM+yjpIn5RBY+8z+9yeGocoxPf7l0or3YF4GUpud202zgy -Y3sJqEsZksB750M0hx+vMMC9GD5nkzm9BykJS25hZOSsRNhX9InPWYYIi6mFm8QA -2Dnv8wxAwt2tDNgqa0v/N8OxHglPcK/VO9kXrUBtwCIfZigO//N3hqzfRNbTv/ZO -k9lArqGtcu1hSa78U4fuu7lIHi+u5rgXbB6HMVT3g5GQ1L9xxT1xad76k2EGEi3F -9B+tSrvru70CAwEAAaOBjDCBiTAdBgNVHQ4EFgQUpsRiEz+uvh6TsQqurtwXMd4J -8VEwTQYDVR0jBEYwRIAUpsRiEz+uvh6TsQqurtwXMd4J8VGhIaQfMB0xGzAZBgNV -BAMMEkxpY2Vuc2UgU2VydmVycyBDQYIJAMCrW9HV+hjZMAwGA1UdEwQFMAMBAf8w -CwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQCJ9+GQWvBS3zsgPB+1PCVc -oG6FY87N6nb3ZgNTHrUMNYdo7FDeol2DSB4wh/6rsP9Z4FqVlpGkckB+QHCvqU+d -rYPe6QWHIb1kE8ftTnwapj/ZaBtF80NWUfYBER/9c6To5moW63O7q6cmKgaGk6zv -St2IhwNdTX0Q5cib9ytE4XROeVwPUn6RdU/+AVqSOspSMc1WQxkPVGRF7HPCoGhd -vqebbYhpahiMWfClEuv1I37gJaRtsoNpx3f/jleoC/vDvXjAznfO497YTf/GgSM2 -LCnVtpPQQ2vQbOfTjaBYO2MpibQlYpbkbjkd5ZcO5U5PGrQpPFrWcylz7eUC3c05 -UVeygGIthsA/0hMCioYz4UjWTgi9NQLbhVkfmVQ5lCVxTotyBzoubh3FBz+wq2Qt -iElsBrCMR7UwmIu79UYzmLGt3/gBdHxaImrT9SQ8uqzP5eit54LlGbvGekVdAL5l -DFwPcSB1IKauXZvi1DwFGPeemcSAndy+Uoqw5XGRqE6jBxS7XVI7/4BSMDDRBz1u -a+JMGZXS8yyYT+7HdsybfsZLvkVmc9zVSDI7/MjVPdk6h0sLn+vuPC1bIi5edoNy -PdiG2uPH5eDO6INcisyPpLS4yFKliaO4Jjap7yzLU9pbItoWgCAYa2NpxuxHJ0tB -7tlDFnvaRnQukqSG+VqNWg== ------END CERTIFICATE-----""" - }; - - private static final long TIMESTAMP_VALIDITY_PERIOD_MS = 24 * 3_600_000; // configure period that suits your needs better - - /** - * @return TRUE if licensed, FALSE otherwise. Null return value means the LicensingFacade - * object is not initialized yet => one cannot say for sure does a valid license for the - * plugin exist or not. The interpretation of the null value is up to plugin. - */ - @Nullable - public static Boolean isLicensed(final String productCode) { - LOGGER.info("productCode=" + productCode); - final LicensingFacade facade = LicensingFacade.getInstance(); - if (facade == null) { - LOGGER.info("LicensingFacade is not ready yet (null)"); - return null; - } - final String cstamp = facade.getConfirmationStamp(productCode); - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("cstamp=" + cstamp); - } else { - LOGGER.info("cstamp=" + (cstamp == null ? "null" : cstamp.substring(0, Math.min(15, cstamp.length())) + "... (truncated for privacy)")); - } - if (cstamp == null) { - return false; - } - if (cstamp.startsWith(KEY_PREFIX)) { - LOGGER.info("cstamp: the license is obtained via JetBrainsAccount or entered as an activation code"); - return isKeyValid(cstamp.substring(KEY_PREFIX.length())); - } - if (cstamp.startsWith(STAMP_PREFIX)) { - LOGGER.info("cstamp: licensed via ticket obtained from JetBrains Floating License Server"); - return isLicenseServerStampValid(cstamp.substring(STAMP_PREFIX.length())); - } - if (cstamp.startsWith(EVAL_PREFIX)) { - LOGGER.info("cstamp: evaluation mode"); - return isEvaluationValid(cstamp.substring(EVAL_PREFIX.length())); - } - return false; - } - - public static void requestLicense(final String productCode, final String message) { - // ensure the dialog is appeared from UI thread and in a non-modal context - ApplicationManager.getApplication().invokeLater(() -> showRegisterDialog(productCode, message), ModalityState.NON_MODAL); - } - - private static void showRegisterDialog(final String productCode, final String message) { - final com.intellij.openapi.actionSystem.ActionManager actionManager = com.intellij.openapi.actionSystem.ActionManager.getInstance(); - // first, assume we are running inside the opensource version - AnAction registerAction = actionManager.getAction("RegisterPlugins"); - if (registerAction == null) { - // assume running inside commercial IDE distribution - registerAction = actionManager.getAction("Register"); - } - if (registerAction != null) { - registerAction.actionPerformed(AnActionEvent.createFromDataContext("", new Presentation(), asDataContext(productCode, message))); - } - } - - // This creates a DataContext providing additional information for the license UI - // The "Register*" actions show the registration dialog and expect to find this additional data in the DataContext passed to the action - // - productCode: the product corresponding to the passed productCode will be pre-selected in the opened dialog - // - message: optional message explaining the reason why the dialog has been shown - @NotNull - private static DataContext asDataContext(final String productCode, @Nullable String message) { - return dataId -> switch (dataId) { - // the same code as registered in plugin.xml, 'product-descriptor' tag - case "register.product-descriptor.code" -> //NON-NLS - productCode; - - // optional message to be shown in the registration dialog that appears - case "register.message" -> message; - default -> null; - }; - } - - private static boolean isEvaluationValid(String expirationTime) { - try { - final Date now = new Date(); - final Date expiration = new Date(Long.parseLong(expirationTime)); - return now.before(expiration); - } catch (NumberFormatException e) { - return false; - } - } - - private static boolean isKeyValid(String key) { - String[] licenseParts = key.split("-"); - if (licenseParts.length != 4) { - return false; // invalid format - } - - final String licenseId = licenseParts[0]; - final String licensePartBase64 = licenseParts[1]; - final String signatureBase64 = licenseParts[2]; - final String certBase64 = licenseParts[3]; - - try { - final Signature sig = Signature.getInstance("SHA1withRSA"); - // the last parameter of 'createCertificate()' set to 'false' switches off certificate expiration checks. - // This might be the case if the key is at the same time a perpetual fallback license for older IDE versions. - // Here it is only important that the key was signed with an authentic JetBrains certificate. - sig.initVerify(createCertificate( - Base64.getMimeDecoder().decode(certBase64.getBytes(StandardCharsets.UTF_8)), Collections.emptySet(), false - )); - final byte[] licenseBytes = Base64.getMimeDecoder().decode(licensePartBase64.getBytes(StandardCharsets.UTF_8)); - sig.update(licenseBytes); - if (!sig.verify(Base64.getMimeDecoder().decode(signatureBase64.getBytes(StandardCharsets.UTF_8)))) { - return false; - } - // Optional additional check: the licenseId corresponds to the licenseId encoded in the signed license data - // The following is a 'least-effort' code. It would be more accurate to parse json and then find there the value of the attribute "licenseId" - final String licenseData = new String(licenseBytes, StandardCharsets.UTF_8); - return licenseData.contains("\"licenseId\":\"" + licenseId + "\""); //NON-NLS - } catch (Throwable e) { - LOGGER.warn(e); - } - return false; - } - - private static boolean isLicenseServerStampValid(String serverStamp) { - try { - final String[] parts = serverStamp.split(":"); - final Base64.Decoder base64 = Base64.getMimeDecoder(); - - final String expectedMachineId = parts[0]; - final long timeStamp = Long.parseLong(parts[1]); - try { - LOGGER.info("timestamp=" + LocalDateTime.ofInstant(Instant.ofEpochMilli(timeStamp), TimeZone.getDefault().toZoneId())); - } catch (Exception e) { - LOGGER.warn("Failed to parse license timestamp", e); - } - final String machineId = parts[2]; - final String signatureType = parts[3]; - final byte[] signatureBytes = base64.decode(parts[4].getBytes(StandardCharsets.UTF_8)); - final byte[] certBytes = base64.decode(parts[5].getBytes(StandardCharsets.UTF_8)); - final Collection intermediate = new ArrayList<>(); - for (int idx = 6; idx < parts.length; idx++) { - intermediate.add(base64.decode(parts[idx].getBytes(StandardCharsets.UTF_8))); - } - - final Signature sig = Signature.getInstance(signatureType); - - // the last parameter of 'createCertificate()' set to 'true' causes the certificate to be checked for - // expiration. Expired certificates from a license server cannot be trusted - sig.initVerify(createCertificate(certBytes, intermediate, true)); - - sig.update((timeStamp + ":" + machineId).getBytes(StandardCharsets.UTF_8)); - if (sig.verify(signatureBytes)) { - // machineId must match the machineId from the server reply and - // server reply should be relatively 'fresh' - return expectedMachineId.equals(machineId) && Math.abs(System.currentTimeMillis() - timeStamp) < TIMESTAMP_VALIDITY_PERIOD_MS; - } - } catch (Throwable t) { - // consider serverStamp invalid - LOGGER.warn("Silenced invalid serverStamp", t); - } - return false; - } - - @NotNull - private static X509Certificate createCertificate(byte[] certBytes, Collection intermediateCertsBytes, boolean checkValidityAtCurrentDate) throws Exception { - final CertificateFactory x509factory = CertificateFactory.getInstance("X.509"); - final X509Certificate cert = (X509Certificate) x509factory.generateCertificate(new ByteArrayInputStream(certBytes)); - - final Collection allCerts = new HashSet<>(); - allCerts.add(cert); - for (byte[] bytes : intermediateCertsBytes) { - allCerts.add(x509factory.generateCertificate(new ByteArrayInputStream(bytes))); - } - - try { - // Create the selector that specifies the starting certificate - final X509CertSelector selector = new X509CertSelector(); - selector.setCertificate(cert); - // Configure the PKIX certificate builder algorithm parameters - final Set trustAchors = new HashSet<>(); - for (String rc : ROOT_CERTIFICATES) { - trustAchors.add(new TrustAnchor( - (X509Certificate) x509factory.generateCertificate(new ByteArrayInputStream(rc.getBytes(StandardCharsets.UTF_8))), null - )); - } - - final PKIXBuilderParameters pkixParams = new PKIXBuilderParameters(trustAchors, selector); - pkixParams.setRevocationEnabled(false); - if (!checkValidityAtCurrentDate) { - // deliberately check validity on the start date of cert validity period, so that we do not depend on - // the actual moment when the check is performed - pkixParams.setDate(cert.getNotBefore()); - } - pkixParams.addCertStore( - CertStore.getInstance("Collection", new CollectionCertStoreParameters(allCerts)) //NON-NLS - ); - // Build and verify the certification chain - final CertPath path = CertPathBuilder.getInstance("PKIX").build(pkixParams).getCertPath(); - if (path != null) { - CertPathValidator.getInstance("PKIX").validate(path, pkixParams); - return cert; - } - } catch (Exception e) { - // debug the reason here - } - throw new Exception("Certificate used to sign the license is not signed by JetBrains root certificate"); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsLicenseStatus.java b/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsLicenseStatus.java deleted file mode 100644 index 78c012d5..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsLicenseStatus.java +++ /dev/null @@ -1,17 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.lic; - -public class ExtraIconsLicenseStatus { - - private static boolean licenseActivated = true; - - @SuppressWarnings("BooleanMethodIsAlwaysInverted") - public static synchronized boolean isLicenseActivated() { - return licenseActivated; - } - - public static synchronized void setLicenseActivated(boolean licenseActivated) { - ExtraIconsLicenseStatus.licenseActivated = licenseActivated; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsPluginType.java b/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsPluginType.java deleted file mode 100644 index 7d1d67ae..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/lic/ExtraIconsPluginType.java +++ /dev/null @@ -1,59 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.lic; - -import org.jetbrains.annotations.NotNull; - -import java.util.Arrays; -import java.util.Set; -import java.util.stream.Collectors; - -@SuppressWarnings("HardCodedStringLiteral") -public enum ExtraIconsPluginType { - - SUBSCRIPTION("lermitage.intellij.extra.icons", "PEXTRAICONS", true), - LIFETIME("lermitage.extra.icons.lifetime", "PEXTRAICONSLIFE", true), - FREE("lermitage.extra.icons.free", "PEXTRAICONFREE", false), - NOT_FOUND("lermitage.extra.icons.not.found", "PNOTFOUND", true); - - private final String pluginId; - private final String productCode; - private final boolean requiresLicense; - - ExtraIconsPluginType(String pluginId, String productCode, boolean requiresLicense) { - this.pluginId = pluginId; - this.productCode = productCode; - this.requiresLicense = requiresLicense; - } - - public @NotNull String getPluginId() { - return pluginId; - } - - public @NotNull String getProductCode() { - return productCode; - } - - public boolean isRequiresLicense() { - return requiresLicense; - } - - @Override - public String toString() { - return "ExtraIconsPluginType{" + - "pluginId='" + pluginId + '\'' + - ", productCode='" + productCode + '\'' + - ", requiresLicense=" + requiresLicense + - '}'; - } - - /** - * Plugin types with code that actually exists. Filter others, otherwise users would be able - * to bypass license by installing a plugin with the appropriate code. - */ - public static Set getFindableTypes() { - return Arrays.stream(ExtraIconsPluginType.values()) - .dropWhile(type -> type == NOT_FOUND) - .collect(Collectors.toUnmodifiableSet()); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/messaging/RefreshIconsNotifier.java b/src/main/java/lermitage/intellij/extra/icons/messaging/RefreshIconsNotifier.java deleted file mode 100644 index f0bddcdf..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/messaging/RefreshIconsNotifier.java +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.messaging; - -import com.intellij.openapi.project.Project; -import com.intellij.util.messages.Topic; -import org.jetbrains.annotations.Nullable; - -/** - * This notifier is used to refresh icons for projects. - * See Messaging Infrastructure documentation. - */ -public interface RefreshIconsNotifier { - - /** The topic used for notifying the icons refresh handled by Extra Icons plugin. */ - @Topic.ProjectLevel - Topic EXTRA_ICONS_REFRESH_ICONS_NOTIFIER_TOPIC = - Topic.create("extra-icons refresh icons", RefreshIconsNotifier.class); - - /** - * Refresh the icons for the specified project. - * @param project the project whose icons need to be refreshed. - */ - void refreshProjectIcons(@Nullable Project project); - - /** - * Re-initialize the icon enablers for the specified project. - * @param project the project whose icon enablers need to be initialized again. - */ - void reinitProjectIconEnablers(@Nullable Project project); -} diff --git a/src/main/java/lermitage/intellij/extra/icons/messaging/RefreshIconsNotifierService.java b/src/main/java/lermitage/intellij/extra/icons/messaging/RefreshIconsNotifierService.java deleted file mode 100644 index 52f62123..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/messaging/RefreshIconsNotifierService.java +++ /dev/null @@ -1,55 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.messaging; - -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.components.Service; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.project.ProjectManager; -import lermitage.intellij.extra.icons.utils.ProjectUtils; -import org.jetbrains.annotations.Nullable; - -@Service -public final class RefreshIconsNotifierService { - - private final Logger LOGGER = Logger.getInstance(RefreshIconsNotifierService.class); - - public void triggerProjectIconsRefresh(@Nullable Project project) { - ApplicationManager.getApplication().runReadAction(() -> { - if (ProjectUtils.isProjectAlive(project)) { - assert project != null; - RefreshIconsNotifier refreshIconsNotifier = project.getMessageBus() - .syncPublisher(RefreshIconsNotifier.EXTRA_ICONS_REFRESH_ICONS_NOTIFIER_TOPIC); - refreshIconsNotifier.refreshProjectIcons(project); - } else { - LOGGER.warn("Project is not alive, can't refresh icons"); //NON-NLS - } - }); - } - - public void triggerProjectIconEnablersReinit(@Nullable Project project) { - ApplicationManager.getApplication().runReadAction(() -> { - if (ProjectUtils.isProjectAlive(project)) { - assert project != null; - RefreshIconsNotifier refreshIconsNotifier = project.getMessageBus() - .syncPublisher(RefreshIconsNotifier.EXTRA_ICONS_REFRESH_ICONS_NOTIFIER_TOPIC); - refreshIconsNotifier.reinitProjectIconEnablers(project); - } else { - LOGGER.warn("Project is not alive, can't reinit icon enablers"); //NON-NLS - } - }); - } - - public void triggerAllIconsRefreshAndIconEnablersReinit() { - Project[] projects = ProjectManager.getInstance().getOpenProjects(); - for (Project project : projects) { - triggerProjectIconEnablersReinit(project); - triggerProjectIconsRefresh(project); - } - } - - public static RefreshIconsNotifierService getInstance() { - return ApplicationManager.getApplication().getService(RefreshIconsNotifierService.class); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/services/FacetsFinderService.java b/src/main/java/lermitage/intellij/extra/icons/services/FacetsFinderService.java deleted file mode 100644 index 9ddaf52f..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/services/FacetsFinderService.java +++ /dev/null @@ -1,58 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.services; - -import com.intellij.facet.Facet; -import com.intellij.facet.FacetManager; -import com.intellij.openapi.components.Service; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.module.ModuleManager; -import com.intellij.openapi.project.Project; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; - -import java.util.HashSet; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -@Service(Service.Level.PROJECT) -public final class FacetsFinderService { - - private static final @NonNls Logger LOGGER = Logger.getInstance(FacetsFinderService.class); - - private final Set facets; - - public FacetsFinderService(@NotNull Project project) { - long t1 = System.currentTimeMillis(); - Set facetsFound = new HashSet<>(); - try { - ModuleManager moduleManager = ModuleManager.getInstance(project); - Stream.of(moduleManager.getModules()).forEach(module -> { - FacetManager facetManager = FacetManager.getInstance(module); - @NotNull Facet[] allFacets = facetManager.getAllFacets(); - Set facetNames = Stream.of(allFacets).map(facet -> facet.getName().toLowerCase()).collect(Collectors.toSet()); - facetsFound.addAll(facetNames); - }); - } catch (Exception e) { - LOGGER.error(e); - } - long execTime = System.currentTimeMillis() - t1; - if (execTime > 50) { // should be instant - LOGGER.warn("Found facets " + facetsFound + " for project " + project + " in " + execTime + "ms (should be instant)"); - } - facets = facetsFound; - } - - public static FacetsFinderService getInstance(@NotNull Project project) { - return project.getService(FacetsFinderService.class); - } - - /** - * Get project's facets (as in {@code Project Structure > Projects Settings > Facets}), - * like "Spring", "JPA", etc. Facet names are in lowercase. - */ - public @NotNull Set getFacets() { - return facets; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/Base64Utils.java b/src/main/java/lermitage/intellij/extra/icons/utils/Base64Utils.java deleted file mode 100644 index fd40259b..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/Base64Utils.java +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import java.util.Base64; - -public class Base64Utils { - - /** A Base64 thread-safe decoder. */ - public static final Base64.Decoder B64_DECODER = Base64.getDecoder(); - - /** A Base64 thread-safe encoder. */ - public static final Base64.Encoder B64_ENCODER = Base64.getEncoder(); -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/BundledIcon.java b/src/main/java/lermitage/intellij/extra/icons/utils/BundledIcon.java deleted file mode 100644 index f0775d92..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/BundledIcon.java +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -/** - * An icon that comes with Extra Icons plugin. - */ -public record BundledIcon(String iconPath, String description) { -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/ComboBoxWithImageItem.java b/src/main/java/lermitage/intellij/extra/icons/utils/ComboBoxWithImageItem.java deleted file mode 100644 index 11ed60aa..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/ComboBoxWithImageItem.java +++ /dev/null @@ -1,41 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import lermitage.intellij.extra.icons.ModelTag; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * {@link ComboBoxWithImageRenderer} item: PNG or SVG image + text. - */ -public class ComboBoxWithImageItem { - - private final String title; - private final String imagePath; - - public ComboBoxWithImageItem(String title) { - this.title = title; - this.imagePath = null; - } - - public ComboBoxWithImageItem(@NotNull ModelTag modelTag, String title) { - this.title = title; - this.imagePath = modelTag.getIcon(); - } - - public ComboBoxWithImageItem(@NotNull String imagePath, String title) { - this.title = title; - this.imagePath = imagePath; - } - - /** item's text */ - public String getTitle() { - return title; - } - - /** item's image path relative to 'resources' folder, without leading {@code /}. Example: {@code extra-icons/image.svg} */ - public @Nullable String getImagePath() { - return imagePath; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/ComboBoxWithImageRenderer.java b/src/main/java/lermitage/intellij/extra/icons/utils/ComboBoxWithImageRenderer.java deleted file mode 100644 index ee77e632..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/ComboBoxWithImageRenderer.java +++ /dev/null @@ -1,77 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.util.IconLoader; -import org.jetbrains.annotations.NonNls; - -import javax.swing.Icon; -import javax.swing.ImageIcon; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.ListCellRenderer; -import java.awt.Component; - -/** - * A {@link JComboBox} renderer with PNG/SVG image + optional text. - * Example: - *
- * myComboBox.setRenderer(new ComboBoxWithImageRenderer());
- * myComboBox.addItem(new ComboBoxWithImageItem("first item", "extra-icons/first_item.svg"));
- * 
- */ -public class ComboBoxWithImageRenderer extends JLabel implements ListCellRenderer { - - private static final @NonNls Logger LOGGER = Logger.getInstance(ComboBoxWithImageRenderer.class); - - @SuppressWarnings("OverridableMethodCallInConstructor") - public ComboBoxWithImageRenderer() { - setOpaque(true); - setHorizontalAlignment(LEFT); - setVerticalAlignment(CENTER); - } - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - String text = null; - Icon icon = null; - if (value == null) { - return this; - } - try { - if (value instanceof BundledIcon bundledIconValue) { - text = bundledIconValue.description(); - icon = IconLoader.getIcon(((BundledIcon) value).iconPath(), IconUtils.class); - } else if (value instanceof ComboBoxWithImageItem comboBoxWithImageItemValue) { - text = comboBoxWithImageItemValue.getTitle(); - String imagePath = ((ComboBoxWithImageItem) value).getImagePath(); - if (imagePath == null) { - icon = new ImageIcon(); - } else { - icon = IconLoader.getIcon(imagePath, ComboBoxWithImageRenderer.class); - } - } else if (value instanceof String strValue) { - text = strValue; - icon = new ImageIcon(); - } - setText(text); - setIcon(icon); - } catch (Exception e) { - setText("(error, failed to display icon)"); //NON-NLS - setIcon(null); - LOGGER.warn("failed to display icon " + text + ": " + icon, e); - } - - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - setIconTextGap(6); - return this; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/ExtraIconsErrorReportSubmitter.java b/src/main/java/lermitage/intellij/extra/icons/utils/ExtraIconsErrorReportSubmitter.java deleted file mode 100644 index 82ed9a0d..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/ExtraIconsErrorReportSubmitter.java +++ /dev/null @@ -1,176 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import com.intellij.ide.BrowserUtil; -import com.intellij.ide.plugins.IdeaPluginDescriptor; -import com.intellij.ide.plugins.PluginManagerCore; -import com.intellij.openapi.application.ApplicationInfo; -import com.intellij.openapi.application.ModalityState; -import com.intellij.openapi.diagnostic.ErrorReportSubmitter; -import com.intellij.openapi.diagnostic.IdeaLoggingEvent; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.diagnostic.SubmittedReportInfo; -import com.intellij.openapi.extensions.PluginId; -import com.intellij.openapi.util.NlsActions; -import com.intellij.openapi.util.SystemInfo; -import com.intellij.util.Consumer; -import com.intellij.util.ModalityUiUtil; -import org.apache.http.client.utils.URIBuilder; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.awt.Component; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.ResourceBundle; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** - * Error reporter which prefills an issue on Extra Icons' GitHub repository. - * Highly inspired from git-machete-intellij-plugin's code. - */ -public class ExtraIconsErrorReportSubmitter extends ErrorReportSubmitter { - - private static final @NonNls Logger LOGGER = Logger.getInstance(IconUtils.class); - private static final ResourceBundle i18n = I18nUtils.getResourceBundle(); - - private static final int MAX_GITHUB_URI_LENGTH = 8192; - - @Override - public @NlsActions.ActionText @NotNull String getReportActionText() { - return i18n.getString("error.report.btn.title"); - } - - @Override - public boolean submit(IdeaLoggingEvent @NotNull [] events, - @Nullable String additionalInfo, - @NotNull Component parentComponent, - @NotNull Consumer consumer) { // TODO replace com.intellij.util.Consumer by java.util.function.Consumer once IJ API has been updated. Can do nothing for now, and fix will break compatibility with previous IDEs :-( - try { - URI uri = constructNewGitHubIssueUri(events, additionalInfo); - ModalityUiUtil.invokeLaterIfNeeded(ModalityState.any(), () -> BrowserUtil.browse(uri)); - } catch (Exception e) { - LOGGER.error("Failed to prepare Extra Icons error reporter", e); - return false; - } - return true; - } - - @SuppressWarnings("HardCodedStringLiteral") - URI constructNewGitHubIssueUri(IdeaLoggingEvent[] events, @Nullable String additionalInfo) throws URISyntaxException { - URIBuilder uriBuilder; - uriBuilder = new URIBuilder("https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/new"); - String title = Stream.of(events) - .map(event -> { - Throwable throwable = event.getThrowable(); - String exceptionMessage = event.getThrowableText().lines().findFirst().orElse(""); - return (throwable != null ? exceptionMessage : event.getMessage()).stripTrailing(); - }) - .collect(Collectors.joining("; ")); - uriBuilder.setParameter("title", title); - uriBuilder.setParameter("labels", "bug"); - - URI uri; - List reportBodyLines = getReportBody(events, additionalInfo).lines().collect(Collectors.toList()); - do { - // Let's cut the body gradually line-by-line until the resulting URI fits into the GitHub limits. - // It's hard to predict the perfect exact cut in advance due to URL encoding. - reportBodyLines = reportBodyLines.subList(0, reportBodyLines.size() - 1); - uriBuilder.setParameter("body", reportBodyLines.stream().collect(Collectors.joining(System.lineSeparator()))); - uri = uriBuilder.build(); - } while (uri.toString().length() > MAX_GITHUB_URI_LENGTH); - return uri; - } - - private String getReportBody( - IdeaLoggingEvent[] events, - @Nullable String additionalInfo) { - String reportBody = getBugTemplate(); - for (java.util.Map.Entry entry : getTemplateVariables(events, additionalInfo).entrySet()) { - reportBody = reportBody.replace("%" + entry.getKey() + "%", entry.getValue()); - } - return reportBody; - } - - @SuppressWarnings("HardCodedStringLiteral") - private java.util.Map getTemplateVariables( - IdeaLoggingEvent[] events, - @Nullable String additionalInfo) { - Map templateVariables = new HashMap<>(); - - templateVariables.put("ide", ApplicationInfo.getInstance().getFullApplicationName()); - - IdeaPluginDescriptor pluginDescriptor = PluginManagerCore.getPlugin(PluginId.getId("lermitage.intellij.extra.icons")); - String pluginVersion = pluginDescriptor == null ? "" : pluginDescriptor.getVersion(); - templateVariables.put("pluginVersion", pluginVersion); - - templateVariables.put("os", SystemInfo.getOsNameAndVersion()); //ApplicationInfo.getInstance(). - - templateVariables.put("additionalInfo", additionalInfo == null ? "N/A" : additionalInfo); - - String nl = System.lineSeparator(); - String stacktraces = Stream.of(events) - .map(event -> { - // This message is distinct from the throwable's message: - // in `LOG.error(message, throwable)`, it's the first parameter. - String messagePart = event.getMessage() != null ? (event.getMessage() + nl + nl) : ""; - String throwablePart = shortenExceptionsStack(event.getThrowableText().stripTrailing()); - return nl + messagePart + throwablePart + nl; - }) - .collect(Collectors.joining(nl + nl)); - templateVariables.put("stacktraces", stacktraces); - - return templateVariables; - } - - @SuppressWarnings("HardCodedStringLiteral") - private String shortenExceptionsStack(String stackTrace) { - String nl = System.lineSeparator(); - int rootCauseIndex = Math.max( - stackTrace.lastIndexOf("Caused by:"), - stackTrace.lastIndexOf("\tSuppressed:")); - - if (rootCauseIndex != -1) { - String rootCauseStackTrace = stackTrace.substring(rootCauseIndex); - String[] lines = stackTrace.substring(0, rootCauseIndex).split(nl); - - StringBuilder resultString = new StringBuilder(); - for (int i = 0; i < lines.length; i++) { - if (lines[i].contains("Caused by:") || lines[i].contains("Suppressed:") || i == 0) { - resultString.append(lines[i]).append(nl); - if (i + 1 < lines.length) { - resultString.append(lines[i + 1]).append("...").append(nl); - } - } - } - return resultString.append(rootCauseStackTrace).toString(); - } - return stackTrace; - } - - @SuppressWarnings("HardCodedStringLiteral") - private String getBugTemplate() { - return """ - ## Running environment - - Extra Icons plugin version - %pluginVersion% - - IDE - %ide% - - OS - %os% - - ## Bug description - Please include steps to reproduce (like `go to...`/`click on...` etc.) + expected and actual behaviour. \s - Please attach **IDE logs**. Open your IDE and go to Help, Show Log in Explorer, then pick `idea.log`. - - ## IDE - additional info - %additionalInfo% - - ## IDE - stack trace - ```%stacktraces% - """; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/FileChooserUtils.java b/src/main/java/lermitage/intellij/extra/icons/utils/FileChooserUtils.java deleted file mode 100644 index a278237d..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/FileChooserUtils.java +++ /dev/null @@ -1,77 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import com.intellij.openapi.fileChooser.FileChooser; -import com.intellij.openapi.fileChooser.FileChooserDescriptor; -import com.intellij.openapi.util.registry.Registry; -import com.intellij.openapi.vfs.VirtualFile; - -import javax.swing.JFileChooser; -import javax.swing.filechooser.FileNameExtensionFilter; -import java.awt.Component; -import java.util.Arrays; -import java.util.Optional; - -public class FileChooserUtils { - - private static final boolean IS_IDE_SLOW_OPERATIONS_ASSERTION_ENABLED = Registry.is("ide.slow.operations.assertion", false); - - public static Optional chooseFile(String diagTitle, - Component parent, - String filterTitle, - String... filterExtensions) { - return chooseFileOrFolder(FileChooserType.FILE, diagTitle, parent, filterTitle, filterExtensions); - } - - public static Optional chooseFolder(String diagTitle, - Component parent) { - return chooseFileOrFolder(FileChooserType.FOLDER, diagTitle, parent, null); - } - - private static Optional chooseFileOrFolder(FileChooserType fileChooserType, - String diagTitle, - Component parent, - String filterTitle, - String... filterExtensions) { - String filePath = null; - if (IS_IDE_SLOW_OPERATIONS_ASSERTION_ENABLED) { - // FIXME temporary workaround for "Slow operations are prohibited on EDT" issue - // https://github.com/jonathanlermitage/intellij-extra-icons-plugin/issues/126 - // We should be able to use FileChooser.chooseFile instead of JFileChooser.showOpenDialog - JFileChooser dialogue = new JFileChooser(); - dialogue.setDialogTitle(diagTitle); - dialogue.setMultiSelectionEnabled(false); - if (fileChooserType == FileChooserType.FILE) { - dialogue.setFileSelectionMode(JFileChooser.FILES_ONLY); - dialogue.setFileFilter(new FileNameExtensionFilter(filterTitle, filterExtensions)); - } else { - dialogue.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - } - dialogue.setAcceptAllFileFilterUsed(false); - if (dialogue.showOpenDialog(parent) == JFileChooser.APPROVE_OPTION) { - filePath = dialogue.getSelectedFile().getAbsolutePath(); - } - } else { - FileChooserDescriptor fileChooserDescriptor = new FileChooserDescriptor( - fileChooserType == FileChooserType.FILE, fileChooserType == FileChooserType.FOLDER, false, - false, false, false); - fileChooserDescriptor.setTitle(diagTitle); - fileChooserDescriptor.setHideIgnored(false); - fileChooserDescriptor.setShowFileSystemRoots(true); - if (fileChooserType == FileChooserType.FILE) { - fileChooserDescriptor.withFileFilter(virtualFile -> { - return Arrays.stream(filterExtensions).anyMatch(s -> s.equalsIgnoreCase(virtualFile.getExtension())); - }); - } - VirtualFile virtualFile = FileChooser.chooseFile(fileChooserDescriptor, null, null); - filePath = virtualFile != null ? virtualFile.getPath() : null; - } - return Optional.ofNullable(filePath); - } - - private enum FileChooserType { - FILE, - FOLDER - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/I18nUtils.java b/src/main/java/lermitage/intellij/extra/icons/utils/I18nUtils.java deleted file mode 100644 index e55cc7c7..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/I18nUtils.java +++ /dev/null @@ -1,59 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import com.intellij.ide.plugins.IdeaPluginDescriptor; -import com.intellij.ide.plugins.PluginManager; -import com.intellij.openapi.diagnostic.Logger; -import org.jetbrains.annotations.NonNls; - -import java.util.Locale; -import java.util.ResourceBundle; - -public class I18nUtils { - - private static final @NonNls Logger LOGGER = Logger.getInstance(I18nUtils.class); - - private static Boolean isChineseUIEnabled; - private static Locale pluginLocale = null; - - public static synchronized ResourceBundle getResourceBundle() { - if (pluginLocale == null) { - pluginLocale = Locale.ROOT; - if (isChineseUIEnabled()) { - LOGGER.info("Found Chinese Language Pack - Enabling Chinese translation of Extra Icons plugin"); - pluginLocale = Locale.CHINA; - } else { - try { - if (System.getProperty("extra-icons.enable.chinese.ui", "false").equalsIgnoreCase("true")) { //NON-NLS - LOGGER.info("Found extra-icons.enable.chinese.ui=true - Force usage of Chinese translation of Extra Icons plugin"); - pluginLocale = Locale.CHINA; - } - } catch (Exception e) { - LOGGER.info(e); - } - } - } - return ResourceBundle.getBundle("ExtraIconsI18n", pluginLocale); - } - - public static synchronized boolean isChineseUIEnabled() { - if (isChineseUIEnabled != null) { - return isChineseUIEnabled; - } - try { - for (IdeaPluginDescriptor plugin : PluginManager.getLoadedPlugins()) { - if (plugin.getPluginId().getIdString().equals("com.intellij.zh")) { - isChineseUIEnabled = true; - return true; - } - } - } catch (Exception e) { - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("Failed to list loaded plugins", e); - } - } - isChineseUIEnabled = false; - return false; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/IJUtils.java b/src/main/java/lermitage/intellij/extra/icons/utils/IJUtils.java deleted file mode 100644 index c9b95629..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/IJUtils.java +++ /dev/null @@ -1,101 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import com.intellij.ide.plugins.IdeaPluginDescriptor; -import com.intellij.ide.plugins.PluginManagerCore; -import com.intellij.openapi.application.ApplicationInfo; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.application.ModalityState; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.extensions.PluginId; -import com.intellij.util.ui.EDT; -import lermitage.intellij.extra.icons.lic.ExtraIconsPluginType; -import org.jetbrains.annotations.NonNls; - -public class IJUtils { - - private static final @NonNls Logger LOGGER = Logger.getInstance(IJUtils.class); - - public static final boolean IS_IDE_2023_OR_OLDER = isIde2023OrOlder(); - - /** - * Indicate if plugin Icon Viewer 2 - * is installed and enabled. - */ - public static boolean isIconViewer2Loaded() { - return isPluginLoaded("lermitage.intellij.iconviewer"); - } - - /** - * Indicate if plugin Extra Icons Lifetime is installed and enabled. - */ - public static boolean isExtraIconsLifetimeLoaded() { - return isPluginLoaded(ExtraIconsPluginType.LIFETIME.getPluginId()); - } - - public static boolean isPluginLoaded(String pluginId) { - try { - PluginId id = PluginId.findId(pluginId); - if (id == null) { - return false; - } - IdeaPluginDescriptor plugin = PluginManagerCore.getPlugin(id); - if (plugin == null) { - return false; - } - return plugin.isEnabled(); - } catch (Exception e) { - LOGGER.warn("Can't determine if plugin '" + pluginId + "' is installed and enabled", e); - return false; - } - } - - /** - * Run given Runnable in EDT. - * @param description description of what to run. - * @param r what to run in EDT. - */ - public static void runInEDT(String description, Runnable r) { - if (EDT.isCurrentThreadEdt()) { - LOGGER.info("Already in EDT to run: '" + description + "'"); - r.run(); - } else { - ApplicationManager.getApplication().invokeLater(() -> { - LOGGER.info("Enter in EDT in order to run: '" + description + "'"); - r.run(); - }, ModalityState.defaultModalityState()); - } - } - - /** - * Run given Runnable in BGT (i.e. outside EDT). - * @param description description of what to run. - * @param r what to run in BGT. - * @param isReadAction is explicitly a Read Action. - */ - public static void runInBGT(String description, Runnable r, boolean isReadAction) { - ApplicationManager.getApplication().executeOnPooledThread(() -> { - if (isReadAction) { - ApplicationManager.getApplication().runReadAction(() -> { - LOGGER.info("Enter temporarily in BGT in order to run Read Action: '" + description + "', is in EDT: " + EDT.isCurrentThreadEdt()); - r.run(); - }); - } else { - ApplicationManager.getApplication().invokeLater(() -> { - LOGGER.info("Enter temporarily in BGT in order to invoke later: '" + description + "', is in EDT: " + EDT.isCurrentThreadEdt()); - r.run(); - }); - } - }); - } - - private static synchronized boolean isIde2023OrOlder() { - try { - return Integer.parseInt(ApplicationInfo.getInstance().getMajorVersion()) < 2024; - } catch (Exception e) { - LOGGER.warn("Failed to determine if IDE version is < 2024. Ignoring, and let's say it's < 2024", e); - return false; - } - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/IconPackUtils.java b/src/main/java/lermitage/intellij/extra/icons/utils/IconPackUtils.java deleted file mode 100644 index 369971c8..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/IconPackUtils.java +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import lermitage.intellij.extra.icons.cfg.IconPack; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; - -public class IconPackUtils { - - private static final Charset CHARSET = StandardCharsets.UTF_8; - - private static final Gson gson = new GsonBuilder() - .disableHtmlEscaping() - .create(); - - /** - * Read an icon pack from a JSON file. - * @param file icon pack file. - * @return icon pack. - * @throws IOException if any error occurs reading the local file. - */ - public static IconPack fromJsonFile(File file) throws IOException { - String modelsAsJson = Files.readString(file.toPath(), CHARSET); - return gson.fromJson(modelsAsJson, IconPack.class); - } - - /** - * Export an icon pack to a JSON file. - * @param file icon pack file. - * @param iconPack icon pack. - * @throws IOException if any error occurs writing the local file. - */ - public static void writeToJsonFile(File file, IconPack iconPack) throws IOException { - String json = gson.toJson(iconPack, IconPack.class); - Files.writeString(file.toPath(), json, CHARSET); - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/IconUtils.java b/src/main/java/lermitage/intellij/extra/icons/utils/IconUtils.java deleted file mode 100644 index df04279f..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/IconUtils.java +++ /dev/null @@ -1,218 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.util.IconLoader; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.ui.NewUI; -import com.intellij.util.IconUtil; -import com.intellij.util.ui.ImageUtil; -import lermitage.intellij.extra.icons.IconType; -import lermitage.intellij.extra.icons.Model; -import lermitage.intellij.extra.icons.UITypeIconsPreference; -import lermitage.intellij.extra.icons.cfg.services.SettingsService; -import org.apache.commons.codec.digest.DigestUtils; -import org.apache.commons.io.FileUtils; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; - -import javax.imageio.ImageIO; -import javax.swing.Icon; -import java.awt.Image; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.util.UUID; - -import static lermitage.intellij.extra.icons.utils.Base64Utils.B64_DECODER; -import static lermitage.intellij.extra.icons.utils.Base64Utils.B64_ENCODER; - -public class IconUtils { - - private static final @NonNls Logger LOGGER = Logger.getInstance(IconUtils.class); - - private static final int SCALING_SIZE = 16; - - private static final OS DETECT_OS = OS.detectOS(); - - private static final File TMP_FOLDER = new File(System.getProperty("java.io.tmpdir")); - - private static final String IDE_INSTANCE_UNIQUE_ID = UUID.randomUUID().toString(); - - public static Icon getIcon(Model model, double additionalUIScale, @NotNull UITypeIconsPreference uiTypeIconsPreference) { - if (model.getIconType() == IconType.PATH) { - String iconPathToLoad = getIconPathToLoad(model, uiTypeIconsPreference); - return IconLoader.getIcon(iconPathToLoad, IconUtils.class); - } - ImageWrapper fromBase64 = fromBase64(model.getIcon(), model.getIconType(), additionalUIScale); - if (fromBase64 == null) { - return null; - } - return IconUtil.createImageIcon(fromBase64.getImage()); - } - - private static String getIconPathToLoad(Model model, @NotNull UITypeIconsPreference uiTypeIconsPreference) { - boolean preferNewUI = switch (uiTypeIconsPreference) { - case BASED_ON_ACTIVE_UI_TYPE -> NewUI.isEnabled(); - case PREFER_NEW_UI_ICONS -> true; - case PREFER_OLD_UI_ICONS -> false; - }; - String iconPathToLoad; - if (preferNewUI && model.isAutoLoadNewUIIconVariant()) { - iconPathToLoad = model.getIcon().replace("extra-icons/", "extra-icons/newui/"); //NON-NLS - } else { - iconPathToLoad = model.getIcon(); - } - return iconPathToLoad; - } - - public static ImageWrapper loadFromVirtualFile(VirtualFile virtualFile) throws IllegalArgumentException { - if (virtualFile.getExtension() != null) { - IconType iconType; - byte[] imageBytes; - try { - imageBytes = virtualFile.contentsToByteArray(); - if (virtualFile.getExtension().equals("svg") && new String(imageBytes).startsWith("<")) { - iconType = IconType.SVG; - } else { - iconType = IconType.IMG; - } - return loadImage(imageBytes, iconType, SettingsService.DEFAULT_ADDITIONAL_UI_SCALE); - } catch (IOException ex) { - throw new IllegalArgumentException("IOException while trying to load image.", ex); - } - } - return null; - } - - public static ImageWrapper fromBase64(String base64, IconType iconType, double additionalUIScale) { - return loadImage(B64_DECODER.decode(base64), iconType, additionalUIScale); - } - - /** - * Creates or retrieves a temporary SVG file based on the provided image bytes. - * If the SVG file already exists, it is returned. Otherwise, a new file is created - * with the SHA1 of specified image bytes and returned. The temporary file is deleted - * when the virtual machine terminates. - * @param imageBytes the bytes of the image. - * @return the temporary SVG file. - * @throws IOException if an I/O error occurs while creating or accessing the file. - */ - public static synchronized File createOrGetTempSVGFile(byte[] imageBytes) throws IOException { - File svgFile = new File(TMP_FOLDER, "extra-icons-user-icon" + IDE_INSTANCE_UNIQUE_ID + "-" + DigestUtils.sha1Hex(imageBytes) + ".svg"); - if (!svgFile.exists()) { - svgFile.deleteOnExit(); - FileUtils.writeByteArrayToFile(svgFile, imageBytes); - } - return svgFile; - } - - private static ImageWrapper loadSVGAsImageWrapper(byte[] imageBytes, double additionalUIScale) { - String svgFilePath = null; - try { - File svgFile = createOrGetTempSVGFile(imageBytes); - svgFilePath = svgFile.getAbsolutePath(); - String prefix = DETECT_OS == OS.WIN ? "file:/" : "file://"; //NON-NLS // TODO see if should use VfsUtil.fixURLforIDEA(urlStr) - Icon icon = IconLoader.getIcon(prefix + svgFile.getAbsolutePath().replaceAll("\\\\", "/"), IconUtils.class); - if (icon.getIconWidth() == 16) { - return new ImageWrapper(IconType.SVG, IconUtil.toImage(icon), imageBytes); - } else if (additionalUIScale == 1 || additionalUIScale == 2) { - Image image = IconUtil.toImage(icon); - image = ImageUtil.scaleImage(image, (int) (SCALING_SIZE * additionalUIScale), (int) (SCALING_SIZE * additionalUIScale)); - image = scaleImage(image, SCALING_SIZE); - return new ImageWrapper(IconType.SVG, image, imageBytes); - } else { - Image image = IconUtil.toImage(icon); - image = ImageUtil.scaleImage(image, (int) (SCALING_SIZE * additionalUIScale), (int) (SCALING_SIZE * additionalUIScale)); - return new ImageWrapper(IconType.SVG, image, imageBytes); - } - } catch (Exception e) { - // avoid error report: com.intellij.openapi.application.rw.ReadCancellationException - // java.lang.Throwable: Control-flow exceptions (e.g. this class com.intellij.openapi.progress.CeProcessCanceledException) should - // never be logged. Instead, these should have been rethrown if caught. - String errorName = e.getClass().getName(); - if (errorName.contains("ReadCancellationException") || errorName.contains("ProcessCanceledException")) { - LOGGER.warn("Can't load an SVG user icon (path: " + svgFilePath + "): " + e.getMessage()); - return null; - } - LOGGER.error(e); - return null; - } - } - - public static ImageWrapper loadImage(byte[] imageBytes, IconType iconType, double additionalUIScale) { - if (iconType == IconType.SVG) { - try { - return loadSVGAsImageWrapper(imageBytes, additionalUIScale); - } catch (Exception ex) { - LOGGER.info("Can't load " + iconType + " icon: " + ex.getMessage(), ex); - return null; - } - } - - Image image; - try (ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(imageBytes)) { - image = ImageIO.read(byteArrayInputStream); - } catch (IOException ex) { - LOGGER.info("Can't load " + iconType + " icon: " + ex.getMessage(), ex); - return null; - } - if (image == null) { - return null; - } - Image scaledImage = scaleImage(image, (int) (SCALING_SIZE * additionalUIScale)); - return new ImageWrapper(iconType, scaledImage, imageBytes); - } - - public static String toBase64(ImageWrapper imageWrapper) { - String base64 = null; - IconType iconType = imageWrapper.getIconType(); - switch (iconType) { - case SVG, IMG -> base64 = B64_ENCODER.encodeToString(imageWrapper.getImageAsByteArray()); - } - return base64; - } - - private static Image scaleImage(Image image, int scaling_size) { - return ImageUtil.scaleImage(image, scaling_size, scaling_size); - } - - public static class ImageWrapper { - - private final IconType iconType; - private final Image image; - private final byte[] imageAsByteArray; - private final String imageAsBundledIconRef; - - public ImageWrapper(IconType iconType, Image image, byte[] imageAsByteArray) { - this.iconType = iconType; - this.image = image; - this.imageAsByteArray = imageAsByteArray; - this.imageAsBundledIconRef = null; - } - - public ImageWrapper(String imageAsBundledIconRef) { - this.iconType = IconType.PATH; - this.image = null; - this.imageAsByteArray = new byte[0]; - this.imageAsBundledIconRef = imageAsBundledIconRef; - } - - public IconType getIconType() { - return iconType; - } - - public Image getImage() { - return image; - } - - public byte[] getImageAsByteArray() { - return imageAsByteArray; - } - - public String getImageAsBundledIconRef() { - return imageAsBundledIconRef; - } - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/OS.java b/src/main/java/lermitage/intellij/extra/icons/utils/OS.java deleted file mode 100644 index 272be234..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/OS.java +++ /dev/null @@ -1,26 +0,0 @@ -package lermitage.intellij.extra.icons.utils; - -import com.intellij.openapi.util.SystemInfo; -import org.jetbrains.annotations.NotNull; - -public enum OS { - WIN, - LINUX, - MACOS; - - private static OS detectedOS; - - @NotNull - public static OS detectOS() { - if (detectedOS == null) { - if (SystemInfo.isWindows) { - detectedOS = WIN; - } else if (SystemInfo.isMac) { - detectedOS = MACOS; - } else { - detectedOS = LINUX; - } - } - return detectedOS; - } -} diff --git a/src/main/java/lermitage/intellij/extra/icons/utils/ProjectUtils.java b/src/main/java/lermitage/intellij/extra/icons/utils/ProjectUtils.java deleted file mode 100644 index 06838966..00000000 --- a/src/main/java/lermitage/intellij/extra/icons/utils/ProjectUtils.java +++ /dev/null @@ -1,37 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.utils; - -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.project.ProjectManager; -import org.jetbrains.annotations.Nullable; - -public class ProjectUtils { - - private static final Logger LOGGER = Logger.getInstance(ProjectUtils.class); - - public static @Nullable Project getFirstOpenedProject() { - Project[] projects = ProjectManager.getInstance().getOpenProjects(); - return projects.length == 0 ? null : projects[0]; - } - - /** - * Return true if the project can be manipulated. Project is not null, not disposed, etc. - * Developed to fix issue #39. - */ - public static boolean isProjectAlive(@Nullable Project project) { - if (project != null && !project.isDisposed()) { - return true; - } else { - if (project == null) { - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("Project is null"); //NON-NLS - } - } else { - LOGGER.warn("Project '" + project.getName() + "' is not alive - Project is disposed: " + project.isDisposed()); //NON-NLS - } - return false; - } - } -} diff --git a/src/main/resources/ExtraIconsI18n.properties b/src/main/resources/ExtraIconsI18n.properties deleted file mode 100644 index 67f2dba9..00000000 --- a/src/main/resources/ExtraIconsI18n.properties +++ /dev/null @@ -1,160 +0,0 @@ -btn.add=Add -btn.disable.all=Disable all... -btn.edit=Edit -btn.enable.all=Enable all... -btn.export.icon.pack=Export... -btn.import.icon.pack.file=Import from file... -btn.import.icon.pack.web.tooltip=Opens a link in your browser. -btn.import.icon.pack.web=Import from Web... -btn.plugin.icons.table.filter.reset=Reset filter -btn.reload.project.icons.tooltip=Reload icons in all project views.
Use it if some icons were not loaded due to errors like IDE filename index issues. -btn.reload.project.icons=Reload projects icons -btn.remove=Remove -btn.scalefactor.detect.infomessage.message=Found UI scale: {0} -btn.scalefactor.detect.infomessage.title=Success -btn.scalefactor.detect=Detect -btn.uninstall.icon.pack=Uninstall... -checkbox.dont.overwrite.ide.user.icons.tooltip=If unchecked, project user icons will overwrite IDE user icons -checkbox.dont.overwrite.ide.user.icons=Don't overwrite IDE user icons -checkbox.ignore.warnings.tooltip=You may see notifications saying that some features have been disabled
due to plugin or IDE errors, like IDE filename index issues.
Use this checkbox to silent these notifications. -checkbox.ignore.warnings=Ignore plugin's warnings -checkbox.override.ide.settings.tooltip=Set icons on a project-level basis -checkbox.override.ide.settings=Override IDE settings -checkbox.use.ide.filename.index.label=Use IDE filename index (default: true) -checkbox.use.ide.filename.index.tip=Uncheck in order to avoid usage of IDE filename index. Without IDE filename index,
Angular, GraphQL and Helm support may be limited, but it may hopefully avoid some errors
and warnings when using slow operations in EDT, things like that.
Takes effect after IDE restart. -configured.iconviewer.for.svg.rendering.title=Change applied -configured.iconviewer.for.svg.rendering=Icon Viewer 2 will now handle SVG files rendering in project view. -dialog.export.ask.icon.pack.name.title=Choose an Icon Pack name, or simply Cancel or leave it empty: -dialog.export.ask.icon.pack.name.window.title=Choose an Icon Pack name? -dialog.export.icon.pack.success.title=Success -dialog.export.icon.pack.success=Icon pack exported with success! -dialog.export.icon.pack.title=Choose a folder to export user icons -dialog.import.icon.pack.success.title=Success -dialog.import.icon.pack.success=Icon pack imported with success! Restart IDE to see changes. -dialog.import.icon.pack.title=Choose a JSON icon pack -error.report.btn.title=Report to Extra Icons on GitHub -experimental.panel.title=Experimental -extra.icons.plugin=Extra Icons plugin -field.regex.ignore.relative.paths=Regex is a Java regex, and file path is lowercased before check. -field.ui.scalefactor=Useful if you run IDE with -Dsun.java2d.uiScale.enabled=false flag and user icons are too small.
May also be useful on Linux systems when fractional scaling is enabled (try to set the same scaling factor, per example 1.25 for 125%).
Float value. -icon.pack.context.help=An Icon Pack is a list of user icons (with conditions) you can import and export to a JSON file.
When exporting an Icon Pack, you can give it a name (the first \"name\" attribute in the JSON file).
When importing an Icon Pack with a name, you will see this name in the user icons list. You can use this name if you want to uninstall all icons associated to this name.
Icon Pack names are optional. -icon.pack.label=User Icon Packs: -icons.failed.to.reload.title=Icons not reloaded -icons.failed.to.reload=Failed to reload icons, please try again later. -icons.reloaded.title=Icons reloaded -icons.reloaded=All icons in project views should have been reloaded. -icons.tag.name={0} icons -icons=icons -invalid.ui.scalefactor.title=Invalid Additional UI Scale Factor -invalid.ui.scalefactor=Ignoring invalid value ''{0}'' for Additional UI Scale Factor. Please use a valid Float value next time, like 1 or 1.25. -label.regex.ignore.relative.paths=Regex to ignore relative paths: -label.ui.scalefactor=Additional UI Scale Factor to adjust user icons size: -main.pane.advanced.config.title=Advanced -main.pane.main.config.title=Main configuration -model.condition.check.parents=parent(s): {0} -model.condition.dialog.edit.condition.title=Edit Condition -model.condition.dialog.endswith.checkbox=Ends with -model.condition.dialog.equals.checkbox=Equals -model.condition.dialog.err.extension.missing=Please specify at least one extension. -model.condition.dialog.err.facet.missing=Please specify at least one facet. -model.condition.dialog.err.invalid.regex=Please specify a valid regex. -model.condition.dialog.err.name.missing=Please specify at least one name. -model.condition.dialog.err.names.checkbox.if.may.end=If you select "May end in", you need to select the Names checkbox. -model.condition.dialog.err.parent.missing=Please specify at least one parent. -model.condition.dialog.err.select.at.least.one.checkbox=Please select at least one checkbox from Regex, Parents, Names or Extensions. -model.condition.dialog.extensions.checkbox=Extensions: -model.condition.dialog.facets.checkbox=Facets: -model.condition.dialog.mayendwith.checkbox=May end with -model.condition.dialog.names.checkbox=Names: -model.condition.dialog.nodot.checkbox=No dot -model.condition.dialog.parents.checkbox=Parents: -model.condition.dialog.regex.checkbox=Regex: -model.condition.dialog.startswith.checkbox=Starts with -model.condition.dialog.tips=
Extensions: use {0} as a separator for multiple values.
Regex is a Java regex and is applied on absolute paths.
File path is lowercased before check.
Facets can''t be used alone, combine them with other condition(s). -model.condition.dialog.title=Add Condition -model.condition.facets=facets: {0} -model.condition.name.ends.with=name ends with: {0} -model.condition.name.equals=name equals: {0} -model.condition.name.may.end.with=name may end with: {0} -model.condition.name.starts.with.and.no.dot=\ and does not contain a dot -model.condition.name.starts.with=name starts with: {0} -model.condition.regex=regex: {0} -model.desc.alternative.first={0} (alternative 1) -model.desc.alternative.other={0} (alternative {1}) -model.desc.alternative={0} (alternative) -model.dialog.choose.icon.bundled.icon=bundled: {0} -model.dialog.choose.icon.failed.to.load.icon=Could Not Load Icon. -model.dialog.choose.icon.first.item=choose custom or bundled icon -model.dialog.choose.icon.no.conditions.added=No conditions added. -model.dialog.choose.icon.tooltip=Choose a custom icon with the button on the right,
otherwise select a bundled icon in the list. -model.dialog.creator.condition.col.add=Add -model.dialog.creator.condition.col.edit=Edit -model.dialog.creator.condition.col.remove=Remove -model.dialog.description.label=Description: -model.dialog.icon.chooser.btn=Choose custom icon -model.dialog.icon.type.selector.label=Icon: -model.dialog.iconpack.label=Icon Pack name (optional): -model.dialog.icons.name.label=Icon's name: -model.dialog.id.label=ID: -model.dialog.model.editor=Edit Model -model.dialog.model.tester.tooltip=Enter a file of folder name or absolute path in order to verify your Model. -model.dialog.model.tester=Test your model: -model.dialog.override.ide.tip.tooltip=Open https://jetbrains.design/intellij/resources/icons_list/ in default browser. -model.dialog.override.ide.tip=Find IDE icons here, open the ZIP file then use an icon file name (with .svg extension). -model.dialog.tester.label=Test your model: -model.dialog.title=Add New Model -model.dialog.type.label=Type: -model.dialog.uninstall.icon.pack.title=Choose an Icon Pack to uninstall from user icons: -model.dialog.uninstall.icon.pack.window.title=Choose an Icon Pack -model.dialog.validation.condition.missing=Please add a condition to your model! -model.dialog.validation.desc.missing=Description cannot be empty! -model.dialog.validation.icon.missing=Please add an icon! -model.dialog.validation.id.missing=ID cannot be empty! -model.dialog.validation.ide.icon.must.end.svg=IDE icon's name must end with .svg! -model.dialog.validation.ide.icon.name.missing=IDE icon's name cannot be empty! -model.type.directory=Directory -model.type.file=File -model.type.icon=Icon (IDE restart is required to see changes) -notif.tips.iconviewer.should.render.svg.accept.btn=Yes, configure this for me -notif.tips.iconviewer.should.render.svg=Icon Viewer 2 and Extra Icons plugins are installed. Do you want to configure Extra Icons to let Icon Viewer 2 handle SVG files rendering in project views? It will simply configure Extra Icons plugin (at IDE level only) to not override "*.svg" file icons. This way, you will see real SVG file preview icons instead of the SVG logo in project views. -notif.tips.plugin.config.btn=Go to Extra Icons settings -notif.tips.plugin.config.content=Did you know that Extra Icons plugin is configurable? You can:
  • enable and disable every icon, at IDE and project levels
  • register your own icons
  • download and share icon packs
-notif.tips.plugin.config.title=Extra Icons tips -notification.content.cant.compile.regex.subtitle=Invalid settings -notification.content.cant.compile.regex.title={0} settings -notification.content.cant.compile.regex=Can''t compile regex: ''{0}'' ({1}) -plugin.icons.table.bottom.tip=Icons are ordered by priority. To use an alternative icon (as for Markdown files), deactivate the icon(s) with higher priority.
The Restart column indicates if you need to restart the IDE to see changes. -plugin.icons.table.col.description=Description -plugin.icons.table.col.need.restart=Restart -plugin.icons.table.col.tags=Tags -plugin.icons.table.filter.tooltip=Regex is a Java regex and is not case-sensitive
You can also type yes or no to find the icons that are enabled or disabled. -plugin.icons.table.filter=Regex to filter Plugin icons table by: -plugin.icons.table.tab.name=Plugin icons -quick.action.label=Quick action: -reset.hints.btn=Reset -reset.hints.success.subtitle=If needed, Extra Icons tips and notifications will appear the next time the IDE is launched. -reset.hints.success.title=Success -reset.hints.title=Reset Extra Icons hints and notifications: -settings.idelevel.menu=Extra Icons -settings.projectlevel.menu=Project -uitype.selector.auto.select=Auto select old/new UI icons -uitype.selector.context.help=Some icons have variants for the old or the new UI.
You can choose to select the variant corresponding to the IDE theme,
or force the usage of old or new UI variants, when they exist.
Restart IDE to see changes. -uitype.selector.context.title=Prefer old UI or new UI icon variants: -uitype.selector.prefer.new=Always prefer new UI icons -uitype.selector.prefer.old=Always prefer old UI icons -user.icons.table.col.description=Description -user.icons.table.col.iconpack=Icon Pack name -user.icons.table.tab.name=User icons -main.pane.known.issues.title=Known issues -known.issues.title=
Up-voting these JetBrains issues would greatly help. Thank you!
-known.issue.label1=
IDEA-247819
IntelliJ based IDEs do not allow folder icons override in the Packages View.
That means we cannot set custom icons for folders in the Packages View. -known.issue.label2=
IDEA-339254
IntelliJ IDE shows default Class icon for Java Exceptions until you modify them.
You have to modify Java Exception files to see the corresponding Exception icon.
That means we cannot easily see the custom red Exception icons. -known.issue.label3=
RIDER-101621
Rider IDE does not allow folder icons override in the Solution Explorer.
That means we cannot set custom icons for folders in the Solution Explorer. -known.issue.btn1=Visit IDEA-247819 (youtrack.jetbrains.com) -known.issue.btn2=Visit IDEA-339254 (youtrack.jetbrains.com) -known.issue.btn3=Visit RIDER-101621 (youtrack.jetbrains.com) -notif.tips.lifetime.lic.intro.title=Extra Icons lifetime licenses -notif.tips.lifetime.lic.intro.content=Lifetime licenses for Extra Icons are now available: one-time payment for the plugin and use it for a lifetime. Get more information by clicking on the link below. -notif.tips.lifetime.lic.intro.btn=How to get a lifetime license -license.required.msg=A license is needed for Extra Icons plugin. -license.not.found.config.title=Found no valid Extra Icons license. Plugin will not apply icons override. diff --git a/src/main/resources/ExtraIconsI18n_zh.properties b/src/main/resources/ExtraIconsI18n_zh.properties deleted file mode 100644 index 85d655fe..00000000 --- a/src/main/resources/ExtraIconsI18n_zh.properties +++ /dev/null @@ -1,163 +0,0 @@ -# TODO find a way to load Settings Menu items translation only if Chinese Language Pack is enabled -#settings.idelevel.menu=\u989D\u5916\u56FE\u6807 -#settings.projectlevel.menu=\u9879\u76EE -btn.add=\u6DFB\u52A0 -btn.disable.all=\u7981\u7528\u6240\u6709... -btn.edit=\u4FEE\u6539 -btn.enable.all=\u542F\u7528\u6240\u6709... -btn.export.icon.pack=\u5BFC\u51FA... -btn.import.icon.pack.file=\u4ECE\u6587\u4EF6\u4E2D\u5BFC\u5165... -btn.import.icon.pack.web.tooltip=\u5728\u4F60\u7684\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u4E00\u4E2A\u94FE\u63A5. -btn.import.icon.pack.web=\u4ECE\u7F51\u7EDC\u5BFC\u5165... -btn.plugin.icons.table.filter.reset=\u91CD\u7F6E\u8FC7\u6EE4\u5668 -btn.reload.project.icons.tooltip=\u5728\u6240\u6709\u9879\u76EE\u89C6\u56FE\u4E2D\u91CD\u65B0\u52A0\u8F7D\u56FE\u6807.
\u5982\u679C\u4E00\u4E9B\u56FE\u6807\u7531\u4E8EIDE\u6587\u4EF6\u540D\u7D22\u5F15\u95EE\u9898\u7B49\u9519\u8BEF\u800C\u6CA1\u6709\u88AB\u52A0\u8F7D\uFF0C\u8BF7\u4F7F\u7528\u5B83. -btn.reload.project.icons=\u91CD\u65B0\u52A0\u8F7D\u9879\u76EE\u56FE\u6807 -btn.remove=\u79FB\u9664 -btn.scalefactor.detect.infomessage.message=\u53D1\u73B0 UI \u6BD4\u4F8B: {0} -btn.scalefactor.detect.infomessage.title=\u6210\u529F -btn.scalefactor.detect=\u4FA6\u6D4B -btn.uninstall.icon.pack=\u5378\u8F7D... -checkbox.dont.overwrite.ide.user.icons.tooltip=\u5982\u679C\u4E0D\u52FE\u9009\uFF0C\u9879\u76EE\u7528\u6237\u56FE\u6807\u5C06\u8986\u76D6IDE\u7528\u6237\u56FE\u6807 -checkbox.dont.overwrite.ide.user.icons=\u4E0D\u8981\u8986\u76D6IDE\u7684\u7528\u6237\u56FE\u6807 -checkbox.ignore.warnings.tooltip=\u4F60\u53EF\u80FD\u4F1A\u770B\u5230\u901A\u77E5\u8BF4\u67D0\u4E9B\u529F\u80FD\u5DF2\u88AB\u7981\u7528
\u7531\u4E8E\u63D2\u4EF6\u6216IDE\u9519\u8BEF\uFF0C\u5982IDE\u6587\u4EF6\u540D\u7D22\u5F15\u95EE\u9898.
\u4F7F\u7528\u8FD9\u4E2A\u590D\u9009\u6846\u6765\u9759\u9ED8\u8FD9\u4E9B\u901A\u77E5. -checkbox.ignore.warnings=\u5FFD\u7565\u63D2\u4EF6\u7684\u8B66\u544A -checkbox.override.ide.settings.tooltip=\u5728\u9879\u76EE\u7EA7\u57FA\u7840\u4E0A\u8BBE\u7F6E\u56FE\u6807 -checkbox.override.ide.settings=\u8986\u76D6IDE\u7684\u8BBE\u7F6E -checkbox.use.ide.filename.index.label=\u4F7F\u7528 IDE \u6587\u4EF6\u540D\u7D22\u5F15 (\u9ED8\u8BA4\uFF1A\u771F\u6B63\u7684) -checkbox.use.ide.filename.index.tip=\u53D6\u6D88\u9009\u4E2D\u53EF\u907F\u514D\u4F7F\u7528 IDE \u6587\u4EF6\u540D\u7D22\u5F15\u3002\u4E0D\u4F7F\u7528 IDE \u6587\u4EF6\u540D\u7D22\u5F15,
\u5BF9 Angular\u3001GraphQL \u548C Helm \u7684\u652F\u6301\u53EF\u80FD\u6709\u9650\uFF0C\u4F46\u6709\u671B\u907F\u514D\u4E00\u4E9B\u9519\u8BEF
\u4EE5\u53CA\u5728 EDT \u4E2D\u4F7F\u7528\u6162\u901F\u64CD\u4F5C\u65F6\u7684\u8B66\u544A\uFF0C\u8BF8\u5982\u6B64\u7C7B.
IDE \u91CD\u542F\u540E\u751F\u6548. -configured.iconviewer.for.svg.rendering.title=\u5DF2\u5E94\u7528\u7684\u66F4\u6539 -configured.iconviewer.for.svg.rendering=Icon Viewer 2 \u73B0\u5728\u53EF\u4EE5\u5728\u9879\u76EE\u89C6\u56FE\u4E2D\u5904\u7406 SVG \u6587\u4EF6\u7684\u6E32\u67D3. -dialog.export.ask.icon.pack.name.title=\u9009\u62E9\u4E00\u4E2A\u56FE\u6807\u5305\u540D\u79F0\uFF0C\u6216\u76F4\u63A5\u53D6\u6D88\u6216\u7559\u7A7A: -dialog.export.ask.icon.pack.name.window.title=\u9009\u62E9\u4E00\u4E2A\u56FE\u6807\u5305\u540D\u79F0? -dialog.export.icon.pack.success.title=\u6210\u529F -dialog.export.icon.pack.success=\u56FE\u6807\u5305\u6210\u529F\u5BFC\u51FA! -dialog.export.icon.pack.title=\u9009\u62E9\u4E00\u4E2A\u6587\u4EF6\u5939\u6765\u5BFC\u51FA\u7528\u6237\u56FE\u6807 -dialog.import.icon.pack.success.title=\u6210\u529F -dialog.import.icon.pack.success=\u56FE\u6807\u5305\u6210\u529F\u5BFC\u5165! \u91CD\u65B0\u542F\u52A8IDE\u4EE5\u67E5\u770B\u53D8\u5316. -dialog.import.icon.pack.title=\u9009\u62E9\u4E00\u4E2AJSON\u56FE\u6807\u5305 -error.report.btn.title=\u5728GitHub\u4E0A\u5411Extra Icons\u62A5\u544A -experimental.panel.title=\u5B9E\u9A8C\u6027 -extra.icons.plugin=Extra Icons\u63D2\u4EF6 -field.regex.ignore.relative.paths=\u6B63\u5219\u8868\u8FBE\u5F0F\u662F\u4E00\u4E2AJava\u6B63\u5219\u8868\u8FBE\u5F0F\uFF0C\u6587\u4EF6\u8DEF\u5F84\u5728\u68C0\u67E5\u524D\u662F\u5C0F\u5199\u7684. -field.ui.scalefactor=\u5982\u679C\u4F60\u5728\u8FD0\u884CIDE\u65F6\u4F7F\u7528 -Dsun.java2d.uiScale.enabled=false \u65D7\u5E1C\u548C\u7528\u6237\u56FE\u6807\u592A\u5C0F.
\u5728Linux\u7CFB\u7EDF\u4E0A\uFF0C\u5F53\u542F\u7528\u5C0F\u6570\u6BD4\u4F8B\u65F6\uFF0C\u53EF\u80FD\u4E5F\u5F88\u6709\u7528\uFF08\u5C3D\u91CF\u8BBE\u7F6E\u76F8\u540C\u7684\u6BD4\u4F8B\u7CFB\u6570\uFF0C\u4F8B\u59821.25\uFF09.
\u6D6E\u52A8\u503C. -icon.pack.context.help=\u56FE\u6807\u5305\u662F\u4E00\u4E2A\u7528\u6237\u56FE\u6807\u7684\u5217\u8868\uFF08\u6709\u6761\u4EF6\u7684\uFF09\uFF0C\u4F60\u53EF\u4EE5\u5BFC\u5165\u548C\u5BFC\u51FA\u5230JSON\u6587\u4EF6\u4E2D.
\u5F53\u5BFC\u51FA\u4E00\u4E2A\u56FE\u6807\u5305\u65F6\uFF0C\u4F60\u53EF\u4EE5\u7ED9\u5B83\u4E00\u4E2A\u540D\u5B57\uFF08JSON\u6587\u4EF6\u4E2D\u7684\u7B2C\u4E00\u4E2A\"name\"\u5C5E\u6027\uFF09.
\u5F53\u5BFC\u5165\u4E00\u4E2A\u6709\u540D\u5B57\u7684\u56FE\u6807\u5305\u65F6\uFF0C\u4F60\u4F1A\u5728\u7528\u6237\u56FE\u6807\u5217\u8868\u4E2D\u770B\u5230\u8FD9\u4E2A\u540D\u5B57.\u5982\u679C\u4F60\u60F3\u5378\u8F7D\u4E0E\u6B64\u540D\u79F0\u76F8\u5173\u7684\u6240\u6709\u56FE\u6807\uFF0C\u4F60\u53EF\u4EE5\u4F7F\u7528\u6B64\u540D\u79F0.
\u56FE\u6807\u5305\u540D\u79F0\u662F\u53EF\u9009\u9879. -icon.pack.label=\u7528\u6237\u56FE\u6807\u5305: -icons.failed.to.reload.title=\u56FE\u6807\u6CA1\u6709\u91CD\u65B0\u52A0\u8F7D -icons.failed.to.reload=\u91CD\u65B0\u52A0\u8F7D\u56FE\u6807\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5. -icons.reloaded.title=\u56FE\u6807\u91CD\u8F7D -icons.reloaded=\u9879\u76EE\u89C6\u56FE\u4E2D\u7684\u6240\u6709\u56FE\u6807\u5E94\u8BE5\u5DF2\u7ECF\u88AB\u91CD\u65B0\u52A0\u8F7D. -icons.tag.name={0} \u56FE\u6807 -icons=\u56FE\u6807 -invalid.ui.scalefactor.title=\u65E0\u6548\u7684\u9644\u52A0UI\u6BD4\u4F8B\u7CFB\u6570 -invalid.ui.scalefactor=\u5FFD\u7565\u65E0\u6548\u7684\u503Ce ''{0}'' \u4E3A\u989D\u5916\u7684\u7528\u6237\u754C\u9762\u6BD4\u4F8B\u7CFB\u6570. \u4E0B\u6B21\u8BF7\u4F7F\u7528\u6709\u6548\u7684Float\u503C\uFF0C\u59821\u62161.25. -label.regex.ignore.relative.paths=\u5FFD\u7565\u76F8\u5BF9\u8DEF\u5F84\u7684\u6B63\u5219\u8868\u8FBE\u5F0F: -label.ui.scalefactor=\u989D\u5916\u7684UI\u6BD4\u4F8B\u7CFB\u6570\u6765\u8C03\u6574\u7528\u6237\u56FE\u6807\u7684\u5927\u5C0F: -main.pane.advanced.config.title=\u9AD8\u7EA7 -main.pane.main.config.title=\u4E3B\u8981\u914D\u7F6E -model.condition.check.parents=\u7236\u8282\u70B9: {0} -model.condition.dialog.edit.condition.title=\u7F16\u8F91\u6761\u4EF6 -model.condition.dialog.endswith.checkbox=\u7ED3\u675F\u4E8E -model.condition.dialog.equals.checkbox=\u7B49\u4E8E -model.condition.dialog.err.extension.missing=\u8BF7\u81F3\u5C11\u6307\u5B9A\u4E00\u4E2A\u5206\u673A. -model.condition.dialog.err.facet.missing=\u8BF7\u81F3\u5C11\u6307\u5B9A\u4E00\u4E2A\u9762. -model.condition.dialog.err.invalid.regex=\u8BF7\u6307\u5B9A\u4E00\u4E2A\u6709\u6548\u7684\u6B63\u5219\u8868\u8FBE\u5F0F. -model.condition.dialog.err.name.missing=\u8BF7\u81F3\u5C11\u8BF4\u660E\u4E00\u4E2A\u540D\u5B57. -model.condition.dialog.err.names.checkbox.if.may.end=\u5982\u679C\u4F60\u9009\u62E9 "\u53EF\u80FD\u7ED3\u675F\u4E8E"\uFF0C\u4F60\u9700\u8981\u9009\u62E9\u540D\u79F0\u590D\u9009\u6846. -model.condition.dialog.err.parent.missing=\u8BF7\u81F3\u5C11\u6307\u5B9A\u4E00\u4F4D\u5BB6\u957F. -model.condition.dialog.err.select.at.least.one.checkbox=\u8BF7\u4ECE\u6B63\u5219\u8868\u8FBE\u5F0F\u3001\u7236\u6BCD\u3001\u59D3\u540D\u6216\u6269\u5C55\u540D\u4E2D\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u590D\u9009\u6846. -model.condition.dialog.extensions.checkbox=\u540E\u7F00: -model.condition.dialog.facets.checkbox=\u65B9\u9762: -model.condition.dialog.mayendwith.checkbox=\u53EF\u80FD\u4EE5 -model.condition.dialog.names.checkbox=\u540D\u79F0: -model.condition.dialog.nodot.checkbox=\u6CA1\u6709\u70B9 -model.condition.dialog.parents.checkbox=\u7236\u6BCD: -model.condition.dialog.regex.checkbox=\u6B63\u5219\u8868\u8FBE\u5F0F: -model.condition.dialog.startswith.checkbox=\u5F00\u59CB\u4E8E -model.condition.dialog.tips=
\u6269\u5C55\uFF1A\u4F7F\u7528{0}\u4F5C\u4E3A\u591A\u4E2A\u503C\u7684\u5206\u9694\u7B26.
\u6B63\u5219\u8868\u8FBE\u5F0F\u662F\u4E00\u79CDJava\u6B63\u5219\u8868\u8FBE\u5F0F\uFF0C\u9002\u7528\u4E8E\u7EDD\u5BF9\u8DEF\u5F84.
\u6587\u4EF6\u8DEF\u5F84\u5728\u68C0\u67E5\u524D\u662F\u5C0F\u5199\u7684.
\u9762\u90E8\u4E0D\u80FD\u5355\u72EC\u4F7F\u7528\uFF0C\u5E94\u4E0E\u5176\u4ED6\u6761\u4EF6\u76F8\u7ED3\u5408. -model.condition.dialog.title=\u589E\u52A0\u6761\u4EF6 -model.condition.facets=facets: {0} -model.condition.name.ends.with=\u540D\u79F0\u4EE5: {0} -model.condition.name.equals=\u540D\u79F0\u7B49\u540C\u4E8E: {0} -model.condition.name.may.end.with=\u540D\u79F0\u53EF\u80FD\u4EE5: {0} -model.condition.name.starts.with.and.no.dot=\ \u5E76\u4E14\u4E0D\u5305\u542B\u4E00\u4E2A\u70B9 -model.condition.name.starts.with=\u540D\u79F0\u4EE5: {0} -model.condition.regex=\u6B63\u5219\u8868\u8FBE\u5F0F: {0} -model.desc.alternative.first={0} (\u66FF\u4EE3\u65B9\u68481) -model.desc.alternative.other={0} (\u66FF\u4EE3\u65B9\u6848{1}) -model.desc.alternative={0} (\u66FF\u4EE3\u65B9\u6848) -model.dialog.choose.icon.bundled.icon=\u6346\u7ED1.: {0} -model.dialog.choose.icon.failed.to.load.icon=\u65E0\u6CD5\u52A0\u8F7D\u56FE\u6807. -model.dialog.choose.icon.first.item=\u9009\u62E9\u81EA\u5B9A\u4E49\u6216\u6346\u7ED1\u7684\u56FE\u6807 -model.dialog.choose.icon.no.conditions.added=\u6CA1\u6709\u6DFB\u52A0\u4EFB\u4F55\u6761\u4EF6. -model.dialog.choose.icon.tooltip=\u7528\u53F3\u8FB9\u7684\u6309\u94AE\u9009\u62E9\u4E00\u4E2A\u81EA\u5B9A\u4E49\u56FE\u6807
\u5426\u5219\u5C31\u5728\u5217\u8868\u4E2D\u9009\u62E9\u4E00\u4E2A\u6346\u7ED1\u7684\u56FE\u6807. -model.dialog.creator.condition.col.add=\u6DFB\u52A0 -model.dialog.creator.condition.col.edit=\u7F16\u8F91 -model.dialog.creator.condition.col.remove=\u79FB\u9664 -model.dialog.description.label=\u63CF\u8FF0: -model.dialog.icon.chooser.btn=\u9009\u62E9\u81EA\u5B9A\u4E49\u56FE\u6807 -model.dialog.icon.type.selector.label=\u56FE\u6807: -model.dialog.iconpack.label=\u56FE\u6807\u5305\u540D\u79F0 (\u53EF\u9009): -model.dialog.icons.name.label=\u56FE\u6807\u7684\u540D\u79F0: -model.dialog.id.label=\u8EAB\u4EFD\u8BC1: -model.dialog.model.editor=\u7F16\u8F91\u6A21\u5F0F -model.dialog.model.tester.tooltip=\u8F93\u5165\u4E00\u4E2A\u6587\u4EF6\u5939\u540D\u79F0\u6216\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u4EE5\u9A8C\u8BC1\u4F60\u7684\u6A21\u578B. -model.dialog.model.tester=\u6D4B\u8BD5\u4F60\u7684\u6A21\u578B: -model.dialog.override.ide.tip.tooltip=\u5728\u9ED8\u8BA4\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00https://jetbrains.design/intellij/resources/icons_list/. -model.dialog.override.ide.tip=\u67E5\u627EIDE\u56FE\u6807 \u8FD9\u91CC, \u6253\u5F00ZIP\u6587\u4EF6\uFF0C\u7136\u540E\u4F7F\u7528\u4E00\u4E2A\u56FE\u6807\u6587\u4EF6\u540D (\u4EE5.svg\u4E3A\u6269\u5C55\u540D.). -model.dialog.tester.label=\u6D4B\u8BD5\u4F60\u7684\u6A21\u578B: -model.dialog.title=\u6DFB\u52A0\u65B0\u6A21\u578B -model.dialog.type.label=\u7C7B\u578B: -model.dialog.uninstall.icon.pack.title=\u4ECE\u7528\u6237\u56FE\u6807\u4E2D\u9009\u62E9\u4E00\u4E2A\u56FE\u6807\u5305\u6765\u5378\u8F7D: -model.dialog.uninstall.icon.pack.window.title=\u9009\u62E9\u4E00\u4E2A\u56FE\u6807\u5305 -model.dialog.validation.condition.missing=\u8BF7\u4E3A\u60A8\u7684\u6A21\u578B\u6DFB\u52A0\u4E00\u4E2A\u6761\u4EF6 -model.dialog.validation.desc.missing=\u63CF\u8FF0\u4E0D\u80FD\u662F\u7A7A\u7684! -model.dialog.validation.icon.missing=\u8BF7\u6DFB\u52A0\u4E00\u4E2A\u56FE\u6807! -model.dialog.validation.id.missing=ID\u4E0D\u80FD\u662F\u7A7A\u7684! -model.dialog.validation.ide.icon.must.end.svg=IDE\u56FE\u6807\u7684\u540D\u79F0\u5FC5\u987B\u4EE5.svg\u7ED3\u5C3E! -model.dialog.validation.ide.icon.name.missing=IDE\u56FE\u6807\u7684\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A! -model.type.directory=\u6307\u5357 -model.type.file=\u6587\u4EF6 -model.type.icon=\u56FE\u6807 (\u9700\u8981\u91CD\u65B0\u542F\u52A8IDE\u624D\u80FD\u770B\u5230\u53D8\u5316) -notif.tips.iconviewer.should.render.svg.accept.btn=\u662F\u7684\uFF0C\u4E3A\u6211\u914D\u7F6E\u8FD9\u4E2A -notif.tips.iconviewer.should.render.svg=\u5DF2\u5B89\u88C5 Icon Viewer 2 \u548C Extra Icons \u63D2\u4EF6. \u60A8\u60F3\u914D\u7F6E Extra Icons \u8BA9 Icon Viewer 2 \u5904\u7406\u9879\u76EE\u89C6\u56FE\u4E2D\u7684 SVG \u6587\u4EF6\u6E32\u67D3\u5417? \u5B83\u5C06\u7B80\u5355\u5730\u914D\u7F6E Extra Icons \u63D2\u4EF6\uFF08\u4EC5\u5728 IDE \u7EA7\u522B\uFF09, \u4F7F\u5176\u4E0D\u8986\u76D6 "*.svg" \u6587\u4EF6\u56FE\u6807. \u8FD9\u6837, \u4F60\u5C31\u80FD\u5728\u9879\u76EE\u89C6\u56FE\u4E2D\u770B\u5230\u771F\u6B63\u7684 SVG \u6587\u4EF6\u9884\u89C8\u56FE\u6807, \u800C\u4E0D\u662F SVG \u5FBD\u6807. -notif.tips.plugin.config.btn=\u8F6C\u5230Extra Icons\u8BBE\u7F6E -notif.tips.plugin.config.content=\u4F60\u77E5\u9053Extra Icons\u63D2\u4EF6\u662F\u53EF\u914D\u7F6E\u7684\u5417\uFF1F\u4F60\u53EF\u4EE5:
  • \u5728IDE\u548C\u9879\u76EE\u5C42\u9762\u4E0A\uFF0C\u542F\u7528\u548C\u7981\u7528\u6BCF\u4E2A\u56FE\u6807
  • \u6CE8\u518C\u4F60\u81EA\u5DF1\u7684\u56FE\u6807
  • \u4E0B\u8F7D\u548C\u5206\u4EAB\u56FE\u6807\u5305
-notif.tips.plugin.config.title=Extra Icons\u63D0\u793A -notification.content.cant.compile.regex.subtitle=\u65E0\u6548\u7684\u8BBE\u7F6E -notification.content.cant.compile.regex.title={0} \u8BBE\u7F6E -notification.content.cant.compile.regex=\u4E0D\u80FD\u7F16\u8BD1\u6B63\u5219\u8868\u8FBE\u5F0F: ''{0}'' ({1}) -plugin.icons.table.bottom.tip=\u56FE\u6807\u662F\u6309\u4F18\u5148\u7EA7\u6392\u5217\u7684.\u8981\u4F7F\u7528\u4E00\u4E2A\u66FF\u4EE3\u6027\u7684\u56FE\u6807\uFF08\u5982Markdown\u6587\u4EF6\uFF09\uFF0C
\u8BF7\u505C\u7528\u4F18\u5148\u7EA7\u8F83\u9AD8\u7684\u90A3\u4E2A\uFF08\u51E0\u4E2A\uFF09\u56FE\u6807. \u91CD\u65B0\u542F\u52A8\u4E00\u680F\u8868\u660E\u4F60\u662F\u5426\u9700\u8981\u91CD\u65B0\u542F\u52A8IDE\u6765\u67E5\u770B\u53D8\u5316. -plugin.icons.table.col.description=\u63CF\u8FF0 -plugin.icons.table.col.need.restart=\u91CD\u65B0\u542F\u52A8 -plugin.icons.table.col.tags=\u6807\u7B7E -plugin.icons.table.filter.tooltip=\u6B63\u5219\u8868\u8FBE\u5F0F\u662F\u4E00\u4E2AJava\u91CD\u6784\u51FD\u6570\uFF0C\u4E0D\u533A\u5206\u5927\u5C0F\u5199.
\u4F60\u4E5F\u53EF\u4EE5\u8F93\u5165 "\u662F "\u6216 "\u5426 "\u6765\u67E5\u627E\u542F\u7528\u6216\u7981\u7528\u7684\u56FE\u6807. -plugin.icons.table.filter=\u901A\u8FC7\u6B63\u5219\u8868\u8FBE\u5F0F\u6765\u8FC7\u6EE4\u63D2\u4EF6\u56FE\u6807\u8868: -plugin.icons.table.tab.name=\u63D2\u4EF6\u56FE\u6807 -quick.action.label=\u5FEB\u6377\u64CD\u4F5C: -reset.hints.btn=\u91CD\u7F6E -reset.hints.success.subtitle=\u5982\u6709\u9700\u8981\uFF0CExtra Icons \u63D0\u793A\u548C\u901A\u77E5\u5C06\u5728\u4E0B\u4E00\u6B21\u542F\u52A8 IDE \u65F6\u51FA\u73B0. -reset.hints.success.title=\u6210\u529F -reset.hints.title=\u91CD\u7F6E Extra Icons \u63D0\u793A\u548C\u901A\u77E5: -settings.idelevel.menu=Extra Icons -settings.projectlevel.menu=Project -uitype.selector.auto.select=\u81EA\u52A8\u9009\u62E9\u65E7/\u65B0\u7684\u7528\u6237\u754C\u9762\u56FE\u6807 -uitype.selector.context.help=\u6709\u4E9B\u56FE\u6807\u6709\u65E7\u7684\u6216\u65B0\u7684\u7528\u6237\u754C\u9762\u7684\u53D8\u4F53.
\u4F60\u53EF\u4EE5\u9009\u62E9\u4E0EIDE\u4E3B\u9898\u76F8\u5BF9\u5E94\u7684\u53D8\u4F53\uFF0C
\u6216\u5F3A\u5236\u4F7F\u7528\u65E7\u7684\u6216\u65B0\u7684\u7528\u6237\u754C\u9762\u53D8\u4F53\uFF0C\u5982\u679C\u5B83\u4EEC\u5B58\u5728\u7684\u8BDD.
\u91CD\u65B0\u542F\u52A8IDE\u4EE5\u67E5\u770B\u53D8\u5316. -uitype.selector.context.title=\u66F4\u559C\u6B22\u65E7 UI \u8FD8\u662F\u65B0 UI \u56FE\u6807\u53D8\u4F53: -uitype.selector.prefer.new=\u603B\u662F\u559C\u6B22\u65B0\u7684UI\u56FE\u6807 -uitype.selector.prefer.old=\u603B\u662F\u559C\u6B22\u8001\u7684UI\u56FE\u6807 -user.icons.table.col.description=\u63CF\u8FF0 -user.icons.table.col.iconpack=\u56FE\u6807\u5305\u7684\u540D\u79F0 -user.icons.table.tab.name=\u7528\u6237\u56FE\u6807 -main.pane.known.issues.title=\u5DF2\u77E5\u95EE\u9898 -known.issues.title=
\u4E3A\u8FD9\u4E9B JetBrains \u95EE\u9898\u5411\u4E0A\u6295\u7968\u5C06\u5927\u6709\u5E2E\u52A9. \u8C22\u8C22!
-known.issue.label1=
IDEA-247819: IntelliJ \u4E0D\u5141\u8BB8\u5728 "\u8F6F\u4EF6\u5305\u89C6\u56FE "\u4E2D\u8986\u76D6\u6587\u4EF6\u5939\u56FE\u6807.
\u8FD9\u610F\u5473\u7740\u6211\u4EEC\u65E0\u6CD5\u5728\u8F6F\u4EF6\u5305\u89C6\u56FE\u4E2D\u4E3A\u6587\u4EF6\u5939\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u56FE\u6807. -known.issue.label2=
IDEA-339254
IntelliJ IDE \u663E\u793A Java \u5F02\u5E38\u7684\u9ED8\u8BA4\u7C7B\u56FE\u6807\uFF0C\u76F4\u5230\u60A8\u5BF9\u5176\u8FDB\u884C\u4FEE\u6539.
\u60A8\u5FC5\u987B\u4FEE\u6539 Java \u5F02\u5E38\u6587\u4EF6\uFF0C\u624D\u80FD\u770B\u5230\u76F8\u5E94\u7684\u5F02\u5E38\u56FE\u6807.
\u8FD9\u610F\u5473\u7740\u6211\u4EEC\u65E0\u6CD5\u8F7B\u6613\u770B\u5230\u81EA\u5B9A\u4E49\u7684\u7EA2\u8272 "\u4F8B\u5916 "\u56FE\u6807. -known.issue.label3=
RIDER-101621: Rider IDE \u4E0D\u5141\u8BB8\u5728\u89E3\u51B3\u65B9\u6848\u8D44\u6E90\u7BA1\u7406\u5668\u4E2D\u8986\u76D6\u6587\u4EF6\u5939\u56FE\u6807.
\u8FD9\u610F\u5473\u7740\u6211\u4EEC\u65E0\u6CD5\u5728\u89E3\u51B3\u65B9\u6848\u8D44\u6E90\u7BA1\u7406\u5668\u4E2D\u4E3A\u6587\u4EF6\u5939\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u56FE\u6807. -known.issue.btn1=\u8BBF\u95EE\u8005 IDEA-247819 (youtrack.jetbrains.com) -known.issue.btn2=\u8BBF\u95EE\u8005 IDEA-339254 (youtrack.jetbrains.com) -known.issue.btn3=\u8BBF\u95EE\u8005 RIDER-101621 (youtrack.jetbrains.com) -notif.tips.lifetime.lic.intro.title=Extra Icons \u7EC8\u8EAB\u8BB8\u53EF\u8BC1 -notif.tips.lifetime.lic.intro.content=Extra Icons \u7EC8\u8EAB\u8BB8\u53EF\u8BC1\u73B0\u5DF2\u63A8\u51FA\uFF1A\u4E00\u6B21\u6027\u652F\u4ED8\u63D2\u4EF6\u8D39\u7528\uFF0C\u5373\u53EF\u7EC8\u8EAB\u4F7F\u7528\u3002\u70B9\u51FB\u4E0B\u9762\u7684\u94FE\u63A5\u83B7\u53D6\u66F4\u591A\u4FE1\u606F\u3002 -notif.tips.lifetime.lic.intro.btn=\u5982\u4F55\u83B7\u5F97\u7EC8\u8EAB\u8BB8\u53EF\u8BC1 -license.required.msg=Extra Icons \u63D2\u4EF6\u9700\u8981\u8BB8\u53EF\u8BC1. -license.not.found.config.title=\u672A\u627E\u5230\u6709\u6548\u7684 Extra Icons \u8BB8\u53EF\u8BC1. \u63D2\u4EF6\u4E0D\u4F1A\u5E94\u7528\u56FE\u6807\u8986\u76D6. diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml deleted file mode 100644 index a9bd5bd0..00000000 --- a/src/main/resources/META-INF/plugin.xml +++ /dev/null @@ -1,125 +0,0 @@ - - lermitage.intellij.extra.icons - Extra Icons - REPLACED_BY_GRADLE - JONATHAN_LERMITAGE - - - - - -
  • Adds 500+ icons for files like Travis YML, GitLab YML, Angular files, etc. Many icons have variants, so if you are not happy with the default icon, you can choose another.
  • -
  • Shows an icon for Git sub-module folders.
  • -
  • Highly configurable: see File > Settings > Appearance & Behavior > Extra Icons to select extra icons to (de)activate. This is configurable at IDE and project level.
  • -
  • You can also register your own icons in order to override file icons and all IDE icons (including toolbars, menus, etc.).
  • -
  • You can import and export icons from external files. This also means you can easily share icon themes with friends. You can also download online icon packs (example: restore the old file icons when using the new UI).
  • -
  • For more information, please see this guide.
  • -
  • For questions about the plugin licensing models, please see the license FAQ.
  • -
  • JetBrains Gateway support is limited. Gateway may fail to register licenses for third-party paid plugins (like Extra Icons), and it may not render some settings GUI forms correctly. Unfortunately, these issues are on the JetBrains side. Installing the plugin on the host and/or client sides can help. As a workaround for licensing issues, you can still build the plugin by yourself and remove the license requirement. The plugin is still free (MIT) and open source. I ask for a modest retribution only if you get the plugin from the marketplace, which, I think, is a good way to support my work. Thank you.
  • - - 📢 If you want to speed up the resolution of a few problems on JetBrains side affecting this plugin, or help plugin developers, please consider up-voting these YouTrack issues: -
      -
    • IDEA-247819: IntelliJ does not allow folder icons override in Packages View. This issue has been submitted 3 years ago (Aug 2020), it definitively needs more visibility.
    • -
    • IDEA-339254: IntelliJ shows default Class icon for Java Exceptions until you modify them. You have to modify Java Exception files to see the corresponding Exception icon.
    • -
    • RIDER-101621: a Rider IDE issue affecting folder icons override.
    • -
    • MP-4248 and MP-5648: marketplace moderation problems.
    • -
    - Thank you! -
    -
    - Extra Icons Chinese UI is automatically applied if you enable the official IDE Chinese Language Pack plugin.
    - 如果你启用官方IDE中文语言包插件, Extra Icons中文用户界面将自动应用. -
    -
    - GitHub | Issues | Changelog | LinkedIn | 💙 Help Ukraine 💛 -
    -
    - ]]> -
    - - - - - - - - com.intellij.modules.platform - - - REPLACED_BY_GRADLE - - - - - - lermitage.intellij.extra.icons.ExtraIconPatcher - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    diff --git a/src/main/resources/META-INF/pluginIcon.svg b/src/main/resources/META-INF/pluginIcon.svg deleted file mode 100644 index bb5c16f9..00000000 --- a/src/main/resources/META-INF/pluginIcon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/7zip.svg b/src/main/resources/extra-icons/7zip.svg deleted file mode 100644 index 91ac6c50..00000000 --- a/src/main/resources/extra-icons/7zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/aac.svg b/src/main/resources/extra-icons/aac.svg deleted file mode 100644 index 63324aa3..00000000 --- a/src/main/resources/extra-icons/aac.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/aac_dark.svg b/src/main/resources/extra-icons/aac_dark.svg deleted file mode 100644 index a344ea9d..00000000 --- a/src/main/resources/extra-icons/aac_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/allcontributors.svg b/src/main/resources/extra-icons/allcontributors.svg deleted file mode 100644 index 43ad62bd..00000000 --- a/src/main/resources/extra-icons/allcontributors.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/allcontributors_dark.svg b/src/main/resources/extra-icons/allcontributors_dark.svg deleted file mode 100644 index 25361678..00000000 --- a/src/main/resources/extra-icons/allcontributors_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/android.svg b/src/main/resources/extra-icons/android.svg deleted file mode 100644 index e029a54b..00000000 --- a/src/main/resources/extra-icons/android.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/android_alt.svg b/src/main/resources/extra-icons/android_alt.svg deleted file mode 100644 index 7c63f52f..00000000 --- a/src/main/resources/extra-icons/android_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-component-test.svg b/src/main/resources/extra-icons/angular-component-test.svg deleted file mode 100644 index ae260ba6..00000000 --- a/src/main/resources/extra-icons/angular-component-test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-component.svg b/src/main/resources/extra-icons/angular-component.svg deleted file mode 100644 index c1a7c087..00000000 --- a/src/main/resources/extra-icons/angular-component.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-controller-test.svg b/src/main/resources/extra-icons/angular-controller-test.svg deleted file mode 100644 index 52c8c479..00000000 --- a/src/main/resources/extra-icons/angular-controller-test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-controller.svg b/src/main/resources/extra-icons/angular-controller.svg deleted file mode 100644 index 688d10f9..00000000 --- a/src/main/resources/extra-icons/angular-controller.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-directive-test.svg b/src/main/resources/extra-icons/angular-directive-test.svg deleted file mode 100644 index ff6f33d6..00000000 --- a/src/main/resources/extra-icons/angular-directive-test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-directive.svg b/src/main/resources/extra-icons/angular-directive.svg deleted file mode 100644 index 7f679b79..00000000 --- a/src/main/resources/extra-icons/angular-directive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-guard-test.svg b/src/main/resources/extra-icons/angular-guard-test.svg deleted file mode 100644 index 9887d033..00000000 --- a/src/main/resources/extra-icons/angular-guard-test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-guard.svg b/src/main/resources/extra-icons/angular-guard.svg deleted file mode 100644 index 5c899219..00000000 --- a/src/main/resources/extra-icons/angular-guard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-module-test.svg b/src/main/resources/extra-icons/angular-module-test.svg deleted file mode 100644 index 549e0ce3..00000000 --- a/src/main/resources/extra-icons/angular-module-test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-module.svg b/src/main/resources/extra-icons/angular-module.svg deleted file mode 100644 index 72213f0f..00000000 --- a/src/main/resources/extra-icons/angular-module.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-pipe-test.svg b/src/main/resources/extra-icons/angular-pipe-test.svg deleted file mode 100644 index 992a0e62..00000000 --- a/src/main/resources/extra-icons/angular-pipe-test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-pipe.svg b/src/main/resources/extra-icons/angular-pipe.svg deleted file mode 100644 index 5e98c785..00000000 --- a/src/main/resources/extra-icons/angular-pipe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-resolver-test.svg b/src/main/resources/extra-icons/angular-resolver-test.svg deleted file mode 100644 index ac0e6af5..00000000 --- a/src/main/resources/extra-icons/angular-resolver-test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-resolver.svg b/src/main/resources/extra-icons/angular-resolver.svg deleted file mode 100644 index 95b03932..00000000 --- a/src/main/resources/extra-icons/angular-resolver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-service-test.svg b/src/main/resources/extra-icons/angular-service-test.svg deleted file mode 100644 index 382bd855..00000000 --- a/src/main/resources/extra-icons/angular-service-test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular-service.svg b/src/main/resources/extra-icons/angular-service.svg deleted file mode 100644 index 59a7eb9c..00000000 --- a/src/main/resources/extra-icons/angular-service.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular2.svg b/src/main/resources/extra-icons/angular2.svg deleted file mode 100644 index df64fbd4..00000000 --- a/src/main/resources/extra-icons/angular2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/angular_renaissance.svg b/src/main/resources/extra-icons/angular_renaissance.svg deleted file mode 100644 index 991a3187..00000000 --- a/src/main/resources/extra-icons/angular_renaissance.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/apk.svg b/src/main/resources/extra-icons/apk.svg deleted file mode 100644 index 40ed4972..00000000 --- a/src/main/resources/extra-icons/apk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/apple.svg b/src/main/resources/extra-icons/apple.svg deleted file mode 100644 index 104a6a1e..00000000 --- a/src/main/resources/extra-icons/apple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/appveyor.svg b/src/main/resources/extra-icons/appveyor.svg deleted file mode 100644 index e85e99ea..00000000 --- a/src/main/resources/extra-icons/appveyor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/archive.svg b/src/main/resources/extra-icons/archive.svg deleted file mode 100644 index 3653f320..00000000 --- a/src/main/resources/extra-icons/archive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/archunit.svg b/src/main/resources/extra-icons/archunit.svg deleted file mode 100644 index de2ee9f0..00000000 --- a/src/main/resources/extra-icons/archunit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/asciidoc.svg b/src/main/resources/extra-icons/asciidoc.svg deleted file mode 100644 index b30edbe9..00000000 --- a/src/main/resources/extra-icons/asciidoc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/asciidoc_alt.svg b/src/main/resources/extra-icons/asciidoc_alt.svg deleted file mode 100644 index dec72802..00000000 --- a/src/main/resources/extra-icons/asciidoc_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/authors.svg b/src/main/resources/extra-icons/authors.svg deleted file mode 100644 index 914ade4a..00000000 --- a/src/main/resources/extra-icons/authors.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/authors_alt.svg b/src/main/resources/extra-icons/authors_alt.svg deleted file mode 100644 index be843157..00000000 --- a/src/main/resources/extra-icons/authors_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/authors_alt2.svg b/src/main/resources/extra-icons/authors_alt2.svg deleted file mode 100644 index 89cde083..00000000 --- a/src/main/resources/extra-icons/authors_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/authors_alt3.svg b/src/main/resources/extra-icons/authors_alt3.svg deleted file mode 100644 index 12526c35..00000000 --- a/src/main/resources/extra-icons/authors_alt3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/authors_alt4.svg b/src/main/resources/extra-icons/authors_alt4.svg deleted file mode 100644 index e30964a5..00000000 --- a/src/main/resources/extra-icons/authors_alt4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/avro.svg b/src/main/resources/extra-icons/avro.svg deleted file mode 100644 index bcc05fbd..00000000 --- a/src/main/resources/extra-icons/avro.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/avro_dark.svg b/src/main/resources/extra-icons/avro_dark.svg deleted file mode 100644 index ae8712c8..00000000 --- a/src/main/resources/extra-icons/avro_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/babel.svg b/src/main/resources/extra-icons/babel.svg deleted file mode 100644 index cf0ecf2f..00000000 --- a/src/main/resources/extra-icons/babel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/babel_alt.svg b/src/main/resources/extra-icons/babel_alt.svg deleted file mode 100644 index d7f6e8b9..00000000 --- a/src/main/resources/extra-icons/babel_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/babel_dark.svg b/src/main/resources/extra-icons/babel_dark.svg deleted file mode 100644 index 8485b50a..00000000 --- a/src/main/resources/extra-icons/babel_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/backup.svg b/src/main/resources/extra-icons/backup.svg deleted file mode 100644 index a0765a96..00000000 --- a/src/main/resources/extra-icons/backup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bamboo.svg b/src/main/resources/extra-icons/bamboo.svg deleted file mode 100644 index b6ca8319..00000000 --- a/src/main/resources/extra-icons/bamboo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bash.svg b/src/main/resources/extra-icons/bash.svg deleted file mode 100644 index c9ec4f22..00000000 --- a/src/main/resources/extra-icons/bash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bash_dark.svg b/src/main/resources/extra-icons/bash_dark.svg deleted file mode 100644 index 8470d198..00000000 --- a/src/main/resources/extra-icons/bash_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/berkshelf.svg b/src/main/resources/extra-icons/berkshelf.svg deleted file mode 100644 index 0b68c1a4..00000000 --- a/src/main/resources/extra-icons/berkshelf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/berkshelflock.svg b/src/main/resources/extra-icons/berkshelflock.svg deleted file mode 100644 index 8ac7bee6..00000000 --- a/src/main/resources/extra-icons/berkshelflock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bicep.svg b/src/main/resources/extra-icons/bicep.svg deleted file mode 100644 index e401c5c3..00000000 --- a/src/main/resources/extra-icons/bicep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bicep_alt.svg b/src/main/resources/extra-icons/bicep_alt.svg deleted file mode 100644 index 8c9a3ac5..00000000 --- a/src/main/resources/extra-icons/bicep_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bicep_alt2.svg b/src/main/resources/extra-icons/bicep_alt2.svg deleted file mode 100644 index 8ce4df8f..00000000 --- a/src/main/resources/extra-icons/bicep_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/binary.svg b/src/main/resources/extra-icons/binary.svg deleted file mode 100644 index dc158d70..00000000 --- a/src/main/resources/extra-icons/binary.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/binary_alt.svg b/src/main/resources/extra-icons/binary_alt.svg deleted file mode 100644 index 79c8cdbc..00000000 --- a/src/main/resources/extra-icons/binary_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/binary_alt2.svg b/src/main/resources/extra-icons/binary_alt2.svg deleted file mode 100644 index 9e56c412..00000000 --- a/src/main/resources/extra-icons/binary_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/binary_alt2_dark.svg b/src/main/resources/extra-icons/binary_alt2_dark.svg deleted file mode 100644 index cb2cfaf9..00000000 --- a/src/main/resources/extra-icons/binary_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bitbucket.svg b/src/main/resources/extra-icons/bitbucket.svg deleted file mode 100644 index 870d6fad..00000000 --- a/src/main/resources/extra-icons/bitbucket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bitnami.svg b/src/main/resources/extra-icons/bitnami.svg deleted file mode 100644 index aaebcfe4..00000000 --- a/src/main/resources/extra-icons/bitnami.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bitnami_dark.svg b/src/main/resources/extra-icons/bitnami_dark.svg deleted file mode 100644 index 7ab2003e..00000000 --- a/src/main/resources/extra-icons/bitnami_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bower.svg b/src/main/resources/extra-icons/bower.svg deleted file mode 100644 index 73d805fe..00000000 --- a/src/main/resources/extra-icons/bower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/browserslist.svg b/src/main/resources/extra-icons/browserslist.svg deleted file mode 100644 index a3ca7718..00000000 --- a/src/main/resources/extra-icons/browserslist.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/browserslist_dark.svg b/src/main/resources/extra-icons/browserslist_dark.svg deleted file mode 100644 index bad44b2b..00000000 --- a/src/main/resources/extra-icons/browserslist_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/bug.svg b/src/main/resources/extra-icons/bug.svg deleted file mode 100644 index 8a8ed1ba..00000000 --- a/src/main/resources/extra-icons/bug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/build.svg b/src/main/resources/extra-icons/build.svg deleted file mode 100644 index 0242929b..00000000 --- a/src/main/resources/extra-icons/build.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/c.svg b/src/main/resources/extra-icons/c.svg deleted file mode 100644 index 2cc50897..00000000 --- a/src/main/resources/extra-icons/c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cache2k.svg b/src/main/resources/extra-icons/cache2k.svg deleted file mode 100644 index db023b90..00000000 --- a/src/main/resources/extra-icons/cache2k.svg +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/caddy.svg b/src/main/resources/extra-icons/caddy.svg deleted file mode 100644 index 25fb18ed..00000000 --- a/src/main/resources/extra-icons/caddy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cargo.svg b/src/main/resources/extra-icons/cargo.svg deleted file mode 100644 index 2c85ebd2..00000000 --- a/src/main/resources/extra-icons/cargo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cassandra.svg b/src/main/resources/extra-icons/cassandra.svg deleted file mode 100644 index ff703688..00000000 --- a/src/main/resources/extra-icons/cassandra.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cassandra_dark.svg b/src/main/resources/extra-icons/cassandra_dark.svg deleted file mode 100644 index e86aebcb..00000000 --- a/src/main/resources/extra-icons/cassandra_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/certificate.svg b/src/main/resources/extra-icons/certificate.svg deleted file mode 100644 index 2e16ca28..00000000 --- a/src/main/resources/extra-icons/certificate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/certificate_alt.svg b/src/main/resources/extra-icons/certificate_alt.svg deleted file mode 100644 index cc1ae5aa..00000000 --- a/src/main/resources/extra-icons/certificate_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/certificate_alt_dark.svg b/src/main/resources/extra-icons/certificate_alt_dark.svg deleted file mode 100644 index c7933b2d..00000000 --- a/src/main/resources/extra-icons/certificate_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/changelog.svg b/src/main/resources/extra-icons/changelog.svg deleted file mode 100644 index 9186d479..00000000 --- a/src/main/resources/extra-icons/changelog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/changelog_dark.svg b/src/main/resources/extra-icons/changelog_dark.svg deleted file mode 100644 index 881c625f..00000000 --- a/src/main/resources/extra-icons/changelog_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/circleci.svg b/src/main/resources/extra-icons/circleci.svg deleted file mode 100644 index 0d156197..00000000 --- a/src/main/resources/extra-icons/circleci.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/circleci_dark.svg b/src/main/resources/extra-icons/circleci_dark.svg deleted file mode 100644 index 7aa7d15e..00000000 --- a/src/main/resources/extra-icons/circleci_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cirrus.svg b/src/main/resources/extra-icons/cirrus.svg deleted file mode 100644 index a0168ea7..00000000 --- a/src/main/resources/extra-icons/cirrus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cirrus_dark.svg b/src/main/resources/extra-icons/cirrus_dark.svg deleted file mode 100644 index 32714150..00000000 --- a/src/main/resources/extra-icons/cirrus_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cmd.svg b/src/main/resources/extra-icons/cmd.svg deleted file mode 100644 index c83e84ae..00000000 --- a/src/main/resources/extra-icons/cmd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cmd_dark.svg b/src/main/resources/extra-icons/cmd_dark.svg deleted file mode 100644 index b342c5b2..00000000 --- a/src/main/resources/extra-icons/cmd_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codacy.svg b/src/main/resources/extra-icons/codacy.svg deleted file mode 100644 index 7c610394..00000000 --- a/src/main/resources/extra-icons/codacy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codacy_dark.svg b/src/main/resources/extra-icons/codacy_dark.svg deleted file mode 100644 index 6acdded0..00000000 --- a/src/main/resources/extra-icons/codacy_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codeception.svg b/src/main/resources/extra-icons/codeception.svg deleted file mode 100644 index 66f7f0a8..00000000 --- a/src/main/resources/extra-icons/codeception.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codeception_dark.svg b/src/main/resources/extra-icons/codeception_dark.svg deleted file mode 100644 index 1f1c4dac..00000000 --- a/src/main/resources/extra-icons/codeception_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codecov.svg b/src/main/resources/extra-icons/codecov.svg deleted file mode 100644 index 58e632fa..00000000 --- a/src/main/resources/extra-icons/codecov.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codefresh.svg b/src/main/resources/extra-icons/codefresh.svg deleted file mode 100644 index 907e1094..00000000 --- a/src/main/resources/extra-icons/codefresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codefresh_dark.svg b/src/main/resources/extra-icons/codefresh_dark.svg deleted file mode 100644 index aef2721d..00000000 --- a/src/main/resources/extra-icons/codefresh_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codeship.svg b/src/main/resources/extra-icons/codeship.svg deleted file mode 100644 index b53691c9..00000000 --- a/src/main/resources/extra-icons/codeship.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/codeship_alt.png b/src/main/resources/extra-icons/codeship_alt.png deleted file mode 100644 index 2adab8d736adacd7b36e25063bcece90e7be2897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00Ik1L_t(IPi<4rPZL2DUJsh6SK6KR%qty)59(X{>%4SxhDV5q4V;mo)an)oc#z2P25|8c06_sgHeWx;Xx?K$=$^wjd2@u|UI6 zANwtk;B6>%5wTAYwh(`TWOWW(xSr?^CFoL<*iX2X7itrPKZu<`_#5vFe@d4r<|yc! zZLH}c6CN4l#ry*Z&aiWe_dXJQ;q@8Cm}UXr)dbty?csX8HG;rPD~j}2#J{-&s)X(r zCkx9%Oy>l6tgcq?*J|zk+Scck?EQz<_ovg#mnh>0;-_fn-$1G(N(4I(gh?J7bH|lH z6DE{gS}UCt)Ou=)8);l=q)GK-s#o5ePd;C|U}4|T8`6-r_ZtJbIF}_on_01z_4RFG zuJ;>lEj&n}FpZl9eZ#IhR|bhdv;BXRU3SzxD3tm%jMOY~hPx#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00j?8L_t(oN3B;)Y#T)sc3L=q1VSK?kPzyH zpA!cnXlk!xfxT;onl!CvoT3C8LJ5T?b{rbJiE6K!CI=3LQ*Wq5Dkq543%yiAfeR=V zv>Yg?5+|el&1_! zUWl1u1J61|ze9&M*w9wHZ5`3Hc+9ZGO3V`15X3P|aRcv{p*xG`X^MWo%r@G%w&Fed zYMTF!-fZ?x5G}_n`M2t+Db7VLG16y=d$ma$*hU-Ls*!;&Imo3=x`UA%eiXxcN%h#0 zYw>jcN!`>$v1spr3>9bW!9u})SgV_$4}Hl&uKv`%M|4wX&=FbxgkJoGVVr`h$8Fif z)O77|p;U8Pq&``yy{4O6(L)Y$ku#_x9;lu(xFvs!o8nomZbMWBkH)3eD7i!Kq?8vrLZ~_U~7=`cgT*vb~-zQ7eW4bvIMptR~bK~0CdOP00D1-FY{?Q8f9C5oH*emK94o_q%TU)+RA$anEMYQQ^2 zI-iO}>}}e`j~>{pF_veG!g&Qm^-hb#FmpQ_0o|bD8xU1ce5!ayUD#}kr*nI>TO0K5 zKmijgO2MiHf@|p2Ii(0e+{#5&U{kEaIRh1XliL|f<@+MGy)97@6D?=<&Fea=Vd|FM#AL4kZN~-y*SBdV42skAo*_<)6`Rfl$SY zqlMTJw|eb1?@O_aG_-jro=Ohg2YZ|$@)YJDhY03Sw*|sh zLoAL%{%HhL0WEnF3B2pksq;WA&_}xmLa&<(9D$$Va8~OB5lhQ_YmkP-O*sal$)Gk2 z^RRXg1Y;uE4UPZ~4RKoQLjju){Xx|FF~u8xJ&0GeTPPS4w)L(P*k$g00JhD&Pl=}G zAxy*3Rvmj~WW@d2EfmcJ!ls~HwjY|ET^cISEs43grN^lQ`JyKn>wqQS^5{%)%-u2K zW4xcyHKDDzwM>Dy2;=4=tW@kBmCE9oa%HhzIlAPu$okmC%rJuR7Su@KBs%bZ;~QMp z84%O*>!wc07u-QQgaTtiuNGl*8_v%!K8U~@zQC<=eQ5s#j%k+|Bp)G(Pa5Ay;KzXA zu5fptRI^riw_!^mlJbM?M`jnUzWRE_8GX6vjEohWgNMq_k@5*oA}@_kJBfk)T!deP z_&ZOa4uXJJS;#zv$X|-%X<799x8e>ujtLBj=R#tn<-CvNmIb$=ImH=vAt8dUWH|Mh#8yUvKP@WwO|N7G zug=KMb197{#cs}@kGKmFSNc===M)FHz^g8$H@%*7k*Fk)t)7k^E*`F6WdB2OuvS4W zNQoMK=&OdEJqKr}82P)N2bZe?^J zG%heMGBNQWX_Wu~1zAZ%K~z{r#g|KLR8<&&`_P(b3^u8P2}USJ(GZA0#EnK5L^lwl zBqEC{Bn^p1jko|G7{#c#P^k}^=*oo)n&3{fMx!nyhC-rY!y}5R55Tl^Ix~Gt=jHd^ zIrlo#J8c&(_>-?a_niNA&*Q&mTB_CRWu^9K9w`(GE#-2#y;7-k!Y23#j?s4sN`XuE zg|W@hsg1Vt$-D{JkE4!av3M)aUZ#B-GH?-2zyS0IY}@CUI;XMOt1a!0`C>FpfWB4? zyWnvcg1_NNsZ`nt%V@X3m2hp~3j0cx%FVEo_7OM_+CBkY`V8(9X_^4aI$sWN!8!OE zw!)&IqR#d35WE0;z-jLa!;UWkZM4;gzVz7^R3b?wV3tAgebCVVE1M*_1IFo(#5VMV z;YjFK?>6WIeSHAS=}%@tog{%^;IzkY{yHp)24@NV&%!@28nFFT7;X^ym%u*I=YB9o zG}e#+ogLts$8X*=xWd?d@Cv*X*bDcB;gm3D67fv9Cpzp;67aZ$9qXoX-Bw1HbrNRi z2Dlft!)|yZV0$|||9<@37{64#Fz#{;f-!9Wmw;zB95r|Q)@BaqbK|)zN8u0n3%-D_ zK)XNTCwLof3TBDulN02|RM#16PZHq4BI7yt_$0f%Ug$ULA3+D7z@zXmY$=m8d`#P< zj>Gz3)*v%8GoB8UJ_Vii30UDWp7Wra62`k>H#4;b9)Wk^d-{HW58*K|p%-CwFiVLs z7$1Yp^$A!)FEY3+=%oa`t61Ol1bqkHpCJop;aAARNjQMsU2t_UONlYivtk~sPry2E zDQzeev7pmR;0NFvbUgEA`aJ)i!9ZxU3Q+H|CmPo)X3ec$ra5k_0H>mHsfE62>gg&%ya9QV^bdVOMyJ zgy#$JJT#q6g|U7TD573VfVoR0FfuaIlF4LRv)No5Sfbs*pM!>x&^D=8!=vKcAIAB0 z;K$18ZlynXtqFaz5~zL8qa_#{8*3RK&vs-o<4a*9!FRx>Y&P4Co&{(aqGjOUYtR?k z%J1+bdb_~W@g8h|YarPZv=156*l_|@rxWbZc7k^juoq53C6~)rYvhJ=xrqblxa;Et zK83@f?I!emdnBjrQ)s&+7N=DZ&q`_&){bGhynUny!*y1kW=hkZj7i zL|?(DzKvn5hEnXh_<^v_Z-cwRk4|#tW3h{%5lx0uq7QVB!Ui^pzMFoGr2ccf4tn5B zeJ_z0e`iwuv#)@Ls{?v|!7ZNWEUK+eStitGN{-1$`Uv-vfgJ`P{ef2Q|zd`y! z5mrD*Mjxm%g1-{OTe~$y#!ke zw}2aNFq(GWoVNFg`LE@%m?g?imFwlEap!t`Jj1ucVps}(+r{=`0$FI(QCFKG*W78> zXKK+K+R8njH##RycJ$=h{R+%^-Mflz9_~MPrD6 zoLVstf)|)k5-0}ZAE%B*KTbiL;H9}F30yv^E&l?TaPE#ffqB&c0000S->P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00FK^L_t(IPj!>MN&`_8gx4YpVk;Kn4?crU z5Ns1mwHC1u8xaMujD_GsB;*;yN-R=nV`m|WV)O+<%Kd?CHoJavbCN7Z2ZlX&X3ojI zcQ@W|#BsctrfF?37&Mb4X^E<($+OrrvMie?R43fvSz=v)tJEv1rI}Y(*4l=Ufcb=Z zYLa%cjqZTHWwNJ?vdEJmnwoDG2yCF8i`45TJ1DCjx6rw?HMcNe9>RC@H>mS}z!S3_ z)Z^|1qXtW+JFvdu@-*az;BAtoN7NOw9n=G>n$%>A1=F?l8Je~A0Jh;b4ACy+SxmWE z^=d%NGzY>6gI=+h2wx+-@o(yATz#Trt)aeF?!UmHps`jPx# M07*qoM6N<$g1>qHq5uE@ diff --git a/src/main/resources/extra-icons/codeship_dark.svg b/src/main/resources/extra-icons/codeship_dark.svg deleted file mode 100644 index dae0eb42..00000000 --- a/src/main/resources/extra-icons/codeship_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/commitlint.svg b/src/main/resources/extra-icons/commitlint.svg deleted file mode 100644 index d0779428..00000000 --- a/src/main/resources/extra-icons/commitlint.svg +++ /dev/null @@ -1 +0,0 @@ -cl \ No newline at end of file diff --git a/src/main/resources/extra-icons/composer.svg b/src/main/resources/extra-icons/composer.svg deleted file mode 100644 index da52d6f6..00000000 --- a/src/main/resources/extra-icons/composer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/composer_alt.svg b/src/main/resources/extra-icons/composer_alt.svg deleted file mode 100644 index b9f3bc29..00000000 --- a/src/main/resources/extra-icons/composer_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/config.svg b/src/main/resources/extra-icons/config.svg deleted file mode 100644 index 5caf3892..00000000 --- a/src/main/resources/extra-icons/config.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/contact.svg b/src/main/resources/extra-icons/contact.svg deleted file mode 100644 index b6190392..00000000 --- a/src/main/resources/extra-icons/contact.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/contributing.svg b/src/main/resources/extra-icons/contributing.svg deleted file mode 100644 index 87e8dd04..00000000 --- a/src/main/resources/extra-icons/contributing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/contributing_alt.png b/src/main/resources/extra-icons/contributing_alt.png deleted file mode 100644 index fe7a9a120af1f2fe0eb042b6cc33811a0b6c086a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)N2bZe?^J zG%heMGBNQWX_Wu~0h~!hK~y+TV*r7!BOc1#hdq2dk9hmx#fLoX>-XEUfHlED`(baT zu0x*pyAON)Cxn6Oes&)4%!g`)fR4kSuILJMGk1l0;pC9 z=)q#ZsmE*nZ@JO+|MZh}K)Mq}uKSSJLa0^D9pN###?Pl-)d1um5`u{_^^sf7L8cKl;=sN8A2Z;L;XP6#}pJwtOj;EUZ_h{Dp@6xCX zX2(u3{vXz(4>kaVgS++28G4R-I0H3zOx)(d4m5QOOcG*?{(pl!)&Kgrs{aE!^x)z! z9M)@O!O*?amAigbC>zK-=mvN+==@hrQ~s}>uKeGnP76gd2!jnk2IvMj)@c3rY}Eem z)1nJxYocfdVJrsdPe)gT4`Ub*FxgZ%xKl49q+7QXFYeO2fYktEK}ffrVo0anDY6X! hfzS!YauKaM;sDZYvuWiEEkFPO002ovPDHLkV1kHr{tW;C diff --git a/src/main/resources/extra-icons/contributing_alt2.svg b/src/main/resources/extra-icons/contributing_alt2.svg deleted file mode 100644 index 1ac23f90..00000000 --- a/src/main/resources/extra-icons/contributing_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/contributing_alt@2x.png b/src/main/resources/extra-icons/contributing_alt@2x.png deleted file mode 100644 index fd406900e742a5bb7170a67aaf951238f93de2d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmV-^1cCdBP)N2bZe?^J zG%heMGBNQWX_Wu~1N%utK~z{r&6aCS990y@Hzpbrqy6IJgO3&{W#us}ZmOkG6KhLm zmn|U7wlTK$K_y!wp}y+}UByy&<}Qn1tx~Db^n;HOn|{$$Y?_^Av32ngwKSAcW3se1 zEfBzBAHv@=(^(w0w=QH?^d$ex%$;-Q|GVejnT+Ls6ZKuicQRFcRtY+q71hy_v_g(| z<)Fjk>sUU|u()>k4vBZkL2(aL9Ya(+$wE#fD@7Imq-UKah^EHF;w^?1KUmoLw4yo( zc@IifG_f;s&~=|-#Sdzij{p+RJkVK!_l~T^hu?beL8KB*U%R<^X3=ve7aoWC@T3zvV_ zmt@yB8|i-WRrzM61VB@OAhh@Ylb>F}!Tx4i|9%92X{EQIl$#$@$^c^Whg|w5-243& zv_v-1*tI)ApJQxpThi`kwg!pivkGQg_qgAFt6_a5W(zPIZR;q)lRNBivwTQQm>`{& z6d~X;L;M>6+RWeVSb^%jOR?H-(*a^4fKwGrC^zh<1JL=ftctBKv_IUoxvh}e_s^=@ zy#y0SY7|Ou?b*;RBhOs0UTpYb?&J9YS|qXvfzm?jF+V3 z!%>@yj7{lSurVFWUd@J^#(25$lKi$B!`=YU{slsgM(y7~8=Dz`fCpc;BC{$Ti>flP z__;+Wmj!Nayru!LPO+BE1O7voa z6}KCgdL#nS+AqG5i@Vn^FaWH$XMGwT+G^GB@oLPP2EdC%0NU(r)tLm4hRmm~EW!K@ zX~=tKAs+K3UWTLrT-$Q7kTzdIO(x3T%0oGsE`7;LAn9<{=5TAwN*X{jUGB}%L1JSi z+w)NLdJanIXwKy+Apm``*3w#D|2PCV60QP44^<_$a5xwi5 zN^;&0bUd1j$n+d(YBC7{wD5W@*SUT6c~YJ2HmNa5$+j9d69#4lkjf~Lvu>v4+(J4@ zpXC@r QDF6Tf07*qoM6N<$f-w&tm;e9( diff --git a/src/main/resources/extra-icons/cookie.svg b/src/main/resources/extra-icons/cookie.svg deleted file mode 100644 index e753e909..00000000 --- a/src/main/resources/extra-icons/cookie.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cookie_dark.svg b/src/main/resources/extra-icons/cookie_dark.svg deleted file mode 100644 index 8b9666be..00000000 --- a/src/main/resources/extra-icons/cookie_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/coveragerc.svg b/src/main/resources/extra-icons/coveragerc.svg deleted file mode 100644 index 7c96aeeb..00000000 --- a/src/main/resources/extra-icons/coveragerc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/coveralls.svg b/src/main/resources/extra-icons/coveralls.svg deleted file mode 100644 index 0586a541..00000000 --- a/src/main/resources/extra-icons/coveralls.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cpp.svg b/src/main/resources/extra-icons/cpp.svg deleted file mode 100644 index ea2ee9bc..00000000 --- a/src/main/resources/extra-icons/cpp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/crowdin.svg b/src/main/resources/extra-icons/crowdin.svg deleted file mode 100644 index 8afaf11a..00000000 --- a/src/main/resources/extra-icons/crowdin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/css-map.svg b/src/main/resources/extra-icons/css-map.svg deleted file mode 100644 index 14ddc5db..00000000 --- a/src/main/resources/extra-icons/css-map.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/css.svg b/src/main/resources/extra-icons/css.svg deleted file mode 100644 index 8ac9eff5..00000000 --- a/src/main/resources/extra-icons/css.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/csv_alt.svg b/src/main/resources/extra-icons/csv_alt.svg deleted file mode 100644 index 4a313195..00000000 --- a/src/main/resources/extra-icons/csv_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/cypress.svg b/src/main/resources/extra-icons/cypress.svg deleted file mode 100644 index d4d26bb1..00000000 --- a/src/main/resources/extra-icons/cypress.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/deb.svg b/src/main/resources/extra-icons/deb.svg deleted file mode 100644 index e5b7903b..00000000 --- a/src/main/resources/extra-icons/deb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/deb_dark.svg b/src/main/resources/extra-icons/deb_dark.svg deleted file mode 100644 index 143f7d7c..00000000 --- a/src/main/resources/extra-icons/deb_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/deno.svg b/src/main/resources/extra-icons/deno.svg deleted file mode 100644 index 16dea7cc..00000000 --- a/src/main/resources/extra-icons/deno.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dependabot.svg b/src/main/resources/extra-icons/dependabot.svg deleted file mode 100644 index c5c6740b..00000000 --- a/src/main/resources/extra-icons/dependabot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dependabot_alt.svg b/src/main/resources/extra-icons/dependabot_alt.svg deleted file mode 100644 index 41677374..00000000 --- a/src/main/resources/extra-icons/dependabot_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dependabot_alt_dark.svg b/src/main/resources/extra-icons/dependabot_alt_dark.svg deleted file mode 100644 index 241379f7..00000000 --- a/src/main/resources/extra-icons/dependabot_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/deptective.svg b/src/main/resources/extra-icons/deptective.svg deleted file mode 100644 index ab7e842e..00000000 --- a/src/main/resources/extra-icons/deptective.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/detekt.svg b/src/main/resources/extra-icons/detekt.svg deleted file mode 100644 index b59fde04..00000000 --- a/src/main/resources/extra-icons/detekt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/docker_.svg b/src/main/resources/extra-icons/docker_.svg deleted file mode 100644 index 17aab700..00000000 --- a/src/main/resources/extra-icons/docker_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/docker_alt.svg b/src/main/resources/extra-icons/docker_alt.svg deleted file mode 100644 index c695d76a..00000000 --- a/src/main/resources/extra-icons/docker_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/docker_alt2.svg b/src/main/resources/extra-icons/docker_alt2.svg deleted file mode 100644 index 49006d82..00000000 --- a/src/main/resources/extra-icons/docker_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dockercompose_.svg b/src/main/resources/extra-icons/dockercompose_.svg deleted file mode 100644 index 69dc02b2..00000000 --- a/src/main/resources/extra-icons/dockercompose_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dockercompose_alt.svg b/src/main/resources/extra-icons/dockercompose_alt.svg deleted file mode 100644 index 73224095..00000000 --- a/src/main/resources/extra-icons/dockercompose_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dockercompose_alt2.svg b/src/main/resources/extra-icons/dockercompose_alt2.svg deleted file mode 100644 index de4dbc04..00000000 --- a/src/main/resources/extra-icons/dockercompose_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dockerignore.svg b/src/main/resources/extra-icons/dockerignore.svg deleted file mode 100644 index 0819b625..00000000 --- a/src/main/resources/extra-icons/dockerignore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dockerignore_alt.svg b/src/main/resources/extra-icons/dockerignore_alt.svg deleted file mode 100644 index ea666ee0..00000000 --- a/src/main/resources/extra-icons/dockerignore_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dockerignore_alt2.svg b/src/main/resources/extra-icons/dockerignore_alt2.svg deleted file mode 100644 index c55a9ed5..00000000 --- a/src/main/resources/extra-icons/dockerignore_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dockerignore_alt2_dark.svg b/src/main/resources/extra-icons/dockerignore_alt2_dark.svg deleted file mode 100644 index 8f5bc15f..00000000 --- a/src/main/resources/extra-icons/dockerignore_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/dockerignore_dark.svg b/src/main/resources/extra-icons/dockerignore_dark.svg deleted file mode 100644 index bd49971d..00000000 --- a/src/main/resources/extra-icons/dockerignore_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/drawio.svg b/src/main/resources/extra-icons/drawio.svg deleted file mode 100644 index 5caa86cf..00000000 --- a/src/main/resources/extra-icons/drawio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/drawio_alt.svg b/src/main/resources/extra-icons/drawio_alt.svg deleted file mode 100644 index 17a7192a..00000000 --- a/src/main/resources/extra-icons/drawio_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/drawio_alt2.png b/src/main/resources/extra-icons/drawio_alt2.png deleted file mode 100644 index 091c01bcc460becebb247681e353829ad8b6b2d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmaR2}kaRKw(dX4}90pv+UK~y+TrBXd_ z6G0H2x!JWbAqkGmM*+gA2n8up@h51IfFe-Qrbh%J(M5uSB0nHMfD%NJG6kZ6M4|x- z6w87%NU@JQpVxQ0!|eJv%U~p=Jn7xd&d$7jnq4?4(0}4B^@#y4h0Ong;p^gNu^NqI zXba~i#8ZxG-#Xm&bgT~?U}L%l+P*gk{0%%R==|NK$N4SK__%dvl+yQda|-_u09&WV zsEmQgnyjx1lc+K?!At>W&`K4j#U^^@nVy$lEsGVHgvzQhW(y#+Oq#77ZY=H`ZZvlQ ziZu~B=l8Oo8caG7nJIuwd-0Fx0-{?7$k)-CCFJOB*c7Eugx69-5i;?c#G=H_6f^`yItRzH-}GEcPX z(ejILZPx#1ZP1_K>z@;j|==^1poj532;bRa{vGmasU7lasggtTjKx#1XW2yK~z{r%~nl_ z97Pmw-62g493}FOn@5_>6dY+*R6q^LN^99qVHx%7>bw4CfEy*=sQ7-6gGC<&Brs!@D z+JOcbcIQfQ8&ZRm`$X&7#%v(4=MBH%5tL-vQ?a>IxUy1XttWQ2UKfV9+p6jFLUf?UIzS%3p)sJMNwVMZ| zcQ=7iZ$X)bywdMngJ(Zc&2nR@u_jiXx~0QB6h%k1aK2xJ&lO{0?MvcIb z0Ex1s))0{xk$@s3;DFmA^m^fVqimB~7noxd5g0WB+sJo!Ru4TY7hc-Q3(v6~2-;_h z4=0qByq8$qY;3_7k*G>?n(-t?B7h=xH?H~_z@)joozAcj^UnA3_xotcBb?zO%BA**c0Pf7YpDCWY`pqKV_sB)Ty?0VVz< zKlR1xC2yKk<0&RDV@3cUZ;11ZA~{JS^A)P%UuK{OzNc@8O5{8OkuSZy|A&?WYJcuIPAQ)e0q}Ye2FN1j3{*+Z^sEz z_DTI<8FScgaF2cql>CxJ@<6V*dI8m~2dDSvlhRgiF}p8gY+UO)FQGhW5x=+N&~h^{ zG?*(C=>GioJ1pDz07*L=6jP$5?FXy3>hXvOK*eGqcjqk^`<-jt^Vv!h1b>53cedA{ z`@P?}#_W+JIQy|naD2w7dJvNX+VieXGYUb$>xSOefZCr*b(W0SPz-_p4*y32NJhK%W?fS^ds^X zD3v(py4jEGSDhb}+YbNp6tWWQ+`+2xDhkhoPz4*n3O;f2By;jZ{FR*3KL#O$ZIhjR z1an?Qowz+vb=`v4U$QnzW}_liTUV{_ZJ~?u3nr$24Y0v=?5Yk1o#bQgiVf0r>9+W5 z*nyq&DK+7+OnC@4_I^!7gmVq(^jMFr77KFS!ECG$OF+X;ppIo-d}AK-e~7+-hKTf{ zNu+ZBE(vTuTr4Djb3KfAwQMm}`X!N2mGMcpA`@Oku! \ No newline at end of file diff --git a/src/main/resources/extra-icons/editorconfig_alt.svg b/src/main/resources/extra-icons/editorconfig_alt.svg deleted file mode 100644 index d3b42355..00000000 --- a/src/main/resources/extra-icons/editorconfig_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/editorconfig_alt2.svg b/src/main/resources/extra-icons/editorconfig_alt2.svg deleted file mode 100644 index ceac89b0..00000000 --- a/src/main/resources/extra-icons/editorconfig_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/editorconfig_alt2_dark.svg b/src/main/resources/extra-icons/editorconfig_alt2_dark.svg deleted file mode 100644 index e2a7529f..00000000 --- a/src/main/resources/extra-icons/editorconfig_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/elastic-cerebro.svg b/src/main/resources/extra-icons/elastic-cerebro.svg deleted file mode 100644 index 55b9fcc2..00000000 --- a/src/main/resources/extra-icons/elastic-cerebro.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/elastic-cerebro_dark.svg b/src/main/resources/extra-icons/elastic-cerebro_dark.svg deleted file mode 100644 index 3d718272..00000000 --- a/src/main/resources/extra-icons/elastic-cerebro_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/elasticsearch.svg b/src/main/resources/extra-icons/elasticsearch.svg deleted file mode 100644 index 6f497116..00000000 --- a/src/main/resources/extra-icons/elasticsearch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/elasticsearch_dark.svg b/src/main/resources/extra-icons/elasticsearch_dark.svg deleted file mode 100644 index b66c9089..00000000 --- a/src/main/resources/extra-icons/elasticsearch_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/elixir.svg b/src/main/resources/extra-icons/elixir.svg deleted file mode 100644 index fadcf07e..00000000 --- a/src/main/resources/extra-icons/elixir.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/email.svg b/src/main/resources/extra-icons/email.svg deleted file mode 100644 index 116a6011..00000000 --- a/src/main/resources/extra-icons/email.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/env.svg b/src/main/resources/extra-icons/env.svg deleted file mode 100644 index 7b066e40..00000000 --- a/src/main/resources/extra-icons/env.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/env_alt.svg b/src/main/resources/extra-icons/env_alt.svg deleted file mode 100644 index 124dca11..00000000 --- a/src/main/resources/extra-icons/env_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/env_alt2.svg b/src/main/resources/extra-icons/env_alt2.svg deleted file mode 100644 index 55187ad3..00000000 --- a/src/main/resources/extra-icons/env_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/epub.svg b/src/main/resources/extra-icons/epub.svg deleted file mode 100644 index 845da278..00000000 --- a/src/main/resources/extra-icons/epub.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/eslint.svg b/src/main/resources/extra-icons/eslint.svg deleted file mode 100644 index de5e802f..00000000 --- a/src/main/resources/extra-icons/eslint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/expo.svg b/src/main/resources/extra-icons/expo.svg deleted file mode 100644 index eefe1752..00000000 --- a/src/main/resources/extra-icons/expo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/expo_dark.svg b/src/main/resources/extra-icons/expo_dark.svg deleted file mode 100644 index 05d2f6b6..00000000 --- a/src/main/resources/extra-icons/expo_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/expo_folder.svg b/src/main/resources/extra-icons/expo_folder.svg deleted file mode 100644 index 87b30cb6..00000000 --- a/src/main/resources/extra-icons/expo_folder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/faq.svg b/src/main/resources/extra-icons/faq.svg deleted file mode 100644 index 22d602f6..00000000 --- a/src/main/resources/extra-icons/faq.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/faq_alt.svg b/src/main/resources/extra-icons/faq_alt.svg deleted file mode 100644 index 46107045..00000000 --- a/src/main/resources/extra-icons/faq_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/faq_alt2.svg b/src/main/resources/extra-icons/faq_alt2.svg deleted file mode 100644 index 333489ca..00000000 --- a/src/main/resources/extra-icons/faq_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/faq_alt3.svg b/src/main/resources/extra-icons/faq_alt3.svg deleted file mode 100644 index 0cba91ca..00000000 --- a/src/main/resources/extra-icons/faq_alt3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/faq_alt3_dark.svg b/src/main/resources/extra-icons/faq_alt3_dark.svg deleted file mode 100644 index 81d96baa..00000000 --- a/src/main/resources/extra-icons/faq_alt3_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/faq_alt4.svg b/src/main/resources/extra-icons/faq_alt4.svg deleted file mode 100644 index aeb25120..00000000 --- a/src/main/resources/extra-icons/faq_alt4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flutter-analysisoptions.svg b/src/main/resources/extra-icons/flutter-analysisoptions.svg deleted file mode 100644 index fa1ae539..00000000 --- a/src/main/resources/extra-icons/flutter-analysisoptions.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flutter-metadata.svg b/src/main/resources/extra-icons/flutter-metadata.svg deleted file mode 100644 index e99c7e3e..00000000 --- a/src/main/resources/extra-icons/flutter-metadata.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flutter.svg b/src/main/resources/extra-icons/flutter.svg deleted file mode 100644 index 5e0f129e..00000000 --- a/src/main/resources/extra-icons/flutter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flutterlock.svg b/src/main/resources/extra-icons/flutterlock.svg deleted file mode 100644 index 5be20c41..00000000 --- a/src/main/resources/extra-icons/flutterlock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flutterlock_dark.svg b/src/main/resources/extra-icons/flutterlock_dark.svg deleted file mode 100644 index 72f1b48c..00000000 --- a/src/main/resources/extra-icons/flutterlock_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flyway.svg b/src/main/resources/extra-icons/flyway.svg deleted file mode 100644 index 0b140281..00000000 --- a/src/main/resources/extra-icons/flyway.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flyway_alt.svg b/src/main/resources/extra-icons/flyway_alt.svg deleted file mode 100644 index 55c3a677..00000000 --- a/src/main/resources/extra-icons/flyway_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flyway_alt2.png b/src/main/resources/extra-icons/flyway_alt2.png deleted file mode 100644 index 06aea77361a7467aa413ca29aeeffd8dbf8fb8d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstPBjy3;{kN zu0Zjmq@?8Jl1h10NpbR zMniyZA<)yD;K9Ja$WRjG7yN%@1BT%5?5e>sD{HI^S2xX5tsmUFgI=CRUHj;NJ834@3E5pKhrQ{%)KQQ0evK bggwK(=LZiI#VEhf0i_&IS3j3^P6!lvNA9*GX(gA zxB|r!6BCn?l9H2?Q&Lh=Q&ZE@($dq@GcqzVGc&WYva++Yb8>QWb93|a^9u@qsGzX0 zu&Ai0q`0`Ww6v_Ow7jgWyu7@kyu7lqvZ@M*s;aB2Yinz2YisN4>gwz33szpNS%0N^ z!fO3MP7ndS-w9I9~t*(a_VyF~q|E?!?UCW&;sdUI~{~ zqJgV7vIc5rY|K(!C-QpVgMEMg@BhSe^0i5+%->fPb|2pPo@+7aIiUY1GjaM#OMzvD zS~bn9E{JPQ2{D*d1#3xu=zv7-UHt ze5RtPcjoioI5Xu-M|-`qHLmEKzsRRq4eD4gZzODJ}f$B zuJLeVq}~1QMGgTe~DWM4f%ce-N diff --git a/src/main/resources/extra-icons/flyway_alt2@2x_dark.png b/src/main/resources/extra-icons/flyway_alt2@2x_dark.png deleted file mode 100644 index 8d13a2f065f8e246543ac9cb91383d0c2056e8a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1497 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvNA9*GX(gA zxB|uN>gx+uUaVPvrFz4ax(!!bT3g#YI(mA0r%jtaW9H0Rvu4kkGk3v)g^Ly~Ua}Mj zmaSO1auo=yUcCka)~;Q*diCmc5V&#u1_<1`eftg&+y#PrK=9z< z!^a@-1PGo2!80Iu{`~n1Ab9!m<(oHe-oAbN?%lih@85s;@Zr;^PoF=3{_^F^*RNl{ zef#$P`}ZF|e*FCT^VhFmzk%Qn2>ku~_us#N|Ns97hTbR`(jnkn@KBq9fsvsk$S)We zp(7bE1b=5&1x6-kfk$L91A|Zz2s6f|Mn47$N|d-plmzFem6RtIr7{#GX6BXX<)xM= znCKbmnf>+Sd;ttZdrud~5DWji6ElMk8Hl*vEeIFcvTkW;;eEjiU83AlN7ssd&q^(9 z{PSP_gU{sS0y6IVt>*F9epgGsRC0@D|A*zRE0qmj9}@Lz4Atxm5SH`)!npXngP0fMG^aV+@ZhD89#0d%Q^d*$G-UC)*#>fyMeRXC!cUBcrj<` zJig^qoE5{jy!B*Q?=ydUa?6AtZLjA!Rj2P1czkHt;m{rpAe`b`ZPr(AH^F zp)im&=ShZ!j8CGo%0Z7`<{mN$u1|#5Owo_HArRTHX4%WH@=6Ygkv;hWhnx=7uX9~| zaaw3YX+)!0#3O5sGpsl6iHrT@6%21xJelF{r G5}E+Q-?YB~ diff --git a/src/main/resources/extra-icons/flyway_alt2_dark.png b/src/main/resources/extra-icons/flyway_alt2_dark.png deleted file mode 100644 index 930df6bab019640603960de63ca74ec44276cd15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstPBjy3;{kN zu0Zjc4OizcSg>*9rX4$W?Afzt-@g3~o370}a)0^BN2^XhUVY~Anln%KUVC}qz=4Ax za0mzP`pbDG!Hm@3^ZGt}y{O9J)NERTk)c{J(z}$9#d!fByex znib$I8u8<%%R!wL4My7g1!gb`Pnb4EjM+GW>Az^If=Pr!U-R_Yb0>DUPi|&c`Y>Od jEoC8-M#F>y|Nk>=wmiU6B=Y|#D7|>P`njxgN@xNApJCXp diff --git a/src/main/resources/extra-icons/flyway_alt_dark.svg b/src/main/resources/extra-icons/flyway_alt_dark.svg deleted file mode 100644 index 0b140281..00000000 --- a/src/main/resources/extra-icons/flyway_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/flyway_dark.svg b/src/main/resources/extra-icons/flyway_dark.svg deleted file mode 100644 index 55c3a677..00000000 --- a/src/main/resources/extra-icons/flyway_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_circleci.svg b/src/main/resources/extra-icons/folder_circleci.svg deleted file mode 100644 index 162b8915..00000000 --- a/src/main/resources/extra-icons/folder_circleci.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_db2.svg b/src/main/resources/extra-icons/folder_db2.svg deleted file mode 100644 index d5e9145a..00000000 --- a/src/main/resources/extra-icons/folder_db2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_dependabot.svg b/src/main/resources/extra-icons/folder_dependabot.svg deleted file mode 100644 index 888c5c41..00000000 --- a/src/main/resources/extra-icons/folder_dependabot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_dependabot_alt.svg b/src/main/resources/extra-icons/folder_dependabot_alt.svg deleted file mode 100644 index 62ca35c9..00000000 --- a/src/main/resources/extra-icons/folder_dependabot_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_docker.svg b/src/main/resources/extra-icons/folder_docker.svg deleted file mode 100644 index f8f68c1e..00000000 --- a/src/main/resources/extra-icons/folder_docker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_fleet.svg b/src/main/resources/extra-icons/folder_fleet.svg deleted file mode 100644 index cbf682f1..00000000 --- a/src/main/resources/extra-icons/folder_fleet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_flyway.svg b/src/main/resources/extra-icons/folder_flyway.svg deleted file mode 100644 index ab449e44..00000000 --- a/src/main/resources/extra-icons/folder_flyway.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_github.svg b/src/main/resources/extra-icons/folder_github.svg deleted file mode 100644 index 19acb523..00000000 --- a/src/main/resources/extra-icons/folder_github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_gitlab.svg b/src/main/resources/extra-icons/folder_gitlab.svg deleted file mode 100644 index f1e674a3..00000000 --- a/src/main/resources/extra-icons/folder_gitlab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_gradle.svg b/src/main/resources/extra-icons/folder_gradle.svg deleted file mode 100644 index 3f872b46..00000000 --- a/src/main/resources/extra-icons/folder_gradle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_h2.svg b/src/main/resources/extra-icons/folder_h2.svg deleted file mode 100644 index b2b8de77..00000000 --- a/src/main/resources/extra-icons/folder_h2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_hsqldb.svg b/src/main/resources/extra-icons/folder_hsqldb.svg deleted file mode 100644 index 293942d0..00000000 --- a/src/main/resources/extra-icons/folder_hsqldb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_idea.svg b/src/main/resources/extra-icons/folder_idea.svg deleted file mode 100644 index 537ecb52..00000000 --- a/src/main/resources/extra-icons/folder_idea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_jpabuddy.svg b/src/main/resources/extra-icons/folder_jpabuddy.svg deleted file mode 100644 index 2d2e1155..00000000 --- a/src/main/resources/extra-icons/folder_jpabuddy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_jpabuddy_alt.svg b/src/main/resources/extra-icons/folder_jpabuddy_alt.svg deleted file mode 100644 index 02fa38cd..00000000 --- a/src/main/resources/extra-icons/folder_jpabuddy_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_jpabuddy_alt2.svg b/src/main/resources/extra-icons/folder_jpabuddy_alt2.svg deleted file mode 100644 index 1a20e051..00000000 --- a/src/main/resources/extra-icons/folder_jpabuddy_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_jpabuddy_alt3.svg b/src/main/resources/extra-icons/folder_jpabuddy_alt3.svg deleted file mode 100644 index 38f837d5..00000000 --- a/src/main/resources/extra-icons/folder_jpabuddy_alt3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_liquibase.svg b/src/main/resources/extra-icons/folder_liquibase.svg deleted file mode 100644 index 9cf7eac4..00000000 --- a/src/main/resources/extra-icons/folder_liquibase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_mariadb.svg b/src/main/resources/extra-icons/folder_mariadb.svg deleted file mode 100644 index 499b87c1..00000000 --- a/src/main/resources/extra-icons/folder_mariadb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_mariadb_dark.svg b/src/main/resources/extra-icons/folder_mariadb_dark.svg deleted file mode 100644 index 279133e0..00000000 --- a/src/main/resources/extra-icons/folder_mariadb_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_mergify.svg b/src/main/resources/extra-icons/folder_mergify.svg deleted file mode 100644 index 5bb4b533..00000000 --- a/src/main/resources/extra-icons/folder_mergify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_mvnw.svg b/src/main/resources/extra-icons/folder_mvnw.svg deleted file mode 100644 index a9a41ed5..00000000 --- a/src/main/resources/extra-icons/folder_mvnw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_mysql.svg b/src/main/resources/extra-icons/folder_mysql.svg deleted file mode 100644 index 4d361284..00000000 --- a/src/main/resources/extra-icons/folder_mysql.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_mysql_dark.svg b/src/main/resources/extra-icons/folder_mysql_dark.svg deleted file mode 100644 index 8584a892..00000000 --- a/src/main/resources/extra-icons/folder_mysql_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_node_modules.svg b/src/main/resources/extra-icons/folder_node_modules.svg deleted file mode 100644 index a847e096..00000000 --- a/src/main/resources/extra-icons/folder_node_modules.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_node_modules_alt.svg b/src/main/resources/extra-icons/folder_node_modules_alt.svg deleted file mode 100644 index eeab1f2b..00000000 --- a/src/main/resources/extra-icons/folder_node_modules_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_nuget.svg b/src/main/resources/extra-icons/folder_nuget.svg deleted file mode 100644 index 66e5f880..00000000 --- a/src/main/resources/extra-icons/folder_nuget.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_oracle.svg b/src/main/resources/extra-icons/folder_oracle.svg deleted file mode 100644 index d0ada4c8..00000000 --- a/src/main/resources/extra-icons/folder_oracle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_android.svg b/src/main/resources/extra-icons/folder_os_android.svg deleted file mode 100644 index af0b9064..00000000 --- a/src/main/resources/extra-icons/folder_os_android.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_android_dark.svg b/src/main/resources/extra-icons/folder_os_android_dark.svg deleted file mode 100644 index ca7cb654..00000000 --- a/src/main/resources/extra-icons/folder_os_android_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_ios.svg b/src/main/resources/extra-icons/folder_os_ios.svg deleted file mode 100644 index 5eaee148..00000000 --- a/src/main/resources/extra-icons/folder_os_ios.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_ios_dark.svg b/src/main/resources/extra-icons/folder_os_ios_dark.svg deleted file mode 100644 index 634424e9..00000000 --- a/src/main/resources/extra-icons/folder_os_ios_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_linux.svg b/src/main/resources/extra-icons/folder_os_linux.svg deleted file mode 100644 index 536aef57..00000000 --- a/src/main/resources/extra-icons/folder_os_linux.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_linux_dark.svg b/src/main/resources/extra-icons/folder_os_linux_dark.svg deleted file mode 100644 index 536aef57..00000000 --- a/src/main/resources/extra-icons/folder_os_linux_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_macos.svg b/src/main/resources/extra-icons/folder_os_macos.svg deleted file mode 100644 index 363c66fa..00000000 --- a/src/main/resources/extra-icons/folder_os_macos.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_macos_dark.svg b/src/main/resources/extra-icons/folder_os_macos_dark.svg deleted file mode 100644 index 7d65eee2..00000000 --- a/src/main/resources/extra-icons/folder_os_macos_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_web.svg b/src/main/resources/extra-icons/folder_os_web.svg deleted file mode 100644 index 7604a7ff..00000000 --- a/src/main/resources/extra-icons/folder_os_web.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_web_dark.svg b/src/main/resources/extra-icons/folder_os_web_dark.svg deleted file mode 100644 index 7604a7ff..00000000 --- a/src/main/resources/extra-icons/folder_os_web_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_windows.svg b/src/main/resources/extra-icons/folder_os_windows.svg deleted file mode 100644 index dc6fd9a2..00000000 --- a/src/main/resources/extra-icons/folder_os_windows.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_os_windows_dark.svg b/src/main/resources/extra-icons/folder_os_windows_dark.svg deleted file mode 100644 index 4644793b..00000000 --- a/src/main/resources/extra-icons/folder_os_windows_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_postgresql.svg b/src/main/resources/extra-icons/folder_postgresql.svg deleted file mode 100644 index 98bdebe3..00000000 --- a/src/main/resources/extra-icons/folder_postgresql.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_pytest_cache.svg b/src/main/resources/extra-icons/folder_pytest_cache.svg deleted file mode 100644 index c7fc742b..00000000 --- a/src/main/resources/extra-icons/folder_pytest_cache.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_python_venv.svg b/src/main/resources/extra-icons/folder_python_venv.svg deleted file mode 100644 index dae06878..00000000 --- a/src/main/resources/extra-icons/folder_python_venv.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_semaphoreci.svg b/src/main/resources/extra-icons/folder_semaphoreci.svg deleted file mode 100644 index 7d1e52d6..00000000 --- a/src/main/resources/extra-icons/folder_semaphoreci.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_sqlite.svg b/src/main/resources/extra-icons/folder_sqlite.svg deleted file mode 100644 index b17c70ba..00000000 --- a/src/main/resources/extra-icons/folder_sqlite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_sqlserver.svg b/src/main/resources/extra-icons/folder_sqlserver.svg deleted file mode 100644 index 7069407e..00000000 --- a/src/main/resources/extra-icons/folder_sqlserver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_storybook.svg b/src/main/resources/extra-icons/folder_storybook.svg deleted file mode 100644 index a2393563..00000000 --- a/src/main/resources/extra-icons/folder_storybook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_teamcity.svg b/src/main/resources/extra-icons/folder_teamcity.svg deleted file mode 100644 index 69456634..00000000 --- a/src/main/resources/extra-icons/folder_teamcity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_tmp.svg b/src/main/resources/extra-icons/folder_tmp.svg deleted file mode 100644 index 74488bb1..00000000 --- a/src/main/resources/extra-icons/folder_tmp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/folder_vscode.svg b/src/main/resources/extra-icons/folder_vscode.svg deleted file mode 100644 index fa421801..00000000 --- a/src/main/resources/extra-icons/folder_vscode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/form.svg b/src/main/resources/extra-icons/form.svg deleted file mode 100644 index 72f9f88a..00000000 --- a/src/main/resources/extra-icons/form.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/form_dark.svg b/src/main/resources/extra-icons/form_dark.svg deleted file mode 100644 index ebf30e0c..00000000 --- a/src/main/resources/extra-icons/form_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gatling.svg b/src/main/resources/extra-icons/gatling.svg deleted file mode 100644 index 5cf4eeb2..00000000 --- a/src/main/resources/extra-icons/gatling.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/generated_pom.svg b/src/main/resources/extra-icons/generated_pom.svg deleted file mode 100644 index 770af1df..00000000 --- a/src/main/resources/extra-icons/generated_pom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/generated_pom_alt.svg b/src/main/resources/extra-icons/generated_pom_alt.svg deleted file mode 100644 index 7d73a57c..00000000 --- a/src/main/resources/extra-icons/generated_pom_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/git.svg b/src/main/resources/extra-icons/git.svg deleted file mode 100644 index f68394be..00000000 --- a/src/main/resources/extra-icons/git.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/git_submodule.svg b/src/main/resources/extra-icons/git_submodule.svg deleted file mode 100644 index 8509ceb3..00000000 --- a/src/main/resources/extra-icons/git_submodule.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/git_submodule_alt.svg b/src/main/resources/extra-icons/git_submodule_alt.svg deleted file mode 100644 index b1441ee9..00000000 --- a/src/main/resources/extra-icons/git_submodule_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/github_action.svg b/src/main/resources/extra-icons/github_action.svg deleted file mode 100644 index 8a93b4aa..00000000 --- a/src/main/resources/extra-icons/github_action.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/github_action_dark.svg b/src/main/resources/extra-icons/github_action_dark.svg deleted file mode 100644 index e3988b48..00000000 --- a/src/main/resources/extra-icons/github_action_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gitlab.svg b/src/main/resources/extra-icons/gitlab.svg deleted file mode 100644 index f75c384e..00000000 --- a/src/main/resources/extra-icons/gitlab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gitlab_alt.svg b/src/main/resources/extra-icons/gitlab_alt.svg deleted file mode 100644 index 436427a3..00000000 --- a/src/main/resources/extra-icons/gitlab_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gitlab_next.svg b/src/main/resources/extra-icons/gitlab_next.svg deleted file mode 100644 index 8f830a27..00000000 --- a/src/main/resources/extra-icons/gitlab_next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gitpod.svg b/src/main/resources/extra-icons/gitpod.svg deleted file mode 100644 index fa6dc49e..00000000 --- a/src/main/resources/extra-icons/gitpod.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/glowroot.svg b/src/main/resources/extra-icons/glowroot.svg deleted file mode 100644 index 8322710c..00000000 --- a/src/main/resources/extra-icons/glowroot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gocd.svg b/src/main/resources/extra-icons/gocd.svg deleted file mode 100644 index 284e3388..00000000 --- a/src/main/resources/extra-icons/gocd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gocd_dark.svg b/src/main/resources/extra-icons/gocd_dark.svg deleted file mode 100644 index f25594a2..00000000 --- a/src/main/resources/extra-icons/gocd_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/golangarchlinter.svg b/src/main/resources/extra-icons/golangarchlinter.svg deleted file mode 100644 index b1e4569b..00000000 --- a/src/main/resources/extra-icons/golangarchlinter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gomod.svg b/src/main/resources/extra-icons/gomod.svg deleted file mode 100644 index 32a7aba5..00000000 --- a/src/main/resources/extra-icons/gomod.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gomod_alt.svg b/src/main/resources/extra-icons/gomod_alt.svg deleted file mode 100644 index 2b502fb0..00000000 --- a/src/main/resources/extra-icons/gomod_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/goreleaser.svg b/src/main/resources/extra-icons/goreleaser.svg deleted file mode 100644 index c48735cb..00000000 --- a/src/main/resources/extra-icons/goreleaser.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/goreleaser_alt.svg b/src/main/resources/extra-icons/goreleaser_alt.svg deleted file mode 100644 index 2b8b205b..00000000 --- a/src/main/resources/extra-icons/goreleaser_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradle.svg b/src/main/resources/extra-icons/gradle.svg deleted file mode 100644 index e9573ca5..00000000 --- a/src/main/resources/extra-icons/gradle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradle_dark.svg b/src/main/resources/extra-icons/gradle_dark.svg deleted file mode 100644 index 84b37cf3..00000000 --- a/src/main/resources/extra-icons/gradle_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradle_kotlin.svg b/src/main/resources/extra-icons/gradle_kotlin.svg deleted file mode 100644 index 61cb2bad..00000000 --- a/src/main/resources/extra-icons/gradle_kotlin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradle_kotlin_colored.svg b/src/main/resources/extra-icons/gradle_kotlin_colored.svg deleted file mode 100644 index c2e5ddf1..00000000 --- a/src/main/resources/extra-icons/gradle_kotlin_colored.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradle_kotlin_colored_dark.svg b/src/main/resources/extra-icons/gradle_kotlin_colored_dark.svg deleted file mode 100644 index 849eb95e..00000000 --- a/src/main/resources/extra-icons/gradle_kotlin_colored_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradle_kotlin_dark.svg b/src/main/resources/extra-icons/gradle_kotlin_dark.svg deleted file mode 100644 index 867a21b8..00000000 --- a/src/main/resources/extra-icons/gradle_kotlin_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradle_lock.svg b/src/main/resources/extra-icons/gradle_lock.svg deleted file mode 100644 index 1062132d..00000000 --- a/src/main/resources/extra-icons/gradle_lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradle_lock_dark.svg b/src/main/resources/extra-icons/gradle_lock_dark.svg deleted file mode 100644 index 34958790..00000000 --- a/src/main/resources/extra-icons/gradle_lock_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradlew.svg b/src/main/resources/extra-icons/gradlew.svg deleted file mode 100644 index 295ffd33..00000000 --- a/src/main/resources/extra-icons/gradlew.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/gradlew_dark.svg b/src/main/resources/extra-icons/gradlew_dark.svg deleted file mode 100644 index 8ca8120a..00000000 --- a/src/main/resources/extra-icons/gradlew_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/grafana.svg b/src/main/resources/extra-icons/grafana.svg deleted file mode 100644 index cbe89ab7..00000000 --- a/src/main/resources/extra-icons/grafana.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/graphql.svg b/src/main/resources/extra-icons/graphql.svg deleted file mode 100644 index 69003c2c..00000000 --- a/src/main/resources/extra-icons/graphql.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/graphql_config.svg b/src/main/resources/extra-icons/graphql_config.svg deleted file mode 100644 index 7134d3e6..00000000 --- a/src/main/resources/extra-icons/graphql_config.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/graphql_config_dark.svg b/src/main/resources/extra-icons/graphql_config_dark.svg deleted file mode 100644 index 4cd58566..00000000 --- a/src/main/resources/extra-icons/graphql_config_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/graphql_dark.svg b/src/main/resources/extra-icons/graphql_dark.svg deleted file mode 100644 index a0da6b7a..00000000 --- a/src/main/resources/extra-icons/graphql_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/graphql_schema.svg b/src/main/resources/extra-icons/graphql_schema.svg deleted file mode 100644 index c058a8f2..00000000 --- a/src/main/resources/extra-icons/graphql_schema.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/graphql_schema_dark.svg b/src/main/resources/extra-icons/graphql_schema_dark.svg deleted file mode 100644 index 34660f4f..00000000 --- a/src/main/resources/extra-icons/graphql_schema_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/grunt.svg b/src/main/resources/extra-icons/grunt.svg deleted file mode 100644 index cdc40237..00000000 --- a/src/main/resources/extra-icons/grunt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/h.svg b/src/main/resources/extra-icons/h.svg deleted file mode 100644 index c971e56c..00000000 --- a/src/main/resources/extra-icons/h.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/hadolint.svg b/src/main/resources/extra-icons/hadolint.svg deleted file mode 100644 index a779549b..00000000 --- a/src/main/resources/extra-icons/hadolint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/hadolint_dark.svg b/src/main/resources/extra-icons/hadolint_dark.svg deleted file mode 100644 index dccdf65d..00000000 --- a/src/main/resources/extra-icons/hadolint_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/haxe.svg b/src/main/resources/extra-icons/haxe.svg deleted file mode 100644 index 266f5d45..00000000 --- a/src/main/resources/extra-icons/haxe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/haxehxml.svg b/src/main/resources/extra-icons/haxehxml.svg deleted file mode 100644 index a964ba2b..00000000 --- a/src/main/resources/extra-icons/haxehxml.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helm.svg b/src/main/resources/extra-icons/helm.svg deleted file mode 100644 index d553a6e9..00000000 --- a/src/main/resources/extra-icons/helm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmChart.svg b/src/main/resources/extra-icons/helmChart.svg deleted file mode 100644 index 8ceeb8a6..00000000 --- a/src/main/resources/extra-icons/helmChart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmChartsDirectory.svg b/src/main/resources/extra-icons/helmChartsDirectory.svg deleted file mode 100644 index ae8562ce..00000000 --- a/src/main/resources/extra-icons/helmChartsDirectory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmDirectory.svg b/src/main/resources/extra-icons/helmDirectory.svg deleted file mode 100644 index d4589b55..00000000 --- a/src/main/resources/extra-icons/helmDirectory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmNotes.svg b/src/main/resources/extra-icons/helmNotes.svg deleted file mode 100644 index 4857803c..00000000 --- a/src/main/resources/extra-icons/helmNotes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmRequirementsYaml.svg b/src/main/resources/extra-icons/helmRequirementsYaml.svg deleted file mode 100644 index 8a1122a3..00000000 --- a/src/main/resources/extra-icons/helmRequirementsYaml.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmTemplatesDirectory.svg b/src/main/resources/extra-icons/helmTemplatesDirectory.svg deleted file mode 100644 index 44b17305..00000000 --- a/src/main/resources/extra-icons/helmTemplatesDirectory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmTemplatesTestDirectory.svg b/src/main/resources/extra-icons/helmTemplatesTestDirectory.svg deleted file mode 100644 index 89f3ff59..00000000 --- a/src/main/resources/extra-icons/helmTemplatesTestDirectory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmUndeployable.svg b/src/main/resources/extra-icons/helmUndeployable.svg deleted file mode 100644 index a721c03d..00000000 --- a/src/main/resources/extra-icons/helmUndeployable.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmValues.svg b/src/main/resources/extra-icons/helmValues.svg deleted file mode 100644 index 9579e15f..00000000 --- a/src/main/resources/extra-icons/helmValues.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmlogo.svg b/src/main/resources/extra-icons/helmlogo.svg deleted file mode 100644 index e8990628..00000000 --- a/src/main/resources/extra-icons/helmlogo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/helmlogo_alt.svg b/src/main/resources/extra-icons/helmlogo_alt.svg deleted file mode 100644 index 13172304..00000000 --- a/src/main/resources/extra-icons/helmlogo_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/hibernate.svg b/src/main/resources/extra-icons/hibernate.svg deleted file mode 100644 index 0faa5561..00000000 --- a/src/main/resources/extra-icons/hibernate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/htaccess.svg b/src/main/resources/extra-icons/htaccess.svg deleted file mode 100644 index 60aa3e00..00000000 --- a/src/main/resources/extra-icons/htaccess.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/html5.svg b/src/main/resources/extra-icons/html5.svg deleted file mode 100644 index bd991cdf..00000000 --- a/src/main/resources/extra-icons/html5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/html5_alt.svg b/src/main/resources/extra-icons/html5_alt.svg deleted file mode 100644 index 049db4f9..00000000 --- a/src/main/resources/extra-icons/html5_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/html5_alt2.svg b/src/main/resources/extra-icons/html5_alt2.svg deleted file mode 100644 index fca032a7..00000000 --- a/src/main/resources/extra-icons/html5_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/html5_alt2_dark.svg b/src/main/resources/extra-icons/html5_alt2_dark.svg deleted file mode 100644 index 2a29e51c..00000000 --- a/src/main/resources/extra-icons/html5_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/http.png b/src/main/resources/extra-icons/http.png deleted file mode 100644 index 3484bc003ba6c5f0d612c55d08a3c74e5a94c37b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhDOP)N2bZe?^J zG%hhNHDpIvQUCw}L`g(JR5(wSlg&zkK@^5RAs5xc%zhSiBMG(>g)|c^Q{*SzDDxV;bkS!u z>b6O0_Mk7DJOwX^`+e{N*UK5P9Luu2D8aH#lzG^T-x`q2#tGOe-F^kjvoc>cX#^(P z;&VvCA&G6$?WkE?oBRwKy9Y@)VGfDfZIyB~Rm~2LFPrSJEzDaF$J2ujiG9`+&9Xao w$+Gvs^0q!m-^&G+-C;$Ke07*qoM6N<$f+BahYXATM diff --git a/src/main/resources/extra-icons/http@2x.png b/src/main/resources/extra-icons/http@2x.png deleted file mode 100644 index ec60bbd6f0c8cfd3c6c43348ced991eb537aba76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1179 zcmV;M1Z4Y(P)N2bZe?^J zG%hhNHDpIvQUCx18A(JzR9HvV*4L^eRTPKuW6q8lBkHJEV$L}`=8TFtM^wxib3jzk z3o+gpZ$vR-x)gi?eGAc7@cVUl$uOrqrw0xWv*3fO>Z-k0_^-8lZf&G=V5$nXD6$vYNF0;rrtSWF?DmWnC)8C zgi{uMJ{(2_r{+@5N$=8w0Y+1FGE@2oTQ_X-W;jxvYR0I{I9keh=rlY|sKtF!k1=29-Y7YQwZt9%&c3nel5FP{Z$wnpQkG{Eebq zE$H73hfGJ=82;P2H)L$exdVdWL@w!{2iA-Sl)&*>u`>o>`N&mc(Sm*#0iG tCvnc)<4b7<6rHRwqyAysu8lS~_Yapur*ZR^r8WQn002ovPDHLkV1lTxJ`(@{ diff --git a/src/main/resources/extra-icons/http@2x_dark.png b/src/main/resources/extra-icons/http@2x_dark.png deleted file mode 100644 index 009f79bffbc9eeb342549a851dd615035be175cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1330 zcmV-21Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B01fxkrK~z{r#n#7)L@iAw|j1hIzm6&tR zIR{kCIih0Dm;<7MF2uMoZbUI+S_-~^zJ=%`jNk8C_cBd)W6vOX;Onlce}z*g)m^r7 z<;wq+fBvkYwDycRe{@${{tE@JiJL}uwPlSJXwAB@YkU*mkM=s_^OB`C^A)JSR%{UK zj-ikEZvIr<5pE{XxaQorI&O-`;_1=8GAPA0lszh}rNrqmFGw3(Q~^F` z_9MgLZ^pCX5Pm-?wv4HJwvN-{;*gq@dM%ENvx3sg$M!R6Y*7US9Dm!`%^m(lTo{{; zY34cb^3j$(Zhm?E7|+FaVf_uU*JRNu(%5_j>Wkc?35RYPQuN`FinCy> zJx>AtdMS1veNnCOY&rVOF0XCmws*&UqkVYDhNH$@@pE&WGWvUky?4_mwg34OUNt`Z zE?x*G=eG|+g%j-pj?bCh%^m(n{22SYL%rnca7X{}m66u}9+TFxQ&L!ya5}Pj3cSu?&TV8HUuJx?qwr{pUxM zw;6qA7I1vd?5d^1wbgq*KXJ_U7I2@Niius~< z2fY;^hg22$OnkxE!QANqf(p2)C>J<1SK9>*zbZ2FoF$ZL0mtVjhC>}B-Ne)t zVXpnS%~QVQ*U)RG(0JF~Tp%j1HeK~qoRwlyo6F9N&qDd$J-n={>ON!IOd4BM0afqp zuo=I3Sk!i@s={%LJfA*B0*=p_os#B?2alGR5+`%aPa0cPfwjXSZ-gh+tF~>hjHi{) zrL7wAM2L1{6yOFoceu4uQLwJoYskkc-f!VOXAQBi-uTYnQdFUm=TdE2E%}_;-CWK1 zB^0R1_f@5_`3lsRiU)?DQ6g6g`gKDg)sZzOzwJg}k#VSi-7f^3n=`wcOFu638vc6_ z)}KDBGC?h%kVnbWY7?dw>1sQZt8hDqgKiB9dct=K>(l}3D7T~^rEcTkg?^U%rcO|9 z`m8Yo@?dTB|_aJi4nb o|Ahjge^PGOL}m*7f2>^gH?YK=>v&&DP5=M^07*qoM6N<$g6-;$K>z>% diff --git a/src/main/resources/extra-icons/http_alt.svg b/src/main/resources/extra-icons/http_alt.svg deleted file mode 100644 index d5d150dd..00000000 --- a/src/main/resources/extra-icons/http_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/http_dark.png b/src/main/resources/extra-icons/http_dark.png deleted file mode 100644 index 5568553b5136e9585bc03fcf7451e92cba8bbe99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00dh%1K~y+Tm6J_Q0znW)F@c4;5Ezh!UPKe! z8At$;L_`Qih+e?B(i5=q0LHk{cuerUu_j~u!C1-5bXV8cRn=THe* zZY-Kv@eJAooe1Mo=)nw#Ya$~`=_rcO{!2@)IzGJw9CLBN`WFJPL2c|F+DR=|R zpTG+wv1U6hHK~}1!Cf3v7#I|Rw(|&2Fbbd5crLbi42jum4D8X%|KOjc#t3guPbr?rlnRGb;kZSbl*?R)TAt<21dZlD8R@ova+W5*&3 z=`}$!vRSgFI#zrIL*^SH%MGW0*qi`+_o{4Xz<12I!q?2+ia%QtvfKzN8we!=8sM4C zm{0loCU#*Hyw2~x@>e4$drY?Q_hb6WBHN1RTqwK)=5!vXSbcjO00000NkvXXu0mjf DYu(bi diff --git a/src/main/resources/extra-icons/ide/abstractException_.svg b/src/main/resources/extra-icons/ide/abstractException_.svg deleted file mode 100644 index be623cd1..00000000 --- a/src/main/resources/extra-icons/ide/abstractException_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/canary.svg b/src/main/resources/extra-icons/ide/canary.svg deleted file mode 100644 index e0c95fee..00000000 --- a/src/main/resources/extra-icons/ide/canary.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/chrome.svg b/src/main/resources/extra-icons/ide/chrome.svg deleted file mode 100644 index 56a8c360..00000000 --- a/src/main/resources/extra-icons/ide/chrome.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/edge.svg b/src/main/resources/extra-icons/ide/edge.svg deleted file mode 100644 index db568a0c..00000000 --- a/src/main/resources/extra-icons/ide/edge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/enumKotlin_.svg b/src/main/resources/extra-icons/ide/enumKotlin_.svg deleted file mode 100644 index f6293010..00000000 --- a/src/main/resources/extra-icons/ide/enumKotlin_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/enumKotlin_alt.svg b/src/main/resources/extra-icons/ide/enumKotlin_alt.svg deleted file mode 100644 index 14d40559..00000000 --- a/src/main/resources/extra-icons/ide/enumKotlin_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/enumKotlin_alt2.svg b/src/main/resources/extra-icons/ide/enumKotlin_alt2.svg deleted file mode 100644 index aaec8151..00000000 --- a/src/main/resources/extra-icons/ide/enumKotlin_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/enum_.svg b/src/main/resources/extra-icons/ide/enum_.svg deleted file mode 100644 index 8ea8f36b..00000000 --- a/src/main/resources/extra-icons/ide/enum_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/enum_alt.svg b/src/main/resources/extra-icons/ide/enum_alt.svg deleted file mode 100644 index 716b1f37..00000000 --- a/src/main/resources/extra-icons/ide/enum_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/enum_alt2.svg b/src/main/resources/extra-icons/ide/enum_alt2.svg deleted file mode 100644 index e578f982..00000000 --- a/src/main/resources/extra-icons/ide/enum_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/exceptionClass_.svg b/src/main/resources/extra-icons/ide/exceptionClass_.svg deleted file mode 100644 index a40b0fa0..00000000 --- a/src/main/resources/extra-icons/ide/exceptionClass_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/explorer.svg b/src/main/resources/extra-icons/ide/explorer.svg deleted file mode 100644 index 98a7a099..00000000 --- a/src/main/resources/extra-icons/ide/explorer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/firefox.svg b/src/main/resources/extra-icons/ide/firefox.svg deleted file mode 100644 index dd7eacf7..00000000 --- a/src/main/resources/extra-icons/ide/firefox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/firefoxDeveloper.svg b/src/main/resources/extra-icons/ide/firefoxDeveloper.svg deleted file mode 100644 index 95e4e96b..00000000 --- a/src/main/resources/extra-icons/ide/firefoxDeveloper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/opera.svg b/src/main/resources/extra-icons/ide/opera.svg deleted file mode 100644 index 571c8937..00000000 --- a/src/main/resources/extra-icons/ide/opera.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/safari.svg b/src/main/resources/extra-icons/ide/safari.svg deleted file mode 100644 index f0e8a1c1..00000000 --- a/src/main/resources/extra-icons/ide/safari.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/vivaldi.svg b/src/main/resources/extra-icons/ide/vivaldi.svg deleted file mode 100644 index 603390cd..00000000 --- a/src/main/resources/extra-icons/ide/vivaldi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/yaml_.svg b/src/main/resources/extra-icons/ide/yaml_.svg deleted file mode 100644 index 1849b9e8..00000000 --- a/src/main/resources/extra-icons/ide/yaml_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/yaml__dark.svg b/src/main/resources/extra-icons/ide/yaml__dark.svg deleted file mode 100644 index 55ba461d..00000000 --- a/src/main/resources/extra-icons/ide/yaml__dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/yaml_alt.svg b/src/main/resources/extra-icons/ide/yaml_alt.svg deleted file mode 100644 index 39f60eee..00000000 --- a/src/main/resources/extra-icons/ide/yaml_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/yaml_alt2.svg b/src/main/resources/extra-icons/ide/yaml_alt2.svg deleted file mode 100644 index 6ea8ce9a..00000000 --- a/src/main/resources/extra-icons/ide/yaml_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/ide/yaml_alt2_dark.svg b/src/main/resources/extra-icons/ide/yaml_alt2_dark.svg deleted file mode 100644 index 52bade06..00000000 --- a/src/main/resources/extra-icons/ide/yaml_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/imgbot.svg b/src/main/resources/extra-icons/imgbot.svg deleted file mode 100644 index 81e4c064..00000000 --- a/src/main/resources/extra-icons/imgbot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/imgbot_dark.svg b/src/main/resources/extra-icons/imgbot_dark.svg deleted file mode 100644 index 1c4273fb..00000000 --- a/src/main/resources/extra-icons/imgbot_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jar.svg b/src/main/resources/extra-icons/jar.svg deleted file mode 100644 index 835e565c..00000000 --- a/src/main/resources/extra-icons/jar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jar_dark.svg b/src/main/resources/extra-icons/jar_dark.svg deleted file mode 100644 index 4a2b0ccb..00000000 --- a/src/main/resources/extra-icons/jar_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/java.svg b/src/main/resources/extra-icons/java.svg deleted file mode 100644 index 2399b42c..00000000 --- a/src/main/resources/extra-icons/java.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/java_alt.png b/src/main/resources/extra-icons/java_alt.png deleted file mode 100644 index e7a226038258758597f02cfab64962fee6144256..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)N2bZe?^J zG%hhNHDpIvQUCw~4M{{nR5(wSk{U z+ELN9Yrd}5d_x;v%_-fm&Nf-zm}GBX*KUINYeiS4s=E4M&Bz>;<<0qQ?m7VCpEaZX zWK~y!im7E~sWrZ3Gkf6HU%r{?2@H*an|@hpoiDmFUCF8EeN*uQLtU2XjT!kQ($^iH zB{VvF_tE!G`2S~oy}iGh@4PZHFVYr`1_-U+DlEqPq@)?_@m}Kc9~R}$FlBcjZqMAW zJ+>&DwH$V_u=ragE}Mh;w3IX>gh-9K;c*ND2<0}!nC0@Tgf=dZ7Q;iti@G3J#L`520}xyL<`0MQ}AmJl2EV@N}UR9fq4yvb~v^vdD~=;=PF&M6Za)9dPp! zRw;wCgGtZeifH@W{6FLg8-o4b5z2;a%8uByehNEm*eW&7jXU89;_!TO#tt8yoEIHZ z_76mOj)dl>cx+`NW(0qanBj|CW1Ox{Au)-$;xIxr3Uu*)vN8WYKj p!vGu8#s%BsCVn38l&t_le*mtF{}(fhq9_0W002ovPDHLkV1iZVEy(}? diff --git a/src/main/resources/extra-icons/java_alt@2x.png b/src/main/resources/extra-icons/java_alt@2x.png deleted file mode 100644 index 8ed2a12766a1ace85b964432966877ffbd923051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1526 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGh)&Kwv)&Y=jd7JYrOQv)b1O zWK))2F2vjI6yP;w-;8Ei+JCmHZ?QX^({7u9X4zi`YskRSxLiKS9nNXDMLSgKKxa_Zj*^E8jKDol{PVdofN&q_? zOt5$0Z+4xg-3N7MwY1oj{k!O|WqeHbd3QlCR)ff={5O z?{9~(?zFt^CItAV6TAgdX0Ts?bDzR7WZ@#raHr*M1q+Bz^oi;h72nDIfAWMZ-A`bP zzD@eSIX$sF?~jnMf(69J`-%v@lz?rt8)C8~?tFyj3Y1;;Kyjz#WjO_?O&O1Bq>B{8?xX0I*I{>}=%=ywm2n+E@Nm<=>#cNLUl*DSJM+okPt?`{&NuuwQt!j4C=P=$RV-P#k1T4B<;8+O7L#zmHv z!Awn0kL7(oce#hP6^yR}A#@KJ3b?Nv%PBxuFCaCA$1V<}09>8mQy^_QB6MJOL*O?qbERVvBz6<@wLK8 z`tdWL4NR{$ta4}Y2J1<{NH_vlKos420=$5e;7UC?ETks_WF??RE)P|riD7)IAF6Na z92GLGaeN7D2{?x}^$)2(bUY9yHiywBV9#wD?l@nK0Ye*;1G-3po9K-1c>yv zK%Cv4x%+<)O@FMSZLb3{?z?}Ux;7SAExzedL1bl&OKafl=8T{U8hdUC#w*Q{FsH(F?K z#{|WKoc!_yqre$kH+9eh%x&+*~bc4b{T77Xhx<|LwYf cJ4e>@ABy}7LqARwqW}N^07*qoM6N<$f;&sg6aWAK diff --git a/src/main/resources/extra-icons/java_alt@2x_dark.png b/src/main/resources/extra-icons/java_alt@2x_dark.png deleted file mode 100644 index 66f410949bb7165bb2e8d9db2b8f2cc90ed0cd2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1337 zcmV-91;+Y`P)N2bZe?^J zG%hhNHDpIvQUCx1w@E}nR9HvFm1}I%WfX_ot^)@X<>DnVtC(z)f(S+u&|rv0gW1Ly zU9*{i3WO2kHH@HUE*LNPVOxQ1j?mji)Isrl#hSkY-N~EEHem!&1AeI3UERx zbjwTS4$~SF<0zmq59-OlVQH?IZdzkvTm*1x8-a`91L%{+s;f-vOkA=6dAZC^&^hAs z?8Kf!%=Z7S1_+j)_}_irUIhFKhhRQJa;4cjMOvyytc5WPAi#A5s)GUAzhnDgIc+yo z!Clhob(;2C8Iu44&44ZN9VfnsjewVItfLS^v>OfW848VDU&mrIf z?0E#8g?XkunaEy1v!{gMr{IG4DqQsMZYK zK?||Yv?m=S3JCU!Ef^PjASOA%m^c$e#V%VO(vQy`@DkKPA?kxM#hm6f->;QZUDQ`ta0ZJeuxonyZ8zF+Au0T|Rw8Id9R?sXx1}iw>Jmx1S_cJyX zo&gow1um=q5d|o(A4=51YIq+sSOwe?s|55OWE79zq$R$QT|%w(>Rz&D3`WH#BDPk#wi!zKu_ zR`36Q#INvoi<^Fm2%`X;=O<1RmxF8`0-=2d0h<0(aDx6Z`hVYoI5&Vt2mu51^?}kg z2bkZ1T@RYgH|ReCDW7YjfX+A{lDJI3>C|A4xNv+o4)p%3lfBp^`WJOFAAqg!0{so} zDC?fnIXDU@;1x2a^^|xWlNbe9@xLp!_P1pssat^4$8n^m+7BOrKFL~;T71e6pjkS? v+Bcz*L)37EXNDtuq@w?g^N)bbhuHoChv|8~7^_F>00000NkvXXu0mjfXo+XD diff --git a/src/main/resources/extra-icons/java_alt_dark.png b/src/main/resources/extra-icons/java_alt_dark.png deleted file mode 100644 index 69811d64cf165c03cd6773e0eb7ee1e83f670b29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645 zcmV;00($+4P)N2bZe?^J zG%hhNHDpIvQUCw~14%?dR5(wSkv(V>Q4q)Xj1d$>tkhVjO#}-eLJHGFLm~PZ>QrtoIQW*JphtzlFNKDOT&jIk=#R;ge-WHKfmNz5ygqo*cH&6(VlK}; z6JK`2|39lxc1VZ0YZxy=E;+-v9%u8i%Sl?n4bxAB{z`9#7Q?1Iw}i!(n;1r7k=yk z!9yxkm2y+T!VoIVD4S1uz};!ql!wznuDlf-E$?{RT-^sNR6*2$Y13f&1vrWxy;?b# z*3@dY<8Sf*5Rr_)o^L@kLhI%zYp7E+lKIC%Um$fkFfDXnInsHkxrJYwT~79onT4PG z!TMb&sKAll!_;?_>o@Rhg7xRncn01ntVYsXIN4g#?&* \ No newline at end of file diff --git a/src/main/resources/extra-icons/javascript-map_dark.svg b/src/main/resources/extra-icons/javascript-map_dark.svg deleted file mode 100644 index 00043e9d..00000000 --- a/src/main/resources/extra-icons/javascript-map_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/javascript.svg b/src/main/resources/extra-icons/javascript.svg deleted file mode 100644 index e47650ff..00000000 --- a/src/main/resources/extra-icons/javascript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/javascript_alt.svg b/src/main/resources/extra-icons/javascript_alt.svg deleted file mode 100644 index cd334911..00000000 --- a/src/main/resources/extra-icons/javascript_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/javascript_alt_dark.svg b/src/main/resources/extra-icons/javascript_alt_dark.svg deleted file mode 100644 index d3709351..00000000 --- a/src/main/resources/extra-icons/javascript_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/javascript_dark.svg b/src/main/resources/extra-icons/javascript_dark.svg deleted file mode 100644 index e8d83e74..00000000 --- a/src/main/resources/extra-icons/javascript_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jenkins.svg b/src/main/resources/extra-icons/jenkins.svg deleted file mode 100644 index 1fdeb09d..00000000 --- a/src/main/resources/extra-icons/jenkins.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jenkins_alt.png b/src/main/resources/extra-icons/jenkins_alt.png deleted file mode 100644 index 38c2451385e2685e7285909d3a38f9ce77b3fafc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 857 zcmV-f1E&0mP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00PNLL_t(IPj!=PNK;`L$LFU$NFZoAK|MQD z&+^iyPUh5TCb@YjD@AftWQq;*GBYW2I_E8M=A|vu&}?=g@e(y}t5ggGQF4;xCD9Lk z$Pa;;eTu~W+l~jvFn{oe!+GD|^FHr$IIM%UbhvQ|kill`24P9*sR%eE=Hf=;-hZa{;&#sZ4q=?zNA8&7OvQVj9t*frU@{|!< zUq|t4abz!>3&XgZm%i!8;RqPTj;+1m;{ubqRE6Fr4cJY^y6qqox4UgZ2*WF=2i74I0byu{i!5M_gPS2bq#6 z?f5p`ho4`D{v(fIWwHlL6ED$HbIUfHzXU0C!sxr4Z|V8ZaTdfd5j z8Cq2ior=QDSw?e&&*wYeue`lw`-F3*PWs;K=C?33sqnD65It>G)mB^*_mCRF)H$!>tx2ru~Ugs1YI0MM#1iS@}h1 zj}&7zTnLpY)KV&y>`Ysqn}Y=qr792<9zA7q=>kE*D6=H97{c?{98x2W#JpID&JaH8 z3Y4gq#^Sm-ie5Vw6k2YRX*@kV&a-*JdRKyS$SH!OZwd6*v)zvB65`_Y(Xld}fA~qA js~1;Kk|f1qu~`2A{I|BBNY#ns00000NkvXXu0mjf#TAD{ diff --git a/src/main/resources/extra-icons/jenkins_alt@2x.png b/src/main/resources/extra-icons/jenkins_alt@2x.png deleted file mode 100644 index 87a2f2b61759f5168b1d3bf030fceaa8f9c123a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2186 zcmV;52zB>~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00;U>L_t(oN7Yw(R8;pBCNZV|gnD{Fq7!G{ z>@y6qj;xA+f-Ir~Dh1agiW(U~I9NrDf*?(g3FyT3aY|Bo1?W*DtpDqW(GN=pjKE<`O zmAH1M0!P2jM`mg~LdN>ADk;;Vlu9!-8jY1;;=c#2(p9I?99V7B__nP z2dk>EAa*`>+q$(G80YVg zxihBX8HK#{_DPfRo7H%Hvlh*lD)Hp{;aF&KQv;o zNFkA4@o;m;hV|>Qr(ic`M;XxGd|ohIjjN|hsn|xt&wC_l_U82#=ifVu?H?~k&WA>L zk93BTVX6g*{-I=KJ0^yPvL(gESg|Yxi{p%l3J*m~Qw?wU!MBGoH7o#^4(-I_YlraU zS|1T0a;f6@781%B9XNqV;(x4&Qc~8|8>t7Um#&|JmQUuVO$i4`7^@1jW*VP ziQ3|gc-kZMJ%9h2oCBPbSt$!yl}zR%NSTL-JhW45o^8&{4|+8Ueht0 zt=!&y%{g=DLdnbPn>9F6xB-=)Wx>|kdZr*{9_nFg8`|^#TKiE3iJKxYYvwF`Q5pQsX{|_0nSzCb9hH-J3ITZ9&JJ|aT=d1tum3su|kp0%}6kTMU6NR(Awyp1Zo5EZ+!@JU7z zu2k>F{mT`-1o|ZH|E}Mq`5A~d1mZDu#QnQJhV|gV;ewQTP!E`!nVP_IRm_F&@6^v< zG5#7pqV2{VPF>dzE>|Mh&x`LDxvS$l7!l(vNSTL1p%A;fIQ-mPSH@Q{S5*Bqnx5p+ zP`G(D?$wv$hjYa!$Xkg;vm<kgsyyW`!0he(JkE>5KDUKjaxOypAI zZJA0>22M-^F1^QBJuB4OAR14hd_iar_?6iq| zgSk)L?os1Gz7DtuB~mKXG8sm=dLUrY8t4PUK|{_{N`-;5Z;~+sVH)~et+9XZJ!Kw( z60>2LZugALd706zljQDxc7_Za7O{oAyiQ8hVpO^bDV?10tCWrXFu%q*2s!D}q zYUB29J_s;=1osKkxY@8>A(l=OQAp zg!ecs{o^v!UA%yW1_K_9^2ATx9w^s4V}eS>PKyZY$X#iC9v$S{vCq|+p1GsRb0mDV zI_Sga!Y?)z?xE3~6GbHX%7FSd!$1W!aEYPSBs?}h>s}n9#0bZf|;UgTozticx|1BRb zA0g5eRzDC29DRauo&>rasHLfQl2(hN!acas(14WX%P`8zhn-}IVs#F# zrU(#KTKhk9{Y8*{3Hl$Pkqi?(lQ@sUFs%!QD0KbOhEZW9wb`?7F38lXp%`Mz+727u zIXNN%QzlQQKQghBR+Je7lV`ZbZqHB?jh`(<|?^s$2&&e(o`|o%)9u^k=0V=(>?y96~SpWb4 M07*qoM6N<$f*lMd%>V!Z diff --git a/src/main/resources/extra-icons/jest.svg b/src/main/resources/extra-icons/jest.svg deleted file mode 100644 index b2ea0050..00000000 --- a/src/main/resources/extra-icons/jest.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jest_dark.svg b/src/main/resources/extra-icons/jest_dark.svg deleted file mode 100644 index 8e742cab..00000000 --- a/src/main/resources/extra-icons/jest_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jetbrains.svg b/src/main/resources/extra-icons/jetbrains.svg deleted file mode 100644 index f3f76c42..00000000 --- a/src/main/resources/extra-icons/jetbrains.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jfr.svg b/src/main/resources/extra-icons/jfr.svg deleted file mode 100644 index 31f7f8f5..00000000 --- a/src/main/resources/extra-icons/jfr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jfr_dark.svg b/src/main/resources/extra-icons/jfr_dark.svg deleted file mode 100644 index 20256be7..00000000 --- a/src/main/resources/extra-icons/jfr_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jgitver.svg b/src/main/resources/extra-icons/jgitver.svg deleted file mode 100644 index c9f30e16..00000000 --- a/src/main/resources/extra-icons/jgitver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jgitver_dark.svg b/src/main/resources/extra-icons/jgitver_dark.svg deleted file mode 100644 index e62d1492..00000000 --- a/src/main/resources/extra-icons/jgitver_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jinja.svg b/src/main/resources/extra-icons/jinja.svg deleted file mode 100644 index 18aa71cb..00000000 --- a/src/main/resources/extra-icons/jinja.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jinja_dark.svg b/src/main/resources/extra-icons/jinja_dark.svg deleted file mode 100644 index 2f4b7715..00000000 --- a/src/main/resources/extra-icons/jinja_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jitpack.svg b/src/main/resources/extra-icons/jitpack.svg deleted file mode 100644 index 14c987e1..00000000 --- a/src/main/resources/extra-icons/jitpack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jitpack_dark.svg b/src/main/resources/extra-icons/jitpack_dark.svg deleted file mode 100644 index d2a52683..00000000 --- a/src/main/resources/extra-icons/jitpack_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jsbeautify.svg b/src/main/resources/extra-icons/jsbeautify.svg deleted file mode 100644 index ac3dd019..00000000 --- a/src/main/resources/extra-icons/jsbeautify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jsbeautify_alt.svg b/src/main/resources/extra-icons/jsbeautify_alt.svg deleted file mode 100644 index 735da643..00000000 --- a/src/main/resources/extra-icons/jsbeautify_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jsconfig.svg b/src/main/resources/extra-icons/jsconfig.svg deleted file mode 100644 index d6cbf5d3..00000000 --- a/src/main/resources/extra-icons/jsconfig.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jshint.svg b/src/main/resources/extra-icons/jshint.svg deleted file mode 100644 index 399842c5..00000000 --- a/src/main/resources/extra-icons/jshint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jshint_dark.svg b/src/main/resources/extra-icons/jshint_dark.svg deleted file mode 100644 index 0365a5b1..00000000 --- a/src/main/resources/extra-icons/jshint_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/json.svg b/src/main/resources/extra-icons/json.svg deleted file mode 100644 index 1bd024d1..00000000 --- a/src/main/resources/extra-icons/json.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/jsx.svg b/src/main/resources/extra-icons/jsx.svg deleted file mode 100644 index a61b0697..00000000 --- a/src/main/resources/extra-icons/jsx.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/junit5.png b/src/main/resources/extra-icons/junit5.png deleted file mode 100644 index aec449ad9c0f5803c2d9fe11a4523003bbd95179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmV;}0w?{6P)i_@%7<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%hhNHDpIvQUCw~R!KxbR5(wqlHY4mVHn5HXmt_P)&7BSItz*@7+pjL5$Mr1bu$37Bydj| zWM>#UGi{risnVk^q`qfyG;~EYY$lnHb4YfE5lCR-%pyRGjAtB+g=O?kJ8>j*83zLA zq4)#P>EmXYplOQ;5Yv`^r-9`Iev~TfNRknf#SGr2KEeFjMIiPD#K#p5x*c0Z0BPS@ z2M~Q3v}5_+ZKQ5oL;C&*%8Ad2Ei`ID&+aCW$U?uaI`#5V_5IQu=JQE}(=j~! zIE}*-7i;FS%*#3J0oIBhQ(Uj@j`V3}2VCarUh>=iz##ecT>XILJhw*8T^`#G$<|sF z5+2ZXsK!p6p?jvQqG=N?(wS-7fBpQ=B1b|W(^ZLS*8*!PhWQPy&9DOsn!INK0000< KMNUMnLSTaCltyv@ diff --git a/src/main/resources/extra-icons/junit5@2x.png b/src/main/resources/extra-icons/junit5@2x.png deleted file mode 100644 index a073328afbc68ba3db9ea956ba86f9ecbc5fea8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1783 zcmVi_@%7<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%hhNHDpIvQUCx3bxA})R9HvFm)TR3XB5T*WU$n!@CP{4kw7ibdee5sak=P?LJ&)0 zKo$}5fvs4fqE35ZYg<$n8M`@-PF+YqM$t;GB8shyb*X|?w4gu|L|H^BD7%K_%jxsJ zSqR|^c+>IB{21UO&-0%5ob#T@i0GAK|M4p0Wek{Nqhv-^q|BgN>I3`?sz`r>Dk=cH zZXD+|;NPfG`jxF!`7HS{MHW)3b$r4UF_nRKjYeitMazt_QGPHm3*uoQ6$VNn-T($5 zItHGB+u-1>_~@j9&6>IM_pW{;M3?5LC{C5V3A~0k14d1Z%%G0;#fJuhg&+?!1FK1` zByUt{mz#y{iH-C2r*4CR1qxkSphBPK8(QWi8&U?0s-+-GjuXxSS@^xqs8)(xWJUCp zRHny@2|JU;u!CA_h)!Dz16d*Zv^k-Atvs|u!i1-RyXt6Jiz-r%l!rsO5Oe^Mefa&< z1Zv-~j@olR^-A@YOk2`V8Mg3Z!4{&|iZIa*3P2b#A`j86b|^W*-2l6DgG%YkP7cwX zpxea6aq`wg6?GTo(a7z38f|RwN^R|VO8YgJB1+a!s9vB@ogjwlwB0aJh5#esYzzWWO=h>jcq_&GQ?x)02Z)q{vtX8twY$V!5j@5%(PmCn|{vAb>erz}3 zFu^jRC{D{#97+uW4n>61Kr3rCR69=33hsvU@>fDM~e7?9}mXnL5vmIkj}B8zCHnvUBPbLwkJf$7m&&<&|>D_xDW;m>`Pa5kTk&J|D`vJrW53%!42J}PH zB!!(oya5DoVK)QpK^d6R0Q#KOfE6ajEMsH^q9}4xBV#Y9eXxg)wp=7tW$vUda0lZ3 zU?vy#Fkq210NOHEQO~~J)L&i2yP>bVjCzlh($kYCX!u4gS^9cO#Ef|Me2DhkIYo<( zZ;}*eKpb@-ZJ=LD+zFe8Z9)>Yu8Jd*W|`xEYHHt{O;0P1(b$v6JVR_otgOnTxq9h( z2+;`xV4?v`y#OFx1JeOB?23l!u90Xq^DJc6?Dje*Al?Wj)&Ru)L5ZZmOYk65;MZdv z9_F2reQ~dM1A3tpcyxgpONTlt71uE3d+&`0>oaJe<~)g`qkL4a^OgafU{&Y^E%2BF z>PR0D1_Mo#1keShm9gNXiT`&Jznr?ZZAF`+ORN^U*Y}W;&lO6~1f9?V@d!nU;5i9h zZ@~^s!wGLeYk~>_Ur}Ghae9=W%hTPO07JO@HX)fm(?i$)BJ0o)jlsa-rVI4pFP~2m zcRWb>xc@+00oNU`0hJQ4-Ov6S;yPR=T9a1TdiL+NSq2Bm+}T0ToA1%coq8InzsXN+ z?&>5fQqRP%cQ;Wwp5u28dkiBT7ylb9h5RkcX5a^@lNoWLMH?T>m1@N+zqge z$Y@_gg8^H|un{T6#`tA6-IwWN=7rt#!>tNB+I*2J@7GdQTOCyxuhPDM&d|n7KlArs z-r==U;@x z)bN7S^E*e{adL>e3eP>H46rb2max|JWi@d*IeKCCH}N}ANKNcLmlAZt3R)nZ4;G{4 zf>_!oo!lAT46xwej8K@BLX142FfkBIM7VvK;O{wmQt_$@cv$#sXXEv-W5`6{w5-+S z!4RHs=bkZ@0cR9!R>`8iPm)30hix(to&f^DOo%$c-@*(w;n2|f+RPizf{=bmP Z{sRWsd;8OoE`I<3002ovPDHLkV1ldZN5B98 diff --git a/src/main/resources/extra-icons/junit5@2x_dark.png b/src/main/resources/extra-icons/junit5@2x_dark.png deleted file mode 100644 index 999c111b7189591920964646807cb9c6a2e85b59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1802 zcmV+l2le=gP)i_@%7<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%hhNHDpIvQUCx3h)G02R9HvFmTOE?XBfv1&}q*>MpTQ53vPQKzC?!LvCD)hM=&9*q6KbQ^0~WGxH21~ z9R&}7--nma?$y%e?kbw;iO;9|>lZ4I85b0jwgtiC^h4l27y((l+a}{()?iYw!Ufoz z`^qOqirUpK31%2ZFr9WB(E0PA2kX(t9r;pwMTkAnoagGoFDqrA(O z!B1F|Wuum0A}UD7;%lr|Ok0*eyTbU0=NmqRN|I%LABU{i(!=EPjiCt|6g+ZP)yOyEb8mi9GmmIU;* z)ugf+Xzf8Wt%*W0)=jCC_K5IE3Fi^Pi*klm))H-J?;Co9MnVPpq0@{W;${yMmGhhik!BiMP ziWD3Y!04A@3Z|pOB_QyfrJQy*Z<7Rcbv0BpAkxO+UdkHop^YOw^vY;2tvha`m9Chf z5uhQ@g5^^1qJT-oqw#LU6S!!pp!TMQz!%W#sd8&Q)oyQ;r~&1zjg;TrLF>nCw8|aX zfYBiQ2H>UOFadU;JWeFg5fq4ruB3$YMyvuzq`93j!x;#F1X88oD1j$21;AxdLnE!# zWUMVAakGy0R2R{nszNf?XsEfWluC43NkXgBk-o=3FO4S@V0{oJAmV5hm5*YDGwzxo z(OE>_?AFqSUBz^<9evT3N8ff7(R6zWb#E=F(x61emO5HL)J-eh@dO-?u^b}>=FCd; zfHHOuJcHX}KAq_(r$&4UCZN%1D9hSLiWAm&0<$2p2iRo-oQ)N*6uvN&($1QI0ArK6 zh0;InjVCY-qE>;3ONXd3pbrwB_whJyD5KUefo!pbR>crN@VwmJZ0X7XUg2Q-e#945~SV+SyrDUwp(ddp!I@eK3pSP;%{Eh8 z*HTldnwml0K1OiMwI8jZYfw8>#y_Y9I#NOxr6FW?X=C0Sb5F43>kLDOg0_Ab>+_- ze5dY7)XNjX8jg26uL7H#jU3_l{K15i_@%7<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%hhNHDpIvQUCw~Q%OWYR5(wqQcG(SQ5e0&Dl{gAN^ns`D5BJ5Ueh-3G%aabQ>_nB zT4`q{2~xG0i5PLA6VM7ltkhbYX}Zy6|A7nXuDB34R*T8R-=HE?5OTbCGSf^%cOE#q zd(J)I_Z{-z0YW;e(_FVExZ+jbRnP>lqRqKyU*8DzMHHpec=mU^%X(~@;GU}q?p;mv zHtJ~~Oe%NAzIVS^cxhMj{RHSRBrPy86_zx?v-dU=!YZF?W9ESf$GY6;Qgb_96`7-w zmI;fk@m^jNJ$rT0i}K|NhWvgEM8ojKnj9>o;n>LIa7BhqmA7dUry(bV&0G__yG+cu zG95=S9z);5Yv@_JuG7Aj)5Rujm0MXuP6%6=J~K0*^DfOK5TFJpAI+n8c>&JnIoK^? z-C$kXBAb^EGz~;g!Tg;WJf2CyPe+K3jv$s8Mc`}_rxxeiOl%eDD^artb%Q$ZD()Ll zzL^c+$%PP>&v96s3LzN{Av`gLqbrg%!7s9@9MTOm(ZyR0tfZsi-ualG==goXVj$Ov z*^6q%eS(hh!xX&dInbr*1~t)#yHha)f&m;;(iVe!nVzqCN+^*|YVe8)J_sB#$uQ(p z6v~-Fl;#>dpK3%W$1#!`$MEC?2C`Ss z`}C$EmVVMQ755it0yIut^l%^3-t9!`YNKaOf=SxIrno|XR^=io-F6tVcCbd$N;~_X zr86|<7CRN&woR43*f#QIJ@%hJ{}Zev>@hnP+qSu|HW2a~8Z>PMWROq<00000NkvXX Hu0mjf*PK1k diff --git a/src/main/resources/extra-icons/junit5_transparent.svg b/src/main/resources/extra-icons/junit5_transparent.svg deleted file mode 100644 index f484fbdb..00000000 --- a/src/main/resources/extra-icons/junit5_transparent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/junit5_white.svg b/src/main/resources/extra-icons/junit5_white.svg deleted file mode 100644 index 9ab1e6bd..00000000 --- a/src/main/resources/extra-icons/junit5_white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/just.svg b/src/main/resources/extra-icons/just.svg deleted file mode 100644 index c88b8db3..00000000 --- a/src/main/resources/extra-icons/just.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/just_alt.svg b/src/main/resources/extra-icons/just_alt.svg deleted file mode 100644 index 03c33993..00000000 --- a/src/main/resources/extra-icons/just_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/just_alt_dark.svg b/src/main/resources/extra-icons/just_alt_dark.svg deleted file mode 100644 index dad7e45a..00000000 --- a/src/main/resources/extra-icons/just_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/just_dark.svg b/src/main/resources/extra-icons/just_dark.svg deleted file mode 100644 index b0831725..00000000 --- a/src/main/resources/extra-icons/just_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/karate.svg b/src/main/resources/extra-icons/karate.svg deleted file mode 100644 index 3a798205..00000000 --- a/src/main/resources/extra-icons/karate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/karate_dark.svg b/src/main/resources/extra-icons/karate_dark.svg deleted file mode 100644 index bbb605ba..00000000 --- a/src/main/resources/extra-icons/karate_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/karma.svg b/src/main/resources/extra-icons/karma.svg deleted file mode 100644 index 79113f24..00000000 --- a/src/main/resources/extra-icons/karma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/keep.svg b/src/main/resources/extra-icons/keep.svg deleted file mode 100644 index ced40683..00000000 --- a/src/main/resources/extra-icons/keep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/keepass.svg b/src/main/resources/extra-icons/keepass.svg deleted file mode 100644 index 6bc963c0..00000000 --- a/src/main/resources/extra-icons/keepass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/keepass_alt.png b/src/main/resources/extra-icons/keepass_alt.png deleted file mode 100644 index b3a3f5ce14c2b4292e82d6352cdd59920b3ce431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YLAP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00HkwL_t(IPkoZlPt-sZ$4f#mUig3DfO?|~ zD2TE<5Q5=Cxau84g5p&ZH4!u``$IZiH4q>O3BQbikN}BZ)ToQAi5JP*nX>J+Y@csR zcbQ!Z-{hNgUf=gK?aWhZ1psxu8P*chj8T%|aY9*~Xlx{^7n<>9UCk%G}PhF%ZO#MKVSQp@t_nj;$A9`MU#4-yFERQmE9s zr#Ywzb`*){ulV5`TJ9o#_HQ{H-?PCf0c`BM@FC}di_cHCZMcr%Nb=Zff`7fV3iV1< zGyCQ6z#9{67vSNhRjEzx*kITmw5Lu0!folps|xO(k^y%X5Ah-Z2H%>M+R&`&*ZN+Y zRRA@~A1j3NEgA4=%YvW(O7IeY-u5g_t9qp68std0vnP6a|rl>&BEjFEqH(~uTKHe zyhrI<_}hrVgEC+(>i{o$p`Q8dNC5V$b-}yf&q6OXZi#T$D~W!d6U;-vH9uTdSDKH7 zHrE=%YKq?uV%5S!AvmUgLW5|WzWvrIqa$b!ml$mU!oY;MCUMueeyUF8yKhox2-*TE Z%70YAgP \ No newline at end of file diff --git a/src/main/resources/extra-icons/keepass_alt@2x.png b/src/main/resources/extra-icons/keepass_alt@2x.png deleted file mode 100644 index fe07e3a370682c904bf71305be72b212b39065b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1589 zcmV-52Fm$~P)N2bZe?^J zG%heMGBNQWX_Wu~1+qy*K~z{r#g=JoR8WAuaZ1BS#eD99{S ziy`fF1`ss?Srx?P6A(j$Xkx4%jA)E>-b_p9OBJy=3#M(F%_$syrc4?dj0QH>i=P z8&z40W35NkCi%i*EUwu-s;p{IwTe|Y5qCrbt9FqMBKF2kc~7INO@o2YAaVwzaGs3d zToRmsfu;skPWEn+clpBFsNv!dYoNYeR(iwoUId>B;cr2#RJ0s0p@A;1D&0O++�c zzak&jG|C$Ava90a+Q94__RX2Jny_4^0B?oL0-g zx5i+7NGNr!;t7XhHZjBiX3RzQWMfEdZd66aB3O|*?UG*GqS1UX8^5jYVH!e`UThVq z=>gH=P{gC4GB0N~;N3c4^MoVgu-0EeJZ%+>nZHHS2YX`FdN@uyPA91QRDyzs;`IIx zF?w~A`CeUoqonCUNv?oQI2F<4+|WP9(R51JG#P+!4Ojwk%^1YU@@|bbpGeRpk)cdB zi${t0kj`Z3Tz{HEN8_}3tES(Zn>oY-x_AynT!RUp!!N2$2E5?`Y`4h6NdJja(EnL?XI0+LMk)3rv#Vo~j6p?fU7Dc86vu&cHx+nj)XYtvLf&`?bb^r7T1B z@9s;|g@Fvcx65pR#kt^KXpyuATk%|fhPIwek~du50E3;duxP*&ihOAlH1ayumaCt) z*?9!-yPl>q*UX&0nuCA$UC+>2+@l^%5Z(ntgbQFdtTY(l=3{N(t(}^_&3NA%;ezC< zXZUyN_1%3~hW25WK@qEq2Jo`@$V!~y#?p2qq3`>BfR9Yq$po%zSbL2&p%?5qpEB`9 zZye2NI0JI&4FjrJXeG|PxkJ+hdH)yC(2S1#m8R#h?!4W&K>3`JZ_XrX)-V}x1T~ZD*`0Y|kFEkeCKELf$l6rB@$c6(6Jv&z7u7HR+6m5Lb zz>Ll-cVZ`;wKBl{pPSEBbV2Tf1@>P~QyntE)z80;*BCbCE0Y0i!#$w7XrM6^se*xZ zRtA)1tL$mg9F9y!XXBD)VGMybwN=F@gD17w}?J-78jG1_RAtBDS4LoJSc0xd8)qmtQ{Q^ow^egVP{uAz+On z(=NX_gl88xo5eV{BCGOYO=DOCJlq?i6$mog5r|BHf#qNyW;19h%Ih2u8t(ZH%yTQ^ z0cUfhX3F~O`DjDOhz1J7(K=wm_k0xsSG$z{`(29W#w?fO|J69IgsDYNznuDd0#GkEHq_00000NkvXXu0mjfOvCPQ diff --git a/src/main/resources/extra-icons/keepass_alt@2x_dark.png b/src/main/resources/extra-icons/keepass_alt@2x_dark.png deleted file mode 100644 index 707f21c0589517464c4ecfb7ce0201e5a7c368d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1076 zcmV-41k3x0P)N2bZe?^J zG%heMGBNQWX_Wu~1F=a&K~z{r#n)|U%~2c&@I4Q&2qg}SVJ)(mjA>|F^DwL>FP1&D z$-{b{)I)^7nwL`*so z7Q<5of>@=Fsa0`~f2#6Q^h*kg^@K;ZV z_ytnJf5AC( z1u`K)EC2x-2N&QcNQsQIu&!6D)$Ll9cW71rL%z=S4LCtZgIGW+Gyo@%l)$Kbqt&cx ztntJ-&3 zZ9qYb&S;gMrB&tv^PSYz_Xx&3l;^FkaJz5y{jlcTF(n;>50m z1iJtZ|5K0}7-cuiQ1e}iQ_)E?5*3|t+;<0(?Eb1(*rq#UduDo3aKj)x;yawzOALLxVM!NuRKGH=7ml@Z+jT4fy zp7=R3&JmMx`S#fbG(`km>pz)wzv8lar~$ zwVHp_k8^_ZJ6n01niE+7}8@BiFn3Yv{2r?e`@k;tBC)lX66dDnKUeGtzU=-Mw} z7`zS#gSh$3C^b8whx5XV^Rpcz7G>vfwLywq0Jq{J;b0JVwuJ}HuooUOI3Jo2BYyV2 z_tbrtbD8aaGdNo@@f^?v!A7N5g7>&T(dWQ(m;|A|LoeaKW8Q`XARRc(pV2@_Ia+it z@GpOebROWbI|J^5)cAjK=r040^uYs3xCovHi{S}KN&Xf0{(CS7`p$)c0>VWMg)(Rd zDcL~rm$P#|E2KJoNd;7?z9I^Nhtt@9)3Nb**9zQcoX$xspf6}{M>_0=m%w3^I+1Ww z>wtRTK{rwCBUS-~hMbrj4L(@xfXBddzSJoTmdzz(h_r1zXf=h1iS~+3BX6L uEwB$7VH0rjdJm|4tP^wD`U)64D((*t$N2bZe?^J zG%heMGBNQWX_Wu~0qaRbK~y+Tg_2K5R8bVhUrJ^LK@o}0c@t@iaN|N7ZEWF2qQYPx zC@?5$(Vh&#;m*2_nA98^r4*#YCzqK9i zY|i7bcRZ?i4kyK!7ykOj|B$3x!qlnfe8RICoqdVwn2T2>ror#Rujro3EaVy&QRUe! zD^}n;Qs%aQXyPX*(F3~l6n3%~q-3{(Bo6(GMzDMnQL%g7vKh(9IXY zT9B)(SVO3=>=|y51X5NIq^1;TI<(FLcFTictw_Z+ulbCYe>D=&^4kYM>Gz->W!can zRZWJjA;f1nX~kT=9^RzPCg|dQP>awt2D&j0YI|rH`4&lF=W$slaKUue3q0E}=0qCQ z_ZigxNxmN&hJS<-@Q&?rooS-WU;IEu60|;&2}pt`9}N1f49oTQ&N;kRY@({p;j~}H z*jG?$wmjo|74VMGT{Nqto5%I3`q>Xa8b7a(&$AoFXSh~o`=(^1VTzB9=W6pf?b)J| zz%kp!Jvq2;$_yDDUX{JuCI4JjK!tW#$E349=WvbRu!t;c7s=J \ No newline at end of file diff --git a/src/main/resources/extra-icons/kibana.svg b/src/main/resources/extra-icons/kibana.svg deleted file mode 100644 index 0ac9ffa9..00000000 --- a/src/main/resources/extra-icons/kibana.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/kubernetes.svg b/src/main/resources/extra-icons/kubernetes.svg deleted file mode 100644 index 10c10a62..00000000 --- a/src/main/resources/extra-icons/kubernetes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/kubernetes_alt.svg b/src/main/resources/extra-icons/kubernetes_alt.svg deleted file mode 100644 index 10c10a62..00000000 --- a/src/main/resources/extra-icons/kubernetes_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/kubernetes_alt2.svg b/src/main/resources/extra-icons/kubernetes_alt2.svg deleted file mode 100644 index bcb34851..00000000 --- a/src/main/resources/extra-icons/kubernetes_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/kubernetes_alt2_dark.svg b/src/main/resources/extra-icons/kubernetes_alt2_dark.svg deleted file mode 100644 index a5593f6a..00000000 --- a/src/main/resources/extra-icons/kubernetes_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/kubernetes_alt_dark.svg b/src/main/resources/extra-icons/kubernetes_alt_dark.svg deleted file mode 100644 index 10c10a62..00000000 --- a/src/main/resources/extra-icons/kubernetes_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/kubernetes_dark.svg b/src/main/resources/extra-icons/kubernetes_dark.svg deleted file mode 100644 index 05ebb219..00000000 --- a/src/main/resources/extra-icons/kubernetes_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/kustomize.svg b/src/main/resources/extra-icons/kustomize.svg deleted file mode 100644 index 7888f1ed..00000000 --- a/src/main/resources/extra-icons/kustomize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/kustomize_alt.svg b/src/main/resources/extra-icons/kustomize_alt.svg deleted file mode 100644 index e45c7fb2..00000000 --- a/src/main/resources/extra-icons/kustomize_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/lerna.svg b/src/main/resources/extra-icons/lerna.svg deleted file mode 100644 index 007ba433..00000000 --- a/src/main/resources/extra-icons/lerna.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/lerna_dark.svg b/src/main/resources/extra-icons/lerna_dark.svg deleted file mode 100644 index ebc9cd5a..00000000 --- a/src/main/resources/extra-icons/lerna_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/less.svg b/src/main/resources/extra-icons/less.svg deleted file mode 100644 index e2cc425e..00000000 --- a/src/main/resources/extra-icons/less.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/less_dark.svg b/src/main/resources/extra-icons/less_dark.svg deleted file mode 100644 index 6fa84d8c..00000000 --- a/src/main/resources/extra-icons/less_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/lgtm.svg b/src/main/resources/extra-icons/lgtm.svg deleted file mode 100644 index b48f785b..00000000 --- a/src/main/resources/extra-icons/lgtm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/lgtm_alt.svg b/src/main/resources/extra-icons/lgtm_alt.svg deleted file mode 100644 index 7a87c32b..00000000 --- a/src/main/resources/extra-icons/lgtm_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/license.svg b/src/main/resources/extra-icons/license.svg deleted file mode 100644 index c773f166..00000000 --- a/src/main/resources/extra-icons/license.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/license_alt.png b/src/main/resources/extra-icons/license_alt.png deleted file mode 100644 index 9d73547e722b76acdbbd9d2c322b0ef8d9629a4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)N2bZe?^J zG%heMGBNQWX_Wu~0zgSbK~y+TeNtU((@+>bY<_@F!H)|s^vX%G?Mai9q)F2>Y3tC< zc62bKGVi_fa;}#o@m9efp~%2nWvoBIEN16q*+^>jf%oP- z@00g=pS)lYj8$Wpwb*kBlh4L0tR6GbS;H`fefr;s;^=|6nYh8-6~D-hbWeSf-J&He zsGD3>_{5aCY5pd^-)|2iiIYc}3jc-*CRQii;`^ykO{`41>Qc@oJssu&bJ&;dfKI03 z{Hu$93HvMiV$6jYwREiS^W^}*d3J_Q9wZo4N>j5L3l%*v4UFy_v|V^tax<-*!`Gy5 zLS6c*J?sRq-RncnF*)Y0HgFZ5d!o`q=vc~B(-+_4=i){BC`>11z6!~`tz}nOR~aGh~a5K zFAP=1&!G@WVDf_M#4U6+W^vb3iy6B=M7An?02mB;7GoxNEtJFBlq=p(^=L>@ES{1c zr8o9CQp#h^j$7(<{9 diff --git a/src/main/resources/extra-icons/license_alt@2x.png b/src/main/resources/extra-icons/license_alt@2x.png deleted file mode 100644 index ca914cae9a363a84dad35b45591cd7883d04fb87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1648 zcmV-$29NoPP)N2bZe?^J zG%heMGBNQWX_Wu~1?@>hK~z{r)mPbXR8<%stqY2VxCFNc5(84EbMHOp-r2fLmuWkl zY0L655AMD|6qG1SXy@MHc4HAJNUC6Ett>(j&=}E24a6WyV&D%@Vj_kZu|P{&+ByEd z+tU{4ouMKR`fI+2&b{Aq&iDJ4>-k?{=JJ^jYqk+oE%u6P>5YnMtX3_)%4hKvK2v{j zmZfsTHXf9(-x*A^r%hsw%wCv6_dT{wY`r@a}!50nanG&n5LL|7i;ogD%=!-gP2Gh znl0*&&dV-G<{_ZjBDy0c!W&95(7mWwdWW}xPxsiKyQTTuAm?6NV>rPHoO-Z)dzGmD zbdI~j98%joN0fC|3f3GLP}2HW1s0#>5uUrGo9rl9fs@0zu{tEG_avNCxjC4K)E${C zqPt^)w*~}=`k7+;pOtRhK{*GjchkxLt@9C~AS!p)2;Lm%S1i`9G$@ZqcQ=CAuB6yP zt=Z_Q*j9B%oR0_vQMxrMP{MyAh!@K2vU{Z4G58vde6aRMB3$jEf1dMONgUOJ3dtaV zuLH{hPfE9A@TK{iRBFU_Hv=P*=myL2PT}T=2(Bw4qoTN@)Vb!If#XKYakD7V^El}9 z((N$R_3C70B|8#oFB-~KYVia0qG)re(3X zRK=jj^V6iK2xV|0C2eJR~WcY8>xj)Hzu(%j;0 z{+_BmaaS8872B&3fd3rq)Jav!KWpHv!QR;ZT300!$~huGrDEVnwQ-nbg=T0?`f*By zn+=kxkK;(8aS7>rO{#$dm}nR-gSqlYgad;QC~LCRF#+usw)SIYWZZ0!#P-!v0N2pw z7fCG&fVJ|rz_pwKfbCE^tS(ijO0{vI>4yNiZykU>pqlIrsRj;M`f`lb%ehiOrKYar zXHc$%Qf(Z3ja*f2{Zz>Zw@krb#5<`5MJy9E_DUlFCS&P3P-LlA3_hvr`4L7yP_*pf1T&jY>DUH!GLGwIY3#KL`OXvcW-_tNLJxNaDKo2H~6nO9jaKE2<_aUmpe1SBhun zDMcfdH0-=a=q=7lc8r^RntVMwlHJKXp5lJ6{2T0Y&Qh8HC!8FvFBUlc=WeUEmeQU< z8omf`0*8>QII5}aqo}}+(U03XMx{F8&DiPbw(5hyE@m5j;f)bN-3@DYziOflxqNUK zoz#Z$3DXkjqh1i&fM9LC4;%3or2)(6gq>dpZu6&oDYh85aT49@BCheQmez{p<8eT6 zCE(B*)eVFL;eT|_fN2bZe?^J zG%heMGBNQWX_Wu~1)fPnK~z{r#aHW3TV))c;uJ-*c*(qdFd>^!yo?#QL^OVIF@bY> zN@+Q#H_D~ZWjZnqDx*E8EeysSjLF8vmt`u6F<#;=#%cVdVKH;MWMO}RE+)e)#t94v zw;rG8j8jkHrI5JjhbL*@zQ5n^`Q6{HD=RDeUm-kP32Ix#9a_q@Jzyxcs_u&Wbh+Da zDEobev=^VlUZY}bDCxdUB)bxXhfa7?I|_rkQlc8t9vJ%!1TOef%I|@+dn%ZAF97rY zc4ZQ0m+;$pRhK{167tS~u51px;#n`!>4fmmMlhvp^y{wO@c3LHtxSaXdln)+UbEpX z)r=nXo3Vj_g~lU(GkRDv>w0`L zWMD0zEF%X;Oc40oo0N)|+ROQ3<=jx-rRV?FxDD!HeV{I8;8pR4zh~OgTFOZOH#*BgU&ph+xja z{46}*>NMg5wst z-bXEEL^_D*5sSba#{6!|Sc34X6B}(V9|2Z7gg)`NDjS_fo#6HZfsfWeU=~a6CCXTW zUPF2VYjq-D3fO8|(lvsDd&X(h3FP%jC_h_!aMcw2#k!-6CCJAF3hYw88NdS7(io=+ zxi8r2xyNakP~sJLL+K$na+T{@q=Vpc1A$-Ay5*ExBp{XI@I2dar4h^_v)DqHA>5C> zQToEJZ3Wj>x9bViM;~-twsag{E^lK|$7#qvoF#y~79n>Z^D)7G7YP#9AiAbt8V27B z?{jakJjZ7aC(HOM@}Yg6Sw!jtcTbjpMM770Ar0f~cag9Sh8L+=KrNiuk*X;4zE*w< z6b=PDDraLy^BB(^#j0&LOMuG=iq5RIjHm>m{sZ@GY*{L#;(Rqk@6pN`r0*+Dm+rS^ zvji~7Zboawp!{krjEHK1BNhZRNY}ZLUYS**w#b}R z*s@sy1eqbU?_ey?v0avu;3Fl_?w$nE9;Y0ER_??rYMOoSl%WnrhGQJvb{Nn0oDRxS zLU75Ts(*r^oF|#(1s)af{x@{Z_N8)2-}Crwlqqt`uzfLQ`6N3P(%la&mCN};G!N7j z1QYJ35z_DMM`l6$RdgF5OnxExPgi`JY zsuR*45IF;7R}jVvF!HSEE&+1S;m!z1^X)f`oX0%6bg$^H4dI~^><*-4li!eEMV?!N zZIv5D_XwrcQ-p`c>mbn_PI-zM712E>goh$ns}^KLzd6A>qCX%jL3sGzp={mXKXpr) T9`tNK00000NkvXXu0mjfi~ZFV diff --git a/src/main/resources/extra-icons/license_alt_dark.png b/src/main/resources/extra-icons/license_alt_dark.png deleted file mode 100644 index 9510ed3ad9075c677d17f346f5f72ff64543e6e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)N2bZe?^J zG%heMGBNQWX_Wu~0wzgBK~y+TbyCZ2(?Ap*Q63T$BpwSEutNL*-4iw-H#2q|d&c8O zn$kkDV~Lc;c7{|9NomD`LJ?h}3KiCfEl7L>2vuSWLgWKTQgg>lBRix=y3*)AX3jlx z&@`}jY{rZ5bvwkjXiN$`)UGkcW>ooTFu_iGAr9O}`sbiy_N(jGu-dbRaQ^MI^p8%H z*!B9{3DurQAhdHVCcAQ|_S{SA+kP%;TV7J_*#jDpoyx}TGivM~}Z~(!%{E~JLhP>@Do^N1X_G`+odmyPwb)0 z9oFw}xry5{J_sR>Aq&(FI_3U&7^1pvk64JC%MXpSu-+_<=2sRs>_N82Uo(I5uyhs4 zZO$O(;`KsR^0*EYU;f?QJb$N(n(siIa`Dk4rmj14_9Du@$ubFnqvto{3r|U3X%@v!uV7JVa5$0nBOr+ zc2sm|gk4E@QbgX;-=`u<(2(#2Fwpn{2yeC2mm)Dyyd12Vzp}N3o;7e9xR?%0NFzxX zE-543d&UzUlQ*i2oLJwJIay1M6ycZkSM|K5rIno+zXm2FpnSladP$Yw0%FTNygY*Q z4ikl0Rmwwqpq+AHXSnFC*)T7vG@|0p1$cE2f=ae3eKf}6WH2p<5JG${Q#JM P00000NkvXXu0mjfu0$w- diff --git a/src/main/resources/extra-icons/license_dark.svg b/src/main/resources/extra-icons/license_dark.svg deleted file mode 100644 index 4a2c211c..00000000 --- a/src/main/resources/extra-icons/license_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/lighttpd.svg b/src/main/resources/extra-icons/lighttpd.svg deleted file mode 100644 index 9538ad97..00000000 --- a/src/main/resources/extra-icons/lighttpd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/liquibase.svg b/src/main/resources/extra-icons/liquibase.svg deleted file mode 100644 index 7c4fb92c..00000000 --- a/src/main/resources/extra-icons/liquibase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/liquibase_alt.svg b/src/main/resources/extra-icons/liquibase_alt.svg deleted file mode 100644 index 3ede9709..00000000 --- a/src/main/resources/extra-icons/liquibase_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/liquibase_alt_dark.svg b/src/main/resources/extra-icons/liquibase_alt_dark.svg deleted file mode 100644 index 7c4fb92c..00000000 --- a/src/main/resources/extra-icons/liquibase_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/liquibase_dark.svg b/src/main/resources/extra-icons/liquibase_dark.svg deleted file mode 100644 index 3ede9709..00000000 --- a/src/main/resources/extra-icons/liquibase_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/log4j.svg b/src/main/resources/extra-icons/log4j.svg deleted file mode 100644 index 8884b547..00000000 --- a/src/main/resources/extra-icons/log4j.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/log4j_dark.svg b/src/main/resources/extra-icons/log4j_dark.svg deleted file mode 100644 index 0dbab671..00000000 --- a/src/main/resources/extra-icons/log4j_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/logback.svg b/src/main/resources/extra-icons/logback.svg deleted file mode 100644 index 65ef01c5..00000000 --- a/src/main/resources/extra-icons/logback.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/logback_dark.svg b/src/main/resources/extra-icons/logback_dark.svg deleted file mode 100644 index d5864f39..00000000 --- a/src/main/resources/extra-icons/logback_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/logstash.svg b/src/main/resources/extra-icons/logstash.svg deleted file mode 100644 index 4b56a047..00000000 --- a/src/main/resources/extra-icons/logstash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/lombok.svg b/src/main/resources/extra-icons/lombok.svg deleted file mode 100644 index d054473c..00000000 --- a/src/main/resources/extra-icons/lombok.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/markdown.svg b/src/main/resources/extra-icons/markdown.svg deleted file mode 100644 index c1335a7e..00000000 --- a/src/main/resources/extra-icons/markdown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/markdown_alt.svg b/src/main/resources/extra-icons/markdown_alt.svg deleted file mode 100644 index 2e947631..00000000 --- a/src/main/resources/extra-icons/markdown_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/markdown_alt2.svg b/src/main/resources/extra-icons/markdown_alt2.svg deleted file mode 100644 index 48436e89..00000000 --- a/src/main/resources/extra-icons/markdown_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/markdown_alt3.svg b/src/main/resources/extra-icons/markdown_alt3.svg deleted file mode 100644 index 941c9223..00000000 --- a/src/main/resources/extra-icons/markdown_alt3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/markdown_alt3_dark.svg b/src/main/resources/extra-icons/markdown_alt3_dark.svg deleted file mode 100644 index 6cf87838..00000000 --- a/src/main/resources/extra-icons/markdown_alt3_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/matroska.svg b/src/main/resources/extra-icons/matroska.svg deleted file mode 100644 index 74c1e62a..00000000 --- a/src/main/resources/extra-icons/matroska.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/matroska_dark.svg b/src/main/resources/extra-icons/matroska_dark.svg deleted file mode 100644 index 2207d505..00000000 --- a/src/main/resources/extra-icons/matroska_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mdx.svg b/src/main/resources/extra-icons/mdx.svg deleted file mode 100644 index 0950a04c..00000000 --- a/src/main/resources/extra-icons/mdx.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mdx_alt.svg b/src/main/resources/extra-icons/mdx_alt.svg deleted file mode 100644 index c1f2e65e..00000000 --- a/src/main/resources/extra-icons/mdx_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mdx_alt2.svg b/src/main/resources/extra-icons/mdx_alt2.svg deleted file mode 100644 index 062550f8..00000000 --- a/src/main/resources/extra-icons/mdx_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mdx_alt_dark.svg b/src/main/resources/extra-icons/mdx_alt_dark.svg deleted file mode 100644 index abf80932..00000000 --- a/src/main/resources/extra-icons/mdx_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mdx_dark.svg b/src/main/resources/extra-icons/mdx_dark.svg deleted file mode 100644 index 67e9fe78..00000000 --- a/src/main/resources/extra-icons/mdx_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mergify.svg b/src/main/resources/extra-icons/mergify.svg deleted file mode 100644 index 40e66ff8..00000000 --- a/src/main/resources/extra-icons/mergify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mermaid.svg b/src/main/resources/extra-icons/mermaid.svg deleted file mode 100644 index 07a228df..00000000 --- a/src/main/resources/extra-icons/mermaid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/metro.svg b/src/main/resources/extra-icons/metro.svg deleted file mode 100644 index 7b0dae77..00000000 --- a/src/main/resources/extra-icons/metro.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mindmap.svg b/src/main/resources/extra-icons/mindmap.svg deleted file mode 100644 index 132980d4..00000000 --- a/src/main/resources/extra-icons/mindmap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mkdocs.svg b/src/main/resources/extra-icons/mkdocs.svg deleted file mode 100644 index 2ac30da3..00000000 --- a/src/main/resources/extra-icons/mkdocs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mkdocs_dark.svg b/src/main/resources/extra-icons/mkdocs_dark.svg deleted file mode 100644 index 5e3bde12..00000000 --- a/src/main/resources/extra-icons/mkdocs_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mockk.svg b/src/main/resources/extra-icons/mockk.svg deleted file mode 100644 index a7b147de..00000000 --- a/src/main/resources/extra-icons/mockk.svg +++ /dev/null @@ -1 +0,0 @@ -K \ No newline at end of file diff --git a/src/main/resources/extra-icons/moduleinfo.svg b/src/main/resources/extra-icons/moduleinfo.svg deleted file mode 100644 index e7e7b5c8..00000000 --- a/src/main/resources/extra-icons/moduleinfo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/moduleinfo_alt.svg b/src/main/resources/extra-icons/moduleinfo_alt.svg deleted file mode 100644 index dca8d50a..00000000 --- a/src/main/resources/extra-icons/moduleinfo_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/moduleinfo_alt_dark.svg b/src/main/resources/extra-icons/moduleinfo_alt_dark.svg deleted file mode 100644 index 3c517023..00000000 --- a/src/main/resources/extra-icons/moduleinfo_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/moduleinfo_dark.svg b/src/main/resources/extra-icons/moduleinfo_dark.svg deleted file mode 100644 index 218c337a..00000000 --- a/src/main/resources/extra-icons/moduleinfo_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mongodb.svg b/src/main/resources/extra-icons/mongodb.svg deleted file mode 100644 index 1146a0c8..00000000 --- a/src/main/resources/extra-icons/mongodb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/monkey's_audio.svg b/src/main/resources/extra-icons/monkey's_audio.svg deleted file mode 100644 index 481e31f9..00000000 --- a/src/main/resources/extra-icons/monkey's_audio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mpeg.svg b/src/main/resources/extra-icons/mpeg.svg deleted file mode 100644 index 0c8bdb7e..00000000 --- a/src/main/resources/extra-icons/mpeg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mpeg_dark.svg b/src/main/resources/extra-icons/mpeg_dark.svg deleted file mode 100644 index de820f26..00000000 --- a/src/main/resources/extra-icons/mpeg_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/msazure.svg b/src/main/resources/extra-icons/msazure.svg deleted file mode 100644 index 1b78a048..00000000 --- a/src/main/resources/extra-icons/msazure.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/msexe.svg b/src/main/resources/extra-icons/msexe.svg deleted file mode 100644 index faa0c9f8..00000000 --- a/src/main/resources/extra-icons/msexe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/muse.svg b/src/main/resources/extra-icons/muse.svg deleted file mode 100644 index 9882ead5..00000000 --- a/src/main/resources/extra-icons/muse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mvnw.svg b/src/main/resources/extra-icons/mvnw.svg deleted file mode 100644 index f063f9dc..00000000 --- a/src/main/resources/extra-icons/mvnw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mvnw_dark.svg b/src/main/resources/extra-icons/mvnw_dark.svg deleted file mode 100644 index 25609dfc..00000000 --- a/src/main/resources/extra-icons/mvnw_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/my.svg b/src/main/resources/extra-icons/my.svg deleted file mode 100644 index 0049c607..00000000 --- a/src/main/resources/extra-icons/my.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/mysqlworkbench.svg b/src/main/resources/extra-icons/mysqlworkbench.svg deleted file mode 100644 index 4f5d3367..00000000 --- a/src/main/resources/extra-icons/mysqlworkbench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs.svg b/src/main/resources/extra-icons/nestjs.svg deleted file mode 100644 index 7955bd7b..00000000 --- a/src/main/resources/extra-icons/nestjs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_adapter.svg b/src/main/resources/extra-icons/nestjs_adapter.svg deleted file mode 100644 index 59e1b6e6..00000000 --- a/src/main/resources/extra-icons/nestjs_adapter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_controller.svg b/src/main/resources/extra-icons/nestjs_controller.svg deleted file mode 100644 index e599cb47..00000000 --- a/src/main/resources/extra-icons/nestjs_controller.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_controller_test.svg b/src/main/resources/extra-icons/nestjs_controller_test.svg deleted file mode 100644 index 2608e9fc..00000000 --- a/src/main/resources/extra-icons/nestjs_controller_test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_decorator.svg b/src/main/resources/extra-icons/nestjs_decorator.svg deleted file mode 100644 index 4d66bfae..00000000 --- a/src/main/resources/extra-icons/nestjs_decorator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_dto.svg b/src/main/resources/extra-icons/nestjs_dto.svg deleted file mode 100644 index 9fe6e45f..00000000 --- a/src/main/resources/extra-icons/nestjs_dto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_entity.svg b/src/main/resources/extra-icons/nestjs_entity.svg deleted file mode 100644 index acc3d3a1..00000000 --- a/src/main/resources/extra-icons/nestjs_entity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_filter.svg b/src/main/resources/extra-icons/nestjs_filter.svg deleted file mode 100644 index 69623b26..00000000 --- a/src/main/resources/extra-icons/nestjs_filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_gateway.svg b/src/main/resources/extra-icons/nestjs_gateway.svg deleted file mode 100644 index 0e5d4985..00000000 --- a/src/main/resources/extra-icons/nestjs_gateway.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_guard.svg b/src/main/resources/extra-icons/nestjs_guard.svg deleted file mode 100644 index 85213281..00000000 --- a/src/main/resources/extra-icons/nestjs_guard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_interceptor.svg b/src/main/resources/extra-icons/nestjs_interceptor.svg deleted file mode 100644 index 97a68870..00000000 --- a/src/main/resources/extra-icons/nestjs_interceptor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_middleware.svg b/src/main/resources/extra-icons/nestjs_middleware.svg deleted file mode 100644 index c215453b..00000000 --- a/src/main/resources/extra-icons/nestjs_middleware.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_model.svg b/src/main/resources/extra-icons/nestjs_model.svg deleted file mode 100644 index c42b8546..00000000 --- a/src/main/resources/extra-icons/nestjs_model.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_module.svg b/src/main/resources/extra-icons/nestjs_module.svg deleted file mode 100644 index ba0a1b7c..00000000 --- a/src/main/resources/extra-icons/nestjs_module.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_pipe.svg b/src/main/resources/extra-icons/nestjs_pipe.svg deleted file mode 100644 index 4d3f54cd..00000000 --- a/src/main/resources/extra-icons/nestjs_pipe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_service.svg b/src/main/resources/extra-icons/nestjs_service.svg deleted file mode 100644 index 07afa339..00000000 --- a/src/main/resources/extra-icons/nestjs_service.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nestjs_service_test.svg b/src/main/resources/extra-icons/nestjs_service_test.svg deleted file mode 100644 index 7604aac7..00000000 --- a/src/main/resources/extra-icons/nestjs_service_test.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/netlify.svg b/src/main/resources/extra-icons/netlify.svg deleted file mode 100644 index b86e9fb9..00000000 --- a/src/main/resources/extra-icons/netlify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/7zip.svg b/src/main/resources/extra-icons/newui/7zip.svg deleted file mode 100644 index 91ac6c50..00000000 --- a/src/main/resources/extra-icons/newui/7zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/archive.svg b/src/main/resources/extra-icons/newui/archive.svg deleted file mode 100644 index 0ae4c9d3..00000000 --- a/src/main/resources/extra-icons/newui/archive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/archive_dark.svg b/src/main/resources/extra-icons/newui/archive_dark.svg deleted file mode 100644 index be0e9828..00000000 --- a/src/main/resources/extra-icons/newui/archive_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/avro.svg b/src/main/resources/extra-icons/newui/avro.svg deleted file mode 100644 index 9ba97c4a..00000000 --- a/src/main/resources/extra-icons/newui/avro.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/avro_dark.svg b/src/main/resources/extra-icons/newui/avro_dark.svg deleted file mode 100644 index e2ca0975..00000000 --- a/src/main/resources/extra-icons/newui/avro_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/c.svg b/src/main/resources/extra-icons/newui/c.svg deleted file mode 100644 index 95b0c34e..00000000 --- a/src/main/resources/extra-icons/newui/c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/c_dark.svg b/src/main/resources/extra-icons/newui/c_dark.svg deleted file mode 100644 index 71b88e36..00000000 --- a/src/main/resources/extra-icons/newui/c_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/config.svg b/src/main/resources/extra-icons/newui/config.svg deleted file mode 100644 index a27c844d..00000000 --- a/src/main/resources/extra-icons/newui/config.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/config_dark.svg b/src/main/resources/extra-icons/newui/config_dark.svg deleted file mode 100644 index 88f0f87c..00000000 --- a/src/main/resources/extra-icons/newui/config_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/cpp.svg b/src/main/resources/extra-icons/newui/cpp.svg deleted file mode 100644 index 34dbd36a..00000000 --- a/src/main/resources/extra-icons/newui/cpp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/cpp_dark.svg b/src/main/resources/extra-icons/newui/cpp_dark.svg deleted file mode 100644 index 32dc255b..00000000 --- a/src/main/resources/extra-icons/newui/cpp_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_db2.svg b/src/main/resources/extra-icons/newui/folder_db2.svg deleted file mode 100644 index 64988ab7..00000000 --- a/src/main/resources/extra-icons/newui/folder_db2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_db2_dark.svg b/src/main/resources/extra-icons/newui/folder_db2_dark.svg deleted file mode 100644 index 7c2c3ae7..00000000 --- a/src/main/resources/extra-icons/newui/folder_db2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_fleet.svg b/src/main/resources/extra-icons/newui/folder_fleet.svg deleted file mode 100644 index fe881021..00000000 --- a/src/main/resources/extra-icons/newui/folder_fleet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_fleet_dark.svg b/src/main/resources/extra-icons/newui/folder_fleet_dark.svg deleted file mode 100644 index f49a1ee1..00000000 --- a/src/main/resources/extra-icons/newui/folder_fleet_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_h2.svg b/src/main/resources/extra-icons/newui/folder_h2.svg deleted file mode 100644 index ad3ceb80..00000000 --- a/src/main/resources/extra-icons/newui/folder_h2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_h2_dark.svg b/src/main/resources/extra-icons/newui/folder_h2_dark.svg deleted file mode 100644 index 6e0a817a..00000000 --- a/src/main/resources/extra-icons/newui/folder_h2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_hsqldb.svg b/src/main/resources/extra-icons/newui/folder_hsqldb.svg deleted file mode 100644 index b74429bf..00000000 --- a/src/main/resources/extra-icons/newui/folder_hsqldb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_hsqldb_dark.svg b/src/main/resources/extra-icons/newui/folder_hsqldb_dark.svg deleted file mode 100644 index 532bb379..00000000 --- a/src/main/resources/extra-icons/newui/folder_hsqldb_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_jpabuddy.svg b/src/main/resources/extra-icons/newui/folder_jpabuddy.svg deleted file mode 100644 index 83a3eec8..00000000 --- a/src/main/resources/extra-icons/newui/folder_jpabuddy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt.svg b/src/main/resources/extra-icons/newui/folder_jpabuddy_alt.svg deleted file mode 100644 index 86405cd1..00000000 --- a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt2.svg b/src/main/resources/extra-icons/newui/folder_jpabuddy_alt2.svg deleted file mode 100644 index 966be972..00000000 --- a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt2_dark.svg b/src/main/resources/extra-icons/newui/folder_jpabuddy_alt2_dark.svg deleted file mode 100644 index a1174ce2..00000000 --- a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt3.svg b/src/main/resources/extra-icons/newui/folder_jpabuddy_alt3.svg deleted file mode 100644 index 38f837d5..00000000 --- a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt_dark.svg b/src/main/resources/extra-icons/newui/folder_jpabuddy_alt_dark.svg deleted file mode 100644 index 8d78c968..00000000 --- a/src/main/resources/extra-icons/newui/folder_jpabuddy_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_jpabuddy_dark.svg b/src/main/resources/extra-icons/newui/folder_jpabuddy_dark.svg deleted file mode 100644 index db58e478..00000000 --- a/src/main/resources/extra-icons/newui/folder_jpabuddy_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_mariadb.svg b/src/main/resources/extra-icons/newui/folder_mariadb.svg deleted file mode 100644 index 3190468a..00000000 --- a/src/main/resources/extra-icons/newui/folder_mariadb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_mariadb_dark.svg b/src/main/resources/extra-icons/newui/folder_mariadb_dark.svg deleted file mode 100644 index 4cf8c038..00000000 --- a/src/main/resources/extra-icons/newui/folder_mariadb_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_mysql.svg b/src/main/resources/extra-icons/newui/folder_mysql.svg deleted file mode 100644 index 416f3b77..00000000 --- a/src/main/resources/extra-icons/newui/folder_mysql.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_mysql_dark.svg b/src/main/resources/extra-icons/newui/folder_mysql_dark.svg deleted file mode 100644 index 4160af8c..00000000 --- a/src/main/resources/extra-icons/newui/folder_mysql_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_oracle.svg b/src/main/resources/extra-icons/newui/folder_oracle.svg deleted file mode 100644 index 57acadae..00000000 --- a/src/main/resources/extra-icons/newui/folder_oracle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_oracle_dark.svg b/src/main/resources/extra-icons/newui/folder_oracle_dark.svg deleted file mode 100644 index ced8d9dc..00000000 --- a/src/main/resources/extra-icons/newui/folder_oracle_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_android.svg b/src/main/resources/extra-icons/newui/folder_os_android.svg deleted file mode 100644 index 3c55ec76..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_android.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_android_dark.svg b/src/main/resources/extra-icons/newui/folder_os_android_dark.svg deleted file mode 100644 index 2a4a3769..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_android_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_ios.svg b/src/main/resources/extra-icons/newui/folder_os_ios.svg deleted file mode 100644 index 44c3cce4..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_ios.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_ios_dark.svg b/src/main/resources/extra-icons/newui/folder_os_ios_dark.svg deleted file mode 100644 index 9678d64a..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_ios_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_linux.svg b/src/main/resources/extra-icons/newui/folder_os_linux.svg deleted file mode 100644 index 59418789..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_linux.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_linux_dark.svg b/src/main/resources/extra-icons/newui/folder_os_linux_dark.svg deleted file mode 100644 index 5c4c2d80..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_linux_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_macos.svg b/src/main/resources/extra-icons/newui/folder_os_macos.svg deleted file mode 100644 index a3dc8cc9..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_macos.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_macos_dark.svg b/src/main/resources/extra-icons/newui/folder_os_macos_dark.svg deleted file mode 100644 index 2e38fd23..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_macos_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_web.svg b/src/main/resources/extra-icons/newui/folder_os_web.svg deleted file mode 100644 index 9930cb1e..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_web.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_web_dark.svg b/src/main/resources/extra-icons/newui/folder_os_web_dark.svg deleted file mode 100644 index 156f9be3..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_web_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_windows.svg b/src/main/resources/extra-icons/newui/folder_os_windows.svg deleted file mode 100644 index 06794997..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_windows.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_os_windows_dark.svg b/src/main/resources/extra-icons/newui/folder_os_windows_dark.svg deleted file mode 100644 index c3727223..00000000 --- a/src/main/resources/extra-icons/newui/folder_os_windows_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_postgresql.svg b/src/main/resources/extra-icons/newui/folder_postgresql.svg deleted file mode 100644 index 28ec8adf..00000000 --- a/src/main/resources/extra-icons/newui/folder_postgresql.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_postgresql_dark.svg b/src/main/resources/extra-icons/newui/folder_postgresql_dark.svg deleted file mode 100644 index 0fb65a40..00000000 --- a/src/main/resources/extra-icons/newui/folder_postgresql_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_pytest_cache.svg b/src/main/resources/extra-icons/newui/folder_pytest_cache.svg deleted file mode 100644 index 41213ce1..00000000 --- a/src/main/resources/extra-icons/newui/folder_pytest_cache.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_pytest_cache_dark.svg b/src/main/resources/extra-icons/newui/folder_pytest_cache_dark.svg deleted file mode 100644 index 43ae78e8..00000000 --- a/src/main/resources/extra-icons/newui/folder_pytest_cache_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_python_venv.svg b/src/main/resources/extra-icons/newui/folder_python_venv.svg deleted file mode 100644 index 0f8c9dbe..00000000 --- a/src/main/resources/extra-icons/newui/folder_python_venv.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_python_venv_dark.svg b/src/main/resources/extra-icons/newui/folder_python_venv_dark.svg deleted file mode 100644 index 9e69e191..00000000 --- a/src/main/resources/extra-icons/newui/folder_python_venv_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_sqlite.svg b/src/main/resources/extra-icons/newui/folder_sqlite.svg deleted file mode 100644 index 705f5b4a..00000000 --- a/src/main/resources/extra-icons/newui/folder_sqlite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_sqlite_dark.svg b/src/main/resources/extra-icons/newui/folder_sqlite_dark.svg deleted file mode 100644 index 76db5259..00000000 --- a/src/main/resources/extra-icons/newui/folder_sqlite_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_sqlserver.svg b/src/main/resources/extra-icons/newui/folder_sqlserver.svg deleted file mode 100644 index 2480f39b..00000000 --- a/src/main/resources/extra-icons/newui/folder_sqlserver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_sqlserver_dark.svg b/src/main/resources/extra-icons/newui/folder_sqlserver_dark.svg deleted file mode 100644 index dc8ebcb2..00000000 --- a/src/main/resources/extra-icons/newui/folder_sqlserver_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_teamcity.svg b/src/main/resources/extra-icons/newui/folder_teamcity.svg deleted file mode 100644 index 2014dca7..00000000 --- a/src/main/resources/extra-icons/newui/folder_teamcity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_teamcity_dark.svg b/src/main/resources/extra-icons/newui/folder_teamcity_dark.svg deleted file mode 100644 index da7b8778..00000000 --- a/src/main/resources/extra-icons/newui/folder_teamcity_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_tmp.svg b/src/main/resources/extra-icons/newui/folder_tmp.svg deleted file mode 100644 index 6661d9ad..00000000 --- a/src/main/resources/extra-icons/newui/folder_tmp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/folder_tmp_dark.svg b/src/main/resources/extra-icons/newui/folder_tmp_dark.svg deleted file mode 100644 index d78314ca..00000000 --- a/src/main/resources/extra-icons/newui/folder_tmp_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/h.svg b/src/main/resources/extra-icons/newui/h.svg deleted file mode 100644 index 6fa809ee..00000000 --- a/src/main/resources/extra-icons/newui/h.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/h_dark.svg b/src/main/resources/extra-icons/newui/h_dark.svg deleted file mode 100644 index 27e335e3..00000000 --- a/src/main/resources/extra-icons/newui/h_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helm.svg b/src/main/resources/extra-icons/newui/helm.svg deleted file mode 100644 index 2aea62e9..00000000 --- a/src/main/resources/extra-icons/newui/helm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmChart.svg b/src/main/resources/extra-icons/newui/helmChart.svg deleted file mode 100644 index e74fa991..00000000 --- a/src/main/resources/extra-icons/newui/helmChart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmChart_dark.svg b/src/main/resources/extra-icons/newui/helmChart_dark.svg deleted file mode 100644 index cae34671..00000000 --- a/src/main/resources/extra-icons/newui/helmChart_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmChartsDirectory.svg b/src/main/resources/extra-icons/newui/helmChartsDirectory.svg deleted file mode 100644 index f655c829..00000000 --- a/src/main/resources/extra-icons/newui/helmChartsDirectory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmChartsDirectory_dark.svg b/src/main/resources/extra-icons/newui/helmChartsDirectory_dark.svg deleted file mode 100644 index 1256eceb..00000000 --- a/src/main/resources/extra-icons/newui/helmChartsDirectory_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmDirectory.svg b/src/main/resources/extra-icons/newui/helmDirectory.svg deleted file mode 100644 index 2ead5163..00000000 --- a/src/main/resources/extra-icons/newui/helmDirectory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmDirectory_dark.svg b/src/main/resources/extra-icons/newui/helmDirectory_dark.svg deleted file mode 100644 index cee1d902..00000000 --- a/src/main/resources/extra-icons/newui/helmDirectory_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmNotes.svg b/src/main/resources/extra-icons/newui/helmNotes.svg deleted file mode 100644 index c13b24e5..00000000 --- a/src/main/resources/extra-icons/newui/helmNotes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmNotes_dark.svg b/src/main/resources/extra-icons/newui/helmNotes_dark.svg deleted file mode 100644 index 8a545bad..00000000 --- a/src/main/resources/extra-icons/newui/helmNotes_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmRequirementsYaml.svg b/src/main/resources/extra-icons/newui/helmRequirementsYaml.svg deleted file mode 100644 index a418b99f..00000000 --- a/src/main/resources/extra-icons/newui/helmRequirementsYaml.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmRequirementsYaml_dark.svg b/src/main/resources/extra-icons/newui/helmRequirementsYaml_dark.svg deleted file mode 100644 index 341ee0d7..00000000 --- a/src/main/resources/extra-icons/newui/helmRequirementsYaml_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmTemplatesDirectory.svg b/src/main/resources/extra-icons/newui/helmTemplatesDirectory.svg deleted file mode 100644 index 59c91266..00000000 --- a/src/main/resources/extra-icons/newui/helmTemplatesDirectory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmTemplatesDirectory_dark.svg b/src/main/resources/extra-icons/newui/helmTemplatesDirectory_dark.svg deleted file mode 100644 index 8ecea50f..00000000 --- a/src/main/resources/extra-icons/newui/helmTemplatesDirectory_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmTemplatesTestDirectory.svg b/src/main/resources/extra-icons/newui/helmTemplatesTestDirectory.svg deleted file mode 100644 index 24254342..00000000 --- a/src/main/resources/extra-icons/newui/helmTemplatesTestDirectory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmTemplatesTestDirectory_dark.svg b/src/main/resources/extra-icons/newui/helmTemplatesTestDirectory_dark.svg deleted file mode 100644 index 30c12b10..00000000 --- a/src/main/resources/extra-icons/newui/helmTemplatesTestDirectory_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmUndeployable.svg b/src/main/resources/extra-icons/newui/helmUndeployable.svg deleted file mode 100644 index f03a5842..00000000 --- a/src/main/resources/extra-icons/newui/helmUndeployable.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmUndeployable_dark.svg b/src/main/resources/extra-icons/newui/helmUndeployable_dark.svg deleted file mode 100644 index 31106a67..00000000 --- a/src/main/resources/extra-icons/newui/helmUndeployable_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmValues.svg b/src/main/resources/extra-icons/newui/helmValues.svg deleted file mode 100644 index 296273f3..00000000 --- a/src/main/resources/extra-icons/newui/helmValues.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmValues_dark.svg b/src/main/resources/extra-icons/newui/helmValues_dark.svg deleted file mode 100644 index bca7a613..00000000 --- a/src/main/resources/extra-icons/newui/helmValues_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helm_dark.svg b/src/main/resources/extra-icons/newui/helm_dark.svg deleted file mode 100644 index c22e7686..00000000 --- a/src/main/resources/extra-icons/newui/helm_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmlogo.svg b/src/main/resources/extra-icons/newui/helmlogo.svg deleted file mode 100644 index e8990628..00000000 --- a/src/main/resources/extra-icons/newui/helmlogo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/helmlogo_alt.svg b/src/main/resources/extra-icons/newui/helmlogo_alt.svg deleted file mode 100644 index 13172304..00000000 --- a/src/main/resources/extra-icons/newui/helmlogo_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/abstractException_.svg b/src/main/resources/extra-icons/newui/ide/abstractException_.svg deleted file mode 100644 index 979ddf2a..00000000 --- a/src/main/resources/extra-icons/newui/ide/abstractException_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/abstractException__dark.svg b/src/main/resources/extra-icons/newui/ide/abstractException__dark.svg deleted file mode 100644 index 60086fa9..00000000 --- a/src/main/resources/extra-icons/newui/ide/abstractException__dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enumKotlin_.svg b/src/main/resources/extra-icons/newui/ide/enumKotlin_.svg deleted file mode 100644 index 8a5c2397..00000000 --- a/src/main/resources/extra-icons/newui/ide/enumKotlin_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enumKotlin__dark.svg b/src/main/resources/extra-icons/newui/ide/enumKotlin__dark.svg deleted file mode 100644 index 03386724..00000000 --- a/src/main/resources/extra-icons/newui/ide/enumKotlin__dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enumKotlin_alt.svg b/src/main/resources/extra-icons/newui/ide/enumKotlin_alt.svg deleted file mode 100644 index 6da3d7e5..00000000 --- a/src/main/resources/extra-icons/newui/ide/enumKotlin_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enumKotlin_alt2.svg b/src/main/resources/extra-icons/newui/ide/enumKotlin_alt2.svg deleted file mode 100644 index 0f28de8b..00000000 --- a/src/main/resources/extra-icons/newui/ide/enumKotlin_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enumKotlin_alt2_dark.svg b/src/main/resources/extra-icons/newui/ide/enumKotlin_alt2_dark.svg deleted file mode 100644 index 371a53bd..00000000 --- a/src/main/resources/extra-icons/newui/ide/enumKotlin_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enumKotlin_alt_dark.svg b/src/main/resources/extra-icons/newui/ide/enumKotlin_alt_dark.svg deleted file mode 100644 index d0c7c96f..00000000 --- a/src/main/resources/extra-icons/newui/ide/enumKotlin_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enum_.svg b/src/main/resources/extra-icons/newui/ide/enum_.svg deleted file mode 100644 index 1cb35b34..00000000 --- a/src/main/resources/extra-icons/newui/ide/enum_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enum__dark.svg b/src/main/resources/extra-icons/newui/ide/enum__dark.svg deleted file mode 100644 index 7a2ee5ea..00000000 --- a/src/main/resources/extra-icons/newui/ide/enum__dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enum_alt.svg b/src/main/resources/extra-icons/newui/ide/enum_alt.svg deleted file mode 100644 index 4bf7893f..00000000 --- a/src/main/resources/extra-icons/newui/ide/enum_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enum_alt2.svg b/src/main/resources/extra-icons/newui/ide/enum_alt2.svg deleted file mode 100644 index 3c9cf1ae..00000000 --- a/src/main/resources/extra-icons/newui/ide/enum_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enum_alt2_dark.svg b/src/main/resources/extra-icons/newui/ide/enum_alt2_dark.svg deleted file mode 100644 index 6f2002ee..00000000 --- a/src/main/resources/extra-icons/newui/ide/enum_alt2_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/enum_alt_dark.svg b/src/main/resources/extra-icons/newui/ide/enum_alt_dark.svg deleted file mode 100644 index 72dd31d2..00000000 --- a/src/main/resources/extra-icons/newui/ide/enum_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/exceptionClass_.svg b/src/main/resources/extra-icons/newui/ide/exceptionClass_.svg deleted file mode 100644 index a27a1253..00000000 --- a/src/main/resources/extra-icons/newui/ide/exceptionClass_.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/ide/exceptionClass__dark.svg b/src/main/resources/extra-icons/newui/ide/exceptionClass__dark.svg deleted file mode 100644 index 36ef4ace..00000000 --- a/src/main/resources/extra-icons/newui/ide/exceptionClass__dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/onap-cba-blueprint.svg b/src/main/resources/extra-icons/newui/onap-cba-blueprint.svg deleted file mode 100644 index ed142cd9..00000000 --- a/src/main/resources/extra-icons/newui/onap-cba-blueprint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/onap-cba-blueprint_dark.svg b/src/main/resources/extra-icons/newui/onap-cba-blueprint_dark.svg deleted file mode 100644 index 81e9ba2d..00000000 --- a/src/main/resources/extra-icons/newui/onap-cba-blueprint_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/onap-cba-definitions.svg b/src/main/resources/extra-icons/newui/onap-cba-definitions.svg deleted file mode 100644 index c56d5228..00000000 --- a/src/main/resources/extra-icons/newui/onap-cba-definitions.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/onap-cba-definitions_dark.svg b/src/main/resources/extra-icons/newui/onap-cba-definitions_dark.svg deleted file mode 100644 index 7ac539c0..00000000 --- a/src/main/resources/extra-icons/newui/onap-cba-definitions_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/writerside_cfg.svg b/src/main/resources/extra-icons/newui/writerside_cfg.svg deleted file mode 100644 index 47a1b371..00000000 --- a/src/main/resources/extra-icons/newui/writerside_cfg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/writerside_cfg_dark.svg b/src/main/resources/extra-icons/newui/writerside_cfg_dark.svg deleted file mode 100644 index 1dffe4cc..00000000 --- a/src/main/resources/extra-icons/newui/writerside_cfg_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/writerside_list.svg b/src/main/resources/extra-icons/newui/writerside_list.svg deleted file mode 100644 index e70806f5..00000000 --- a/src/main/resources/extra-icons/newui/writerside_list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/writerside_list_dark.svg b/src/main/resources/extra-icons/newui/writerside_list_dark.svg deleted file mode 100644 index 0ec34f4d..00000000 --- a/src/main/resources/extra-icons/newui/writerside_list_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/writerside_tree.svg b/src/main/resources/extra-icons/newui/writerside_tree.svg deleted file mode 100644 index 814548df..00000000 --- a/src/main/resources/extra-icons/newui/writerside_tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/newui/writerside_tree_dark.svg b/src/main/resources/extra-icons/newui/writerside_tree_dark.svg deleted file mode 100644 index 80408c45..00000000 --- a/src/main/resources/extra-icons/newui/writerside_tree_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nginx.svg b/src/main/resources/extra-icons/nginx.svg deleted file mode 100644 index ee88f3ea..00000000 --- a/src/main/resources/extra-icons/nginx.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/noai.svg b/src/main/resources/extra-icons/noai.svg deleted file mode 100644 index f826d2fe..00000000 --- a/src/main/resources/extra-icons/noai.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/noai_alt.svg b/src/main/resources/extra-icons/noai_alt.svg deleted file mode 100644 index a1d6db20..00000000 --- a/src/main/resources/extra-icons/noai_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/noai_alt_dark.svg b/src/main/resources/extra-icons/noai_alt_dark.svg deleted file mode 100644 index c4f085c2..00000000 --- a/src/main/resources/extra-icons/noai_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/noai_dark.svg b/src/main/resources/extra-icons/noai_dark.svg deleted file mode 100644 index d9495191..00000000 --- a/src/main/resources/extra-icons/noai_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nodemon.svg b/src/main/resources/extra-icons/nodemon.svg deleted file mode 100644 index 19fd9e5a..00000000 --- a/src/main/resources/extra-icons/nodemon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/notice.svg b/src/main/resources/extra-icons/notice.svg deleted file mode 100644 index 8744002a..00000000 --- a/src/main/resources/extra-icons/notice.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/notice_dark.svg b/src/main/resources/extra-icons/notice_dark.svg deleted file mode 100644 index 7769dcbe..00000000 --- a/src/main/resources/extra-icons/notice_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nox.svg b/src/main/resources/extra-icons/nox.svg deleted file mode 100644 index 655bca4a..00000000 --- a/src/main/resources/extra-icons/nox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/npm.svg b/src/main/resources/extra-icons/npm.svg deleted file mode 100644 index a9f0fd0d..00000000 --- a/src/main/resources/extra-icons/npm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/npmignore.svg b/src/main/resources/extra-icons/npmignore.svg deleted file mode 100644 index 5e26ce14..00000000 --- a/src/main/resources/extra-icons/npmignore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/npmignore_dark.svg b/src/main/resources/extra-icons/npmignore_dark.svg deleted file mode 100644 index 1756a4d8..00000000 --- a/src/main/resources/extra-icons/npmignore_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nsis.svg b/src/main/resources/extra-icons/nsis.svg deleted file mode 100644 index 71039a5a..00000000 --- a/src/main/resources/extra-icons/nsis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nsis_dark.svg b/src/main/resources/extra-icons/nsis_dark.svg deleted file mode 100644 index 0319c0e8..00000000 --- a/src/main/resources/extra-icons/nsis_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nuget.svg b/src/main/resources/extra-icons/nuget.svg deleted file mode 100644 index a301735a..00000000 --- a/src/main/resources/extra-icons/nuget.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nuget_dark.svg b/src/main/resources/extra-icons/nuget_dark.svg deleted file mode 100644 index ee170938..00000000 --- a/src/main/resources/extra-icons/nuget_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nx.svg b/src/main/resources/extra-icons/nx.svg deleted file mode 100644 index e383ca10..00000000 --- a/src/main/resources/extra-icons/nx.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/nx_alt.svg b/src/main/resources/extra-icons/nx_alt.svg deleted file mode 100644 index 8f8ba66d..00000000 --- a/src/main/resources/extra-icons/nx_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/libo-calc.svg b/src/main/resources/extra-icons/officedocs/libo-calc.svg deleted file mode 100644 index f686cda4..00000000 --- a/src/main/resources/extra-icons/officedocs/libo-calc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/libo-draw.svg b/src/main/resources/extra-icons/officedocs/libo-draw.svg deleted file mode 100644 index a2b2dad2..00000000 --- a/src/main/resources/extra-icons/officedocs/libo-draw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/libo-impress.svg b/src/main/resources/extra-icons/officedocs/libo-impress.svg deleted file mode 100644 index 39acd9fe..00000000 --- a/src/main/resources/extra-icons/officedocs/libo-impress.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/libo-math.svg b/src/main/resources/extra-icons/officedocs/libo-math.svg deleted file mode 100644 index 782a66af..00000000 --- a/src/main/resources/extra-icons/officedocs/libo-math.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/libo-symbol-black.svg b/src/main/resources/extra-icons/officedocs/libo-symbol-black.svg deleted file mode 100644 index 16a4229a..00000000 --- a/src/main/resources/extra-icons/officedocs/libo-symbol-black.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/libo-writer.svg b/src/main/resources/extra-icons/officedocs/libo-writer.svg deleted file mode 100644 index 2c280e81..00000000 --- a/src/main/resources/extra-icons/officedocs/libo-writer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/localc.svg b/src/main/resources/extra-icons/officedocs/localc.svg deleted file mode 100644 index 3968d1d4..00000000 --- a/src/main/resources/extra-icons/officedocs/localc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/lodraw.svg b/src/main/resources/extra-icons/officedocs/lodraw.svg deleted file mode 100644 index 08c551a6..00000000 --- a/src/main/resources/extra-icons/officedocs/lodraw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/loimpress.svg b/src/main/resources/extra-icons/officedocs/loimpress.svg deleted file mode 100644 index 72754521..00000000 --- a/src/main/resources/extra-icons/officedocs/loimpress.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/lomain.svg b/src/main/resources/extra-icons/officedocs/lomain.svg deleted file mode 100644 index 786ca78e..00000000 --- a/src/main/resources/extra-icons/officedocs/lomain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/lomath.svg b/src/main/resources/extra-icons/officedocs/lomath.svg deleted file mode 100644 index a32386b9..00000000 --- a/src/main/resources/extra-icons/officedocs/lomath.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/lowriter.svg b/src/main/resources/extra-icons/officedocs/lowriter.svg deleted file mode 100644 index b8d5f494..00000000 --- a/src/main/resources/extra-icons/officedocs/lowriter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/msexcel-2019.svg b/src/main/resources/extra-icons/officedocs/msexcel-2019.svg deleted file mode 100644 index 9615660d..00000000 --- a/src/main/resources/extra-icons/officedocs/msexcel-2019.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/msexcel-papirus.svg b/src/main/resources/extra-icons/officedocs/msexcel-papirus.svg deleted file mode 100644 index 16bc4615..00000000 --- a/src/main/resources/extra-icons/officedocs/msexcel-papirus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/msexcel.png b/src/main/resources/extra-icons/officedocs/msexcel.png deleted file mode 100644 index beaa75b0c7d8d72bb3c83b31dba7c2d71dcca2a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)N2bZe?^J zG%heMGBNQWX_Wu~0$oW&K~y+TjgwtSQ(+j#*9YNMSJ7=zAml#Ic4h;yTq&8g**0OC zX04E*GHNE3VC6gA!a%DA0a3AHVE*g{uC6W|GSM~3l*A;C` z>46`d^PcDY&Y$En1UVTB2CdN};KcRj%8@P+|!~>7_R6oYbZW zO6@c!vn#4Io%tnYi#PF&S0s!)B4HG7rHtY$fB!?q&_88%8Um%)%AD0fUDMy}<=Nxc z7m5V?@5ZGlAE<;jsLw+a)S3TFU=CT(8f}Mlg2DBvUP9x&!_eL_wEPhm9sA*W=!W*H z4!bT_q33}EwSDzO;E4^wndrw5=fm_oM`(_m&K6W$+Km^pFEJeR!4Yxdd3usxt0aP! zP#Y}K4s;0#;toPy0;*ey&XF#B{PGFuxil>Pc2IUD5xAdv&>MHcJ3WNNT#9faaw=OO z(AaOn!nXy?e4a&JUjtba5E8WV34}f9nQ{>F5|o_ZhH&aW##1RyaZ;S1>A>MIN&;jT@0F4kxebRu$>47VmIMRx-rc8!Og!WoXq_T%TeXkz%Xh=&1fx*p?bo; zyETgfv7O$@AK@AP2!H?A%K|%YRJ_v!^r#KRc~fRC!cs>5 zp3DRm^o&Ol(usiEZ@e%(I*liGBfze%f)p S(D+{f0000N2bZe?^J zG%heMGBNQWX_Wu~28>BWK~z{r#g_+AR96&+pCx6~WYnk=Qzqk#85OoKvM4Hc(N&6q z0Sj0nh=O9l0B=j|CB_JfA{L?`Md{0;0#QI^j2RItEa<3!*g;XOm_O$|!Q`pHnwas< zd|O_*=YRM9_q=-;0PmF-AI&tSmy(grlQQBT#DtXj!v3ok-GaNdw$NL&lWL@0L^^pl zF{|jTnx|@2e~bC;H352t>CAR!WPu9Cl2x=2Yve7(0kYPTh0;&Nfs!x9fig=`kknQb zEOi!XWDAK1F)Pm@0>v6dr}|#ZZ=3+7UdhNbvX+uy`3E9a@^LSX<)`%fYfDzHpa3H* zS*eGJm9rFNyNH$L5LZMR`C}6Ir$nm&k46z9VU?fPcWZv*1W0v?P7+pTO+nqntSpE+ z4yORA6eyo4rNC9h6FOce(a4`uu)hP>Bh@Lx`}{JX=jdd|4$YxXbnGxH(V?A7yvqv# zVy%2Wb$(33%1vU8>?ZwwOr5?Kq$zBE?ssWKtU8+l7@LCx7)gNMDbBfVy#U3QH+A|p z^bH+=k$c8qbh49KsFNL!tK-z4y*B|wf!gp61q|I}kI9B9@YpvM&Z(|&HMqfZ-*imd zKSO}4!TtXc;1}l)gDD+}B}tf_JqPR&9Sj$Z$SuzkpgXz*jw$0B7tnigA2_UchUeC4 zaNj%$gH{iNRIB9aw|pSRhq=QeVk#U$oMFAB?@Iwo4J%MqRSwe~6M_zF5K^!aWi@4} zefCg5*vW7>rMfgOV9=_eSa)DOiYkk7@=76A7*@e%X+Odi{=4VnXh}X!m!HP^%uozj zGn^O3-RB)M3$bV8vFltkW@gRCqTC?F7Vkm&#S8(QIER$6jSEozsKTsWzBpTP4iBEx z;z(&e|J2T*E{Ho8k6ZU|mJ_$bAzVJQh zFJOXka`PVGhCTeyR@|()h05wmgl28T(zN9;T{EGgs)9x+1OrwMetA8IPpmKYo=-$f zQ5+vQFpot7`CnnWFJmkkhH z%kh1*HzEsnVe9D~n33s&1v!iG>)9ymH6;lMAa6A3fd)7)%#NCavfE{-dtQep&z|se zKV{o=euQ4V-acH785uMA;4b6=H}U}I2X0CJ6Zdp8Jisw<)ewYcZlqzqgS!v!@!ywj zUB+tTPyD%8ulI@dL&Eta#1_Sq2mJVH;BrFdI1dMl za&WiyF24+CM9vhf0FGsbm8ht$KuJ|8f)8sES`dcvnhHF6_DH~{!YxgEfHRk4$XKKn zr11fZt`;L8E)e?UB`CRG%6np4?hXuJJ4zs6dbAgI6z)XCsqOqU%s&)>$TPdJr#L~t z!rZ{7J(zBzkBYUO*46s)L1AA*CW@l$e!ziG!s}NW?Z#uq=b>0#4L*`u~u4O4Jdr z)dqZBu&#d(b&6B_W=VEzPXgN5McTcn3%=3YF&27dOA^qU%B~MB{6%eLK~|kb8msP9 z5hH(Fn=(eVK2yR!q-eIU!+GTAP-t xMK&Li$acLJt2#<_Hf?RS{aV!DVrFBQzW}>W{lR^P5TgJ9002ovPDHLkV1kMgM?C-l diff --git a/src/main/resources/extra-icons/officedocs/msexcel@2x_dark.png b/src/main/resources/extra-icons/officedocs/msexcel@2x_dark.png deleted file mode 100644 index 1b3e584c3274ea3d919c686c042f54d7a3362054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1819 zcmV+$2juvPP)<{98FWQhbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMGBNQWX_Wu~2AD}iK~z{r&6jCZRAm^)FN>%!ECXn6;F(V;*?5Y(BucUBaSYiPD=cGPkS)D|^MMal(cM$PJ+mJfA0eduFZr~3EYYmygX z(6VFqoZn%%@4fHyzwi5hpZ9&3|HTEsDKA~##q8*9V>a8(%qHT!Z%?|keQ9vFT-Qok zd)d*PLpRQ3=SFSsZgU&xeP`SwU=y@V+YcPGvB$(1u5m6VJL}qJx4Lh!wR*SNO(7fY zrnpvzahla($TvCI)x>VIojXf38trW0-F@8;!ezd!Wm z2r$_7y9Vm?L8!l=LD>m4=5?sgv2s#lsVzd4D+yUQ%p2~W?jk1DB%$bta&Q67XVySoHygpSAdE>0M_!Wx+KVmF5#^ibBWh|S z!sA1c{Y(~`PCa*99KE-oy%Y&0afmOE#hm9eG0T#Mn38Bj%pEU+7pFevWCYmD8?bOk zIYQ$?;Nj(gh-neRSJxfZ;Hly%kOWFFVe)uXZYu+KMcX$5D^6BJu}cnldnO7G<|2Rp zT*!CMLe{nn5vtd7_~3&J;NgcoqdFblqr4#v^22ORCR8oC2#R_f{vlFi(+D+x*x2_x zPub2A#1+LLu2d!j&M>7yRv3wK*<(cT-f-#x9`33ZHT$X&Ged@v-Xjp65QfO95%3O> zAYt}Iq0P{v6A8#8fxHI-qHlX(a%~EH!+qf4IZQ-KO`>xT++p4MwZi=S&?pS|8V)Z% zPXtE?LCqFm!}(^>vpf|qlp(n)5lM^Vk+VAsnHy&yzA_H7q9_qFt!d6Za0lKCmD?8} zFf0JBZmw|ma2Mu&>C20R5$gZ^O7ehm_Z%U3!J%BJ-XIT1j?mWs`T4vD3dsW{GGvnn_-WvC!uYH)BJRrrd@iWmx&UKS z#y}$Vf-Ef>F&Q#=`FaY=aMA86(F)*EHd7u5@q>S)6zK-a1Da&`gi;kIM~j%*I)n#WK5BxZF$ey^QuvPcLHfc}G@Wih-4P9@sGk(f$ma;Pp%B{cmOcS1 zPEa0bmkUXV-v{`)mha5O?5#6JhTq?`mH9rLE+Ghx~0QbbRW z5|-u6rRi9Gysj@3mTsMgn7L7i&ZoU#8+m}Gy?`=bcq;7ycaf@n%DD&DUuee41Iw{& z?-D#qU#-8i{`OZ=pq6t@&>W<_fZF&G(RTek0(ol{@D1{Xbb=o;xaoLuWilke61WX> z6Opnk5o+2k2Nm#7Dc?08iKP<}UlA)TKYqQ(QdW$}ogjkGkoT1b9+cYCH7MGz6y}(B zdEuM6$lI3#R=Yt@BKBAuh7(j5 z@S?t_|9>KWC4M9BsSWtLprNZSx~MbHZzxEB9|`cRIa?*fXS84MWVF|Ht|Y*n$}W%X z*Ef4vdW@r32OB{Z(IhIlvZ(E8!b)N~2r5?CpGnBWsf_yH?EUTvv+0tR(b-uSzCJWw z(YxvFdQbMIX|&-67h$@=rC6?U*;GYU(+F)Okw=MIi^J&OzptSfP(Xi-XSIyBN6+X# zH#3G$jg0A217q&iyS8;(hLcFi`Wvjj&c=F~&+AN2bZe?^J zG%heMGBNQWX_Wu~0#8XqK~y+Tjg#L?Q(+j#S4jwhk=caWMH(1u>DE@m)YSPSi`uVp z&0J_}m2Nt*$j}O3J;$@N>5<(OLYHY5B_x$mMCwIR5tKV;72QNs|3Noh*|+zcmeSc8 zJ@A2-_dMsr_dM@;HQ9@4L2 zpB%NPTGNY{NJ&&=g^0w=M?~fmg`o9H(Py3-O)1lJ04^5$Zlvs-~INz@bobe-Q6l!6M zRKpTBDLAK83Fy$!8ueg9Q9iWAo8c2$S3aToY$Yt+CX}}uP-N69G+%E}2`Is-bI9A6 zhXP#zdQ$OaTylbmTGY`5d&9dG(h>~6yb9yNa_p?rW5@ndSdZ-i^Ll7CLCA!%Yza=r zPhhKl3qrR#;h$_*)`1(R6oF&>FdAYtsAa2Qro)tR+*BnPdVZM>?Gm`e2u9xwV}K5o zyttwWs{9o&cN$@6qo<&!r$9+Ng>0O8+<}%^2U_kraCFA5;JN4gE#Q_$Y+Qo*#*564 zOfSm>7Xn}CpC_phy>o7le35eaC9-W?* zj%Qu!O05=vHRLnNB?+P(leqFolJ$-y+3l&vs?unF0b`W+iOuZgZU6uP07*qoM6N<$ Eg36ahQUCw| diff --git a/src/main/resources/extra-icons/officedocs/msonenote-2019.svg b/src/main/resources/extra-icons/officedocs/msonenote-2019.svg deleted file mode 100644 index 664f080b..00000000 --- a/src/main/resources/extra-icons/officedocs/msonenote-2019.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/msonenote.png b/src/main/resources/extra-icons/officedocs/msonenote.png deleted file mode 100644 index 8a6326182d057a3956f6fc26c22696ac0a5a8178..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 763 zcmVN2bZe?^J zG%heMGBNQWX_Wu~0(eP8K~y+TW55SO8CEgZYpvp`m!Ho86~YewGyG?)x8KiFuC$83 zLTaH}mCQW%O4<1pm2wMKRLL#8SSh<89jX))6w0jRtdd<=4OF-hsNn{Xep@BC;7^tO z!hhBBi~fUfi{i2svotp*qvQE%n=}~el@^Hs6@P^(#)f;9SN@-)z5xTzR$E_2lmUx^ zcKtt8eIATAM;`h=M+0hz+WK<10h2v9|KHPl;eUtes{bvzEB#KGsFeK zyZ;}qISI0eNX;BI`cH((pk1 z1!fg83nHsz=Qmf%E?ieBx9}D)U;F|aqOhoJzWja;WW2wAKga)7|Cym#3K;+m)LO*` t%$35G^7Az+WfldLOV8DZN}>S<1^^tv7gMF4D?tDN002ovPDHLkV1iTJWN2bZe?^J zG%heMGBNQWX_Wu~23$!*K~z{r#g_?CQ&$u~KW^30TC8JRfu8_n5k;)F+L^kvowm4+ z?Tqb=oo;Hi%hai@ikbvOl%asiD#(^Sfe=>1CbFntw2}`5AqiViF=BB;K?GTPdlLdA zC9%=b@i8a)yiDFbdGG%B-z5Oxg);Q=zYPeVnb}039f$BG*#v{mCHxlWjoa^$I)&vV zn#rUKX?scT?B5*{Uow2b`eshxhqvR2-`qI_lN8#p90cQbI3$nXGdp#1fIW8>i^g$9 zfp?fR-YO=^|A|54hcQTgJ`%~K2|Nr#Sl@I4{`ePU$G2gUya_ClH))?EcZ!cQcP5h* z%wakRmNRJF&lxn{uShrslwoic(#fRp2U&Ch=wQ+XGNz;8EyJ+ZH=Tg5ZQMkE2fhmm zc%#6NICuyKOGb*ZuZBVL+OV$&>1WdU0|*A@|1%uiKtX_$ctxUn_6)0V%bX_gDzwoH zFzv*S_-jreN*w$u(rE}{9N@7WbQJ#`<&s{GgXdX=TV@b%Ztirw0D~s*WYPFH%?)fV zflgwGam|1v_iU?3bkC|ya!GsrMGB~sT=L#{W&*(;65uY)1IdSlCZxPy2wX4O^B0I) zn+Fwf8febdnxK(hhRpS)!1g#{oq(^i5W+slhWHHy5WPAF4$V&)3gU=~Ha8g}KRy95 zYjYuJVJi4KjSBF-ErzR#c6jul--J$WH{@?R2b_7s0$IHnyfeWqOP=_qY}Oco01R^W zcpbDi-h+nIS`ch0f&DH*@I$dk zWMl>s-LfboF2OZxd!kduv@rq)JyU>^Ho-vOAar;1!UaJ+99@xx5+aEEG#@mlTH%KJ zE=abYg#&X&1w!UaLG($Xe!7iGUt0paMY$tW&s&(2RJiTplG0t2Q~mdi<1GsG^$tL9 zS0A*g??A?GIUJmq@>qe`Rk?6Jq7Le%S4^noHR~nV9zz0nt*khr;#Nj$e5j+Um(2^L zHo?RDk8l|};8x3hP-eHlu{F7nfO%m_U?c}n+L+-SU>kBkwy|uG3R4YKMyn}Bl;$;y z0$n#B!lj(cP@8uJ+8a9H)ZuCnY%Z}VaO@))oH1tXK&|;4@RWk^qmz)auEd12)y2AX zAIX6y5-2{Zgh+20oabub?zJvxD!UG?Rkt3W18KPSM%3|}^&-P}!4nDSrajP00>Z7Q z;VRV*o$cN5;C7E$0seQz&{}yD`XBb2(A9=Huvu=L0|SaMRUZ|p{!>B*U|UtFa;jMYg`^4YU4Nht zy5Ci#--Ke<=YhJY75aMmp-puMB)^yngzEMIZ`=ny!~5R|-SqQ~_5s1-T(;c5=3Pa! z$|*m#VC+5+;E{}LUkwdsw2-++4t}@+>G}f~NFc*U4o&54P$Rnx+;57&-)&SNZXG@g z;x+JBzSaa?9vD9hGS-)NOK`lhMfqFg zB1O1LR2iY!M;%uVod^71JwD+8olR$uoTXR?Y(#QWQIf?=4vQbYdmci=XLg zgF(bhT_9SHfov_oU65^CuvKoWh)~(0z*H)p8mbF)l~J&BybXh7kH^AfB7+o6-Z`89 ziVw*pSq@xJUy{EJiR$blnA5?36?XPKmmd^ zJ=|uOedNS__PnV~d$Fw#DW1O5A!UN$3syFQ_!m##*xTo~dGY`N002ovPDHLkV1mfk BDK!89 diff --git a/src/main/resources/extra-icons/officedocs/msonenote@2x_dark.png b/src/main/resources/extra-icons/officedocs/msonenote@2x_dark.png deleted file mode 100644 index 1b00cbab41dc93f11543c21c68ecd9183f2e0b0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1771 zcmV;P)<{98FWQhbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMGBNQWX_Wu~253n{K~z{r&6jCVQ&$v#AN#6CQCtuK1xx}}tkyaxC`%C`7(@t= zkW~rTvZ>I`j&*A5RBg3t6%`e&C{siCXTfn*3I z6dfI#nQ!uPlf3i2^Ul5R9^!xT0)R2WUl0=JZ^VznKB7)U5(Pp^DSx zB27`xQ3%MH@{K)qrv5(`CIya(TZj^2J0VXYEmYhd%hKc?s|wab`({D!v@1f54+<<% z@->l49+@uZY4$02WHoX?&ehOHp6kCD6xad8bzYx^icebC@JU;lpxdEB(CMP!l2j$P zCrByK#4GrkEMz|hEXUyYkbVVEGa%=xL5qy5E|+q<155=O3*GBZ+GCqKUXM2lM4&(# zo_se3JCCSvtX0V;AL7_w$Wu8_{R|mU@YMh4gAXB9u)BgAnC+9tL-V@(&Weau3!Q+1 z-RFr{BSCKA$u&s-P>|sP#ze*L{M+2U`YCNF8uDa-Z6LkVIuEt-<(>yYD;_*_$ z?t=Qb2hhlDA0M&pcUs~*roT>sw)&`!881zsIkRMeE zY-$>WxkVch2qZ-PRZtDWbxZNO0z6S+sm2fz^ z5-zZA;#ikK;ES*`;P1Kw9ITy;nBnLK2bLE?-P*glz)i93PcV3YW90V)-Z(<->-hvqN;_$uMeE3*PN zR(9ZM;|z1B&|queUbvKWcT9m}(NYllWkZZdf)T8Fe4RuCb1(yVd@G&4wNOOO$lFBU zGQp(4YHt=e*-iuxiVwI=^nwsCCf@fd*pGE#PC#D+PAEMbeGOb4s)78V;(>Jf=4Tsd z87)F;rmIs}nBz01Gq3q(FJX9VlL{!W35+ zaW1S{d*2N;@LU4Cg8R~5pM)*9#1Etp9Rk)piTS5 z#8&upRRLyTF}OIo0>$3NObwg{`m{H3?mHMU-Ek)D4?H!z2A-wSH~+nnmi5ECv>fv_ zpcl~2_2T$znEpK7n3biK*&4`Rv>mv8s&o6H;3Z!mbnCE0hAQ4=h zX6b@favtawp@UHpSmquMcGmVVZwei@1%ErD25v)9gd7S(E*YUszhc-rAd9|!GIzm_ zw?*^}uk^@Gqt^jRavNUx7Fgo861D{HMu84pfYQWU_<0X3nz;gJM-1!={|+kH_YDF^ zqADPnDuz(EHAZObVED7(OsJ#{*MU+IEn}O&H*54dAWi9l)9dPW^Zq=hUi%EtkC(7+ z;Pash3sa^Ok`H~S<@2yYEYJY3wX!v0s=X_GgEgRk7GMoL71K69!6Ll2!6$ok4ZJ7? z3^}APcpu{Dr5KUon+oS~Dvo;{cu}N@?NGtE29n4IBPt@Ba6fR{Py??_V7xn`*D6qt zx8cx=vmmDBzy@mOPu%&N2KR&tHtDY7Yl={!3Af%IxI6ws!8f_}Hj9eW-CG~uq22Ko znWL83TC^|lWRaMjQtH`+y`A$VHL;cwB;FjriV$ zolie@LQn8JZErAujOq)NoUR}YL@`G#^A_dnzyeAtJ)438PU6Ml!M;G-8MTNzEv|@2 zD{M?`MoX%+EU`YZH7delK zY9UF~33@HQkMFZAjq9_m;i@OAgxww}>5tt~FlK~<>_DM&$WFv(N2bZe?^J zG%heMGBNQWX_Wu~0%1u+K~y+TW55Sih5l#WpY@VwfBbz8s1SDWpW#2_e*66_yVLIS z?~c8zwk!6Y`|kLM6}#ddtk@az;Ns4>hv`tInBZ8*Kh9mT536^^KG?W3?!gV9rnf-+ zXGiS)e?YPSAiO8??ux_yHD^8`y9eQ3gzP zUHiYnuoaA_+b)9}aLE5gIoyD0KHL7s85I3r5qkRnx`<2vbIhCnFAF&VHXz5e;lG}+ zF&JlQm;OKOfBpZFfE!m12i^#U8&G98npxU#12#q7_`f>r0$9V==-c4f*cNjK%+E1t_^&H$2*z33 zC9p8~lc=6k3^xFz5EtGRa_#?apL1Zm&-W5)80<)XBm^|z>aN%apLWI}k}ope7k1~_ zVZR%fVEB;V)l1ce?U$0&bE6sl{|9EI`1=xj;vSjpje8WiC;nkGFmJ2_=8IcE&A&hf zY>&BD2Fj7hxZb{=BQ!LW8JeXK0F*OVg \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/mspowerpoint-papirus.svg b/src/main/resources/extra-icons/officedocs/mspowerpoint-papirus.svg deleted file mode 100644 index 74f4b1f3..00000000 --- a/src/main/resources/extra-icons/officedocs/mspowerpoint-papirus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/mspowerpoint.png b/src/main/resources/extra-icons/officedocs/mspowerpoint.png deleted file mode 100644 index 7091be181e254bb7ff70b9c32c928e78f6453cda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)N2bZe?^J zG%heMGBNQWX_Wu~0yRlQK~y+Tjgw1g(*PL9; zJjz?CnKWHzFQyuUwVCRb5z5gZ1U2#F~_d$F$0b%+L=kUmt8KeIDfdNzt&^q!I!$JbN) z3WAA2h%X;O9tuEy&<(lof+A?ICitLr@%@qu;yj0M=j>&HznTe1mkxg%<&M|IHX8ed-}41%y2j6UAvX@2CY~n7xX|HyA5fu6Y}+w z<*!g7*oJ&;3O{am%Y`Mf{eDPOQJv_Jafm5f9p;YhMEY=}L68fcfINIt=k8_W5LY7C zdmhr$hdSfx9Eu$z8FDYrn3Kxy`N2bZe?^J zG%heMGBNQWX_Wu~1J9RBQ$f=gnVUVYSRRUV5A6=$ZPNJ%0m_dW!d}q_uacB zpsXwmPG{!Foy*)k-|v3sobR5)0Qg^V{As6U2L>{Q;|4ONtS?ilQ!zC|d%HD`@%N}; zpYt?N?58rZ{Q}Cz`T3NO^y}926W80r0`gt0e|M%h*o!IG`?y(HwR`dS=RJxh1oSRr zef`RGs-c`tJ<6olOf#|S6-2U$)m${O+BGJF*4xob2bwHkny6)rq2BK0I?YpDh`NV4 z$orX6owvVHuNrP<)jH~Yj*-=@<5*1!r`KF0$~c48Mgb+WK?@mr<_nWvt7+=i^(G6L z4Qg+r!RJ*Hm_?m`#Oc+E9IH+@>D3v;O?t~3qLG3Kgh)sfTnYSuiTx657K|7y#YOaK z50Mb!!aSv|(MZH0nhY8nz2SqmbA_6DfhG2hZ=a(8r`m%APLaR{aq|bg z97DirliKREBh*HWgs|ydAU;At+8haK%Obiigw*uEmXJu66uYSJlN0!6HN=CPA@17* z>C0$EsHFhnBCeoI1s08lAiwR-rI5BpK{%EG{`zI`e`P>8{VfTtQL^#G1gxvyggq@8 z!r6n6lGi~Zp9rL2dTz6;`+R0pT_L)sTZ z8EBdZE(wSt8VmnK)$+-xUON-@C-y?HRzj%cP@D9LGE|QU6kUgSVvi%3yaM(T$saeT z{y$t35MaBS3CrvkVVU^?tUFgJ!y?vJ75ji=Rmau_kKBohRidt z8)-6CaHv0>ips?kTCIdO1>_}|p9Asm4w`)LbxuIMR|k91HOfRb8nQ2-?nnYH%V{uA zeg47oGS;~FVY`+^Lu4d4@MR>Mmj&VEURwXl9xcbN4uQR_5Z3L{xU+FC1)hS6`6DQJ zK&#*~)-}^%mnSK$5Fzs{1j?HD{dPz3X;}d~DqzdIgxl{7b4<90icd>wqsD;Wwir^< zS_cU$m9)3@A?kpDyb3aC1q^8wtSzi-XTW|u5#rhJoFmr<*DB#))E)gA_L2hBpF0fm zj6tn}wS_e%9F4zI`mg@s6p_9UE>%M1TM#jd3eY4}MvZN?+?-LnBm}(t#ghwGCinM2A^Mvejf!Kv;%%bl_0aZaK2tTGY*MqJWs9nl}-?bjn zfjH+R%A1lWGz7JguR-{H9w4XKDURUs(xg3MhO}kAmm)yB;waklpQ9adE^W)rbnW=A zc+RjJ_D^RYlj6ebBp zgj_ls+$O2}gq@(Xfkte3C{d8l1@m7SL;;>{mpJ(v))O1%I?e?pK@6Ra`nZ#Thbct; zG&fe=%Q#NsV+v6XFzZ!;9IFkcfD1@2o;X1QH|f5i%T7iun|yay>&X~j_hl@>DmRN> zxXz`!k$g%jAsh;a(Wpx4U_Y%9AqUWtpJr)%b>oThmWmYz*@+&i7ikRujq? P00000NkvXXu0mjfB+&V= diff --git a/src/main/resources/extra-icons/officedocs/mspowerpoint@2x_dark.png b/src/main/resources/extra-icons/officedocs/mspowerpoint@2x_dark.png deleted file mode 100644 index 87f8c4d75eeb4cd6c7c15ca88cb040f0a01caa8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1595 zcmV-B2E_S^P)N2bZe?^J zG%heMGBNQWX_Wu~1-MB>K~z{r&6j&@Q*{)_@2l;$7W!CM+IzcaM=2|AqkGFVK!i;Y zWISXm+u9Bous;+D8Vp1NYET|Cipm&MiLV$92pUi$F=%ulgdmBE2nh&meK6$@Oav7? ze(x>F3hmaBk=W#uK9b(^`JHoq=iVRlzjzVRfE<}z!knDvWO`e&naHAS=F(Ind+t89 z@XK6_?tGKYa(;oB+f$#J(erR7AMgJIal3%XFjuPe%x_C`nG1_E*|5*botd92oNjQ8 z=nZ5^k%d|AuwR-G@`-iffVdKLhWz5eV6(U?=o8H`*GdBA6%2?>-%>jl@@J~TJ}ITI z!8Wq5H9Ir1(C!KQZ8f-fb0}b69r8=BhkVjOa5m_dt{~t)L7$Bjn#GrbO`>HFaZXX2JzFf#@ z6#=Yhd%TMdh3*-8daH`3&QeBUdl^gHN?Gavo%np?_nWYXw-vGJcTM2=B9>N;;b@JU zqxSKvA`~M~!W`XJ$PAyr*AMBbqnxJ~5$rXrx@|O1rRf4ynFVUf;c3G?*RyfA1a?g^ z(Bjc5@*>!?2-cdf%bb1G|s3|0?7hx`5cWm3gpm6aU%<@d7M(7 zK?Qz*K%FCvSeB)XRGy}1r_v-Tg>oQc)bLc3l}fv6&D4WTB@$SNGAu&C#_TA~VD(t^ zK{6${A;3YP*sP|#NdNm&(#h}AQbrn2l9s3S6?&yqw+a+srGeaNur&n$@6U{jZb>EZ z4U!SyIhHDs_V4liNANH)Ac7iO`w_59SX=jU`5L3;&W|Q3OV#Dq+g&$ zG~yRCGh%i^JOOzNdax@Vb8_@*$sG#lR2+>nsi?%Frip08Hn)y;*O=){ztzjUf{c`9 zXvmH&Cn2yyCr}y6;Lqi0i@f@wOv3&pa2iz9j*IV{Y@$8W%yekBg-$od2ABEp0R#E- zR8(W*X{r@jL*18SYa zq9g_6T~Gyq@ng0Nuh>zj1Jc#!pKNTOXGoE;_TD5COIs49_ zl(BDjRkDxoEN9acflJHm#=cgmC=!sS;l$G#^4r&k1NJVkA7_MPI2(i^^#}M1Tm{!+ z4kbW77aX2t9D@LcK`CPm5J=lutc1tW?1>!aVw=c8KnORB>abVRhP?KSh)>Lq_-!RY zpELylTOhX)d;)<}_N<$YIXSx1wn!=JHw(_v;F$ tCbGn)Lq<%I1y=3f3)F19|0jl+e*tiZOJiys{$l_D002ovPDHLkV1l!5<%<9S diff --git a/src/main/resources/extra-icons/officedocs/mspowerpoint_dark.png b/src/main/resources/extra-icons/officedocs/mspowerpoint_dark.png deleted file mode 100644 index d8931362e81b84b058c89fc29aa02a9401a13109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmV;l0!#ggP)N2bZe?^J zG%heMGBNQWX_Wu~0x?NMK~y+TjgwzUQ&Akp&;6sVyG?QGwtMe%wb5#3;@TWp;ffH# zn25E4ZQeU^81x|4OB6_0y%qRW%_a2IOD{o0J^5JgMg&$XTyEE1ed)=*ojdQQbDQ*o z59e~u@Ao;sbGV1>7l;u4Yr@uoSWmMtRX=c#u%Btt=Cs(MDP6}4s%uP3$@hyX>9wXx zU$mqYHBxJ1W76)S$&ZVwv`h&Z8)T=d2vY`#kE~OBIk6FM zFC0WRMDVDe!9sv3ed}aSlG*6i&I)q-47gx}VTvBLu5J~KS6O;{f7ED0uj z7DQzZxBU!ej<9%8uLE7sLj`&lOXqBm%^cp0bW{XxGmm3d9z&fRo&*~R^bY)OO*rK| zfVAI&)wr`Hn50LLOgy|69%(O!McRJD4rcnS_&9DyF0oy#lQ}J5+RNgOpT$#S_ZqDk`oaO?6G_ z??OvS?`dJ4zK1PckdKS;7ZGCG%c~gSj3>1dAcXm;x=r7c4*P~8_pPU-YrmB)ud%!* a2>Ayf|ClJjH!5oY0000 \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/msproject.png b/src/main/resources/extra-icons/officedocs/msproject.png deleted file mode 100644 index c1b8420df30d4b1b5e4ce678dbd0888445f5f310..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)N2bZe?^J zG%heMGBNQWX_Wu~0vkz0K~y+TW55SOSA{a$uL|X{pKs3r6~Y1jGcelkw`Xyg>B8?k z%UR7~o{PKve76e6xvndm=eb>UTHu-vRf!2gR)%mo&2_7Gn&-OFX`b5+r}^%0f%G4z z`ELK57r6fi;jp#QE1HirC!^!0<4u|ju8Um7oEEr!g(=2{Q@3XRZ#>?DiH|jx5oJK* z!RG&)?rZ_$4R<#EZ#&ruHlX2nQ#pzO_4}Isue`GQ|B{Q#{{>U(*TzR9{)F7-}L{|i_2gGUVMJ>zj1#v*Z^cNTz`85zX7}M?Eas% zIrsnLk5B$jJU$t2K-2No|I;qa{QvOdqyH;ztoq-2vIDyTFFwEgf9~0Z|A!wO`5(JB z5o|#Ewk)u}SKVCm|Lym8|BpUB2IgZm0HiT#ed>SzWx-(0Al!AV=l`*%C;s=HnfQOs z<$3=*PIY7V!tzTi|F5~S7OoM7K>_>c@1OtsA07DLe4-5=9w-KY6b1lo4Okw6VZh8Y zv;W`!_~8G{i*w+bu^NC2XYa`S-*nCvHl4 z)^NP}5(Ylj91Y1x^X(;ot}t_)>mCWr7tN0IT-E^%y#>qN2bZe?^J zG%heMGBNQWX_Wu~1)E7kK~z{r#g}VP6IT>~7hlz}wK`6x?GI~z)R}hlM`!Gh`XF($ zkASsGMOrOWomxk2YZa@lqHPmN5D<$-wBsY$1OZ|2iHayfp}Z1Ad_bZiBA_TpfC!C% zKs-HrMI{F6#?kT4e3_lh?mge$d+yzPC;)h+Jp6f9!&@dFnM|<)OVI|Fnr7rFc^W-n zlAaspYnVP-9#$SLb2pX;MIe2z8En1QAdeloN3H z8v5#3Dna|_!7tfsVS`yKjY3VCHedVps}#7TJ*$1^g$aCp@EZur*TUA4SP!<8Yy+(& z;^hh~KM?{aubl#`-Ri-)JLh5BxgFjK%t#D?JD^IS5+?qV7ZmD*|(Qy}?o%cXrDnOVyT$%uD@`EKue}HREl~CJq3#uH|vAO7wd-Q_8D-rJG>WImKFle`%Y-J`33AwJ9*=!$9@EzWjmBNmP1EZ2V_=e!MBGO zy?lYXf9pY;69NA5pOYNOtIh}40~ZwDu)yNf@B0jYXIXhbvM+ zhs)9{fqR(2XK$52M#X8c-MIwKZOvf4V}+=^%`j_UV7~(KwnQkyCFtyQg3INCruHT> z8nL(>!@Lpb?CykHt+&aWm)2V$t1=rl=f}X@lwfjSZ-Mo>e?W9`3=xPt6AdX>4nTR+ zRj{`;LQ&lr*j=gzjd`PYBOorJgSNx4AzKS;GS-oK{~~FQTX2!!LknQ{c|Dw}It?aU zJVX?2f+&>OcR3l-t4_ks3%lKSL#YDwn1m6zn@AFJasF;Wd-D_SgatPXp%LHKYPXRo z5R)zfi7x*0$(wsCP}f=qnw)TtfKL;8`ZqF7;tCOyuGC%zhBA}qH$bX@IMkOLu8;&= zo3Y*_;M1(j{2i_~R$zAk-L7u9*;)(9ms7}6^jbhSH?r{qwB3F4@kYQ~7NstMV-;yo-dq8hHCbf2dCYrnUbMhh2ZABe5{)Zh zFKoq+khl}}8Tb(|T0qs6)$2rHyl(s;#U5@fj>HtKeCFbjd^Oep zViA&pMMyqgUq@Pz4ipq?0~g|67nuCgXC(*vhFLTtrJy!zhO5r@)CH7^qS#%m53N@Y zr1jij*2E8GP0Bar0y9Q#!@Sf+djGk^mDM6Hff zf6J+v@iQsbprqsmj+!5{&?i7Qd$7X94EIgsM@~s(ModbYJgDahiH)NE14IeY)q8KN Qi2wiq07*qoM6N<$f;J({00000 diff --git a/src/main/resources/extra-icons/officedocs/msproject@2x_dark.png b/src/main/resources/extra-icons/officedocs/msproject@2x_dark.png deleted file mode 100644 index fac9ee0627129778676bfa9bdbc01c79d851a386..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1563 zcmV+$2ITpPP)<{98FWQhbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMGBNQWX_Wu~1(-=hK~z{r&6j&jQ)d*wZwrN19=1>(K7a}Z8Q_#>d7~nVZv_mc z5PI(|P)HDTb0{LTn>uwaLUl%0dT)zEx0pF!Q8U|Ki?98&Wn1=0mL*G;EX%Tgw)oGM zZ0_vbOE9z)Y&XqzlV8%@w%_^P@0{vfnqcmb#HeS3 z*!IvMJA0RowR&2T**oL{`|Y-HfB&BgzXF#&?jX*8WF+hp9U_OD5|7=}g^W#Tr4APr z$8vN!3KXy$S<7&Ar_D{BVBO?R)~&ZNZv6|sV?7PwGMmkW!__KsxD25ENgeJ4ZDzZmNgjsA1$9!;xRH9QBBClaFmKJ@8=gYsdrLXal`p2o=K#-Cm}QGE{wzYz#1aHQK*6)gxbZaN32 z?`MAl2g;il8({YvE1_ekI3SEeC0}$7lqLL^0$;Zeo&Q{JKGdCWzJ9C2*cFj1mN{fN`ML3X3E__xkRYGoQ zGHAPs;P6P4OlK|p9suWg!xsAAzJY-1Qf~$;faUNY=Y(<4X83=AuK!;imOxM5WDU93&bWy zLdQTAoVnQ|)IeT&3W&ubSYDC@=C`-ZD$sU71BU%YkXx|`qEKM7J{#!%q9+mo3&g}l zK=aOGq4-*Nl?Z8&&I^O`+H^SV*zQ-ruwMh)3^`D_F%^BiWb1CZECEGyx;_6 z^CXa+zYt1m)R2}H5Azi=NY9Q3y008gUTKuIWoQ->f2X9$yya`(q{p+uL!8V zLa1%ZgtA%{G#HnA?S=shC=(*Vu&+WWLhEhs&1X9OC)dM@(#0T;l|dTretZh}qN7nn zkFzrMB}PH#fvOn+ed&FDjgTgOh44j}zDx;Q>6{twfPe+~sa}#9CluhWBQ-Mu z`qFc_8dB0@`6CX5goq(waTKg;%oLVl&;mTCuQvRKoTCi$MIDB0Qr`6 zQNJQHj^1-|@{0C{zTs;A#5*1krjq_Hb3vpaaO2CKP`kS=1!tlRJ0C3`$@gFnz&9Zm zu?e}4pT9$}5utuZLB2P5jQI2g`dgMOjTOd0jXWSs#SvZR{K>xH8!!{+oE;*DGlbYV zgM@MFr8cL2zQaQ$**qklo^otf>M>|P@(zl9g8agZObOs`{&{EQd((1p2QhlHnK(B= z5w;0Z#NKZZ+g$Zw)*Gz~#zmzt9;_J;U1{UUW}G22a-QY%2eCg)_Z{nL_!aPl?~bjW zRm9n=Ed=AF3D!ds!(+Qe*2_H-hg%N2bZe?^J zG%heMGBNQWX_Wu~0t-n*K~y+TW55SitqNtHvOkMw{{DCls1SDW|Nno+{rl}%R_#vX zpS3$yZQi~F_qqEME9UM^Trp>N{Ka{D;?ki?F~Q1Xg`9KuBv#Meldy5_p7|2@KV{`*Ah|4*;B|37t0G}wT&YMcL7 z?h0TmBFX(fy1*E_0Z#rJ|J8KGfd=UP7Z&IFpH=SwHUQZRiW)-r4X|=m`Cl{D=fAiN z|NoeL3%CKPwHE(FGxh&V%JKbokI?v^TxE{k0FccZhLZn{ZRG#AFA4%1P&?BTtid%@ z{Xf4D=YIohDQGxgF~A6@v3Xv=|4ADn!J0uhvDE6no~6|Pm_p!N3)6p7N7?_WH6W)$!UMwqkgXHfBW#A@&~)SfQVRV4gVXeoG-ELU z7p|J({y(M&7V>BY%s!SZ1WfN&fywyOoIMHf*nl@zXi+}zd#1e-WgLCUvJNWjzfXD6`G|G;QxOHMqoB(Tev$` o7-+Bt5C_cN8>0`EMgt5C06tIQt8!>0IsgCw07*qoM6N<$f@_H=-~a#s diff --git a/src/main/resources/extra-icons/officedocs/msvisio-2019.svg b/src/main/resources/extra-icons/officedocs/msvisio-2019.svg deleted file mode 100644 index 2684204b..00000000 --- a/src/main/resources/extra-icons/officedocs/msvisio-2019.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/msvisio.png b/src/main/resources/extra-icons/officedocs/msvisio.png deleted file mode 100644 index c7265160192528b229fc603a434ec314e87ac8a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 zcmV<50wDc~P)N2bZe?^J zG%heMGBNQWX_Wu~0$fQ%K~y+TeUsfwQ(+v(R~B{CO?1;me?TucwQ_I5B4X!k4mE~R zLB0?fAxW#iX6hQNP8kdX3w^vG4>{^MYbK?$`T`N=D zo1`@BkkYnrA>}xjT)DKiQQhkc)vQ@cv3)X{{XhcW2)|`&+aDqUPidw5fr0TH%H||9 zxY+2v%hurMDL#|B_9`2`v;2GC$mJl8Y6=9ECLu|rXu2q=mj(CqKU&N63)z;vBM z-_Sg)_umPUdM5BsP-l1rvn4=84(zLW25;~S4(kU5!MQd+di!SKc^f5yIrzt8xNIHI z6zH2?gPV+Dx6Xw#%o~KlF;IIS3xc}F5!}2Nfzv%h#8JE${)CpR!AwC}#Zyd8$5C1P z95&Z9SV9qLCA|f{e{V2`HnMwS25ACisS__p=3woZK!A&)ff*CRJT<3=aG^aU^gZT} z3bR-u;D>0r!y)oMPEN7_U6nf}XuT1HhwR*PEtFp%>~vxfU%&qpPNFR7P6?`y4+^~x zdp{#QwE)Hv$}QNnrw3;*d2xh@7Q;N}ulT`5;%L7+Nx~dyC6HT?4}J3}ZgoV2A@adR z5(4_sR&wWO$@Tq_E6j7?X#c!{@l9lN+T^Pim6zKJwySzJNYxI7gzBu4QeCYQihV+) z9|^yBfkJDqH5zADXJfOWAo)wB7nbqAuUPwVor1D&mZ-XPMKrr9`7x_RqQ6x*7Uulv R@VEc~002ovPDHLkV1nxBLs9?$ diff --git a/src/main/resources/extra-icons/officedocs/msvisio@2x.png b/src/main/resources/extra-icons/officedocs/msvisio@2x.png deleted file mode 100644 index e25b15c96a85b789b492519e6bd1884827822544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1754 zcmV<01||84P)N2bZe?^J zG%heMGBNQWX_Wu~23JW$K~z{r#g_?8R96&+A874{ZB5&>O}fOUX%o|!YGoEciR#`*`(LqJ(hDNMwD~R*n%pl7kn}($zFbq2k`>wJLTUE5SJw5Ni zP?i}wP@CT5pGjtU|99^_=iGY;0Qg@u^zskG-JK#F#1yeeKodNP5=9XoOBFK~kkpF{ z1@!AYQu!XAjCq42(mXT#7t6;)03bg2ppbABMiE?+va%(wS}%4{%(NF%FW3s{H+dxe z5s##}91*pgCsO#JPVq!k3RgrQM9m$3h~=QJX zqUjE(h@p2{mKH9`ds)p5H-+&Fw0}jiSBj1e&V9YNmsv%d` z0s6XLNX=}66X(iCR>Ca6(iLjhvf~zP56py>Xks*AfHrPV17&zx2l+*vpeyZy?1FYEukK+X!Xio`;NT{eLkodOOn ze{X@;_M5DcTGI&X#70O?Z)HKU^6o)GYBLm;b-^$B?GW)(CC0*JTY$4V99{t3hKG=m z(+2LFZh$=oo#*Bxh)ZgKZUl%_R)NHG2+XMQF(5xt1QZ5eaYZ-OHTFZcwjF+q)We?P zKr{=$1eQ-g2L7oRs%m>+>-V?7(M<*4`lUlrStm5L4#1(41#GNL2EalbFM>4O_xh%O z_?fB!*%1q}fJw2nTa$5_+u&~deF(ugSccmY9F`9qoe!X>w37uKpCRVzKwNS&)YSJu z_=R#d_>7;M1z;pu69-o)J-gg=Yz=t%q{4;B3h3*91PLjPux3lr7;{GE0AiDd08UN? zfQf^H$F*?h?ysOL>0l#1HKT=HkyGbOK(u=7{xkBxG~9nohq+!3VP{I&NS`(Ulk?ub z=}?S&-i8p->T0OQVp55z=^LCqCi;zHejlIG#O8iVdK-kEE}1?669->-C4wfk3Hk>f zv*w1LK{hVdd#6q?XSC_Nn{XK`A5#Yk%evt>uEewf7zy34L&W7WcHbX8dIG(DgX~I3 zupW&5olz^jZosbnxorMd)%Ifa-+}8%O;AwMg;_8#bpS^W&Vmp;3o>rsV@)Gfwd|}JF@d@Fh;GE(A^=89@EmaaDgitYWaWCzgyJ(=J^`7S zDXq9-16YC$BQao376D8}%vo?A&w>~{2bkF(z$$3U*r=xtAl;A%JA-rCdw>j=dvw5= z(o+X8R|(AtFQ(Oga_!qJ08glJ!y9oDUc+^G|8K!t@dE_H>$hn$Qxbc`HGbop73VM4 zMp`1j1Gzzaf{I^e0XWhtHj6~`JX--Jz>dd@BU0=^7;Himu_!GzB(10i2=*K532H)b z!1M)TkAy||@K-Dm0@%o80b3q>j`TW5ME0?b0Q=NF6VSMA8?_c_9A3s6fD z>Pu|Bf)PxKJwyfSK7x!u{HxAr{1A&131>2faF9e<{98FWQhbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMGBNQWX_Wu~1|vyCK~z{r&6inFQ)d)_FDQyELfDBcvIvPv0NJBJ77$_xF)E87 zkjN5}8^V^{1Ozu+9$Kq2cBVSE4|N%Jw5?L@po5ZJpw86kW9#(6ai;A|ANpFm+tYJ@ z3KB?YP&?Die3Q(*H~;zmbI`G*{p?@mK%uK}M;G(X< z$uiR*+d$hV84PrewzKzYCOW=PnFpe8q`gVSqdW7c<{3a#nZ_p16c4jlZhH@D7oe&0I$rZ|?%YBFE_ilP6U430gNW!fNEXPT zNJ_uVgeQTH-g}^FI18$}x1mXYZ7u*Ow5RzTWaMZdF{KbnD|(@=`|jNNy{#9aw331R zl1@TKZXK*k%mIFU79`;Hk+DJ|A(r=G@FfJAab_t32}JXSAjJVYEtm;B-rh3?WmQ8E z7MTQ5G3ijQ8X_5)6{xOz2R3XhhuHW`h=~*7H3A5aN`bUZm5{SlhndJl2?0)^hSY^e z0iEd+*t|sz0Rf?qT~G)6&7&lMuIn}wmb61)APEv?2@PUd_e`a~ssPvX>iRQy&qc5nB{FksAR=l5X)T53m`nA~!d)-O*g<+fMIeW* z^4?b$;Obys$5m{fN?7f`mIMz7;M%VQYFpl46r5vs(|eFzxR0y@v2mGDC^fx?0Mgoh z2MUVY$bI+oTMcV)UEngIqg~r?md1{2uw8wO^nXMYF1=||5QtQm#cbe(CoNx~16!|B zeFS(B>%ni8KZHjllJ@JgjJpJ$Wwr>pm5*z?X#OUWiD>?2k`=Ms3}wp^;M$CP@Z@f7 z!6jA>S$TD^2Uk0HPeKmzEU2*J%D0UK73I~FS#xlODOJuCrS}4ezJDB=4L6_xE1Y{U zEnIx&qr%yz;=_g)z8(cK=4!wr-UuuQ?pcs4)`Bpzn#{hW!sb5kEN@z1pZ+>jXikv# z0Eq&Z-1+z09dBB|(@N+Gd@=n7-wWf2fXT+H@r`&4`4Zp%zs0xW=P2~TT_8{Bx<;R= zYR`<8sg7RuhVAN+!xGt{5F*e$!Uh=!rZ>{IsdC)$=u87s!zgnOxs5!=4as-Na}@g> z`2$(BH<;NMjOOCtq27Q3LB++xGy4L|1(q@lJo2G!(<@P66$V>l=zS30Wp^ZZ4Nhev zQj}`Mt=CZ$x`_f`AwMB6C0=J|wD6!-dxz>Uj!|a&L!U1Dq>q*!^VPQB^*8o7B0Bq= zNf=N>GpvlZI(4|4I*v7T9iN2bZe?^J zG%heMGBNQWX_Wu~0y9ZOK~y+TW55UM>-V#imLB2F&E3Wh6~Yec>+6})($26J)*lnf zuQ{NZU2(`Kr{ZvJR>h$;S>*>WXO$j`g(}4asZ|Fhfg0Mg%Mb0$E|Om|UDx}+jDqQZ6)l(lQu0Rst(^-|4e$-?`Y$D;`#+^%+kf|f#{W{XdjFI2HiHfD z3F`&gn(<##-w$kvlDgx6dyh&~1L87Q{}+?g_#d7y=f9qD@P9p%;QyJW`%%0A^1qC{ z3DEWeOfRGt@BXi>ZvWrXJ`JeI2|$$*bzWgtYE|3x^z_?I6t!*bTsiy+gXdaqr|^57r37 zU;{GB4;W^b9e4;dIScivR!s diff --git a/src/main/resources/extra-icons/officedocs/msword-2019.svg b/src/main/resources/extra-icons/officedocs/msword-2019.svg deleted file mode 100644 index 16a56b1f..00000000 --- a/src/main/resources/extra-icons/officedocs/msword-2019.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/msword-papirus.svg b/src/main/resources/extra-icons/officedocs/msword-papirus.svg deleted file mode 100644 index f1f23f7e..00000000 --- a/src/main/resources/extra-icons/officedocs/msword-papirus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/officedocs/msword.png b/src/main/resources/extra-icons/officedocs/msword.png deleted file mode 100644 index d6c065271fcc5d9899e4aa6da1f544df72b07d8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmVN2bZe?^J zG%heMGBNQWX_Wu~0(nV9K~y+TjgxIiQ&AYlZ{-Kwi<%b8!nPHmeJK!wK4d0scQZ{A z8h*$RN<~DaNv~gI7+K5=in*xCZpanC)R^W!<^JP-BH$W%wgWis)U+{#~=`AcN>M2X0v7+LLVLb^c7sQ7ZGlF%lg z%|m>dxs(Ey{018dN?WXuHfscOri*MCAxw}>Kgis?P+@^kVV+MY>bNJ-O`en(0vzN& zS^F)WT27mi1q!qO*Wy1TDjmc+y*~`8&JT&+r~WSiUFkykqiK})a%9y9Ak|M+1O=<| z>ink-&#|ef1v`&BamFwJiOPXP)qU7p+=@Jn3zwcvhe0=l2t-71_vw2SU+jgZ{v}?I zens}F`?&MOi!BG+PzRbRM}slq1%Ip?vKGNntR5uc5ef= zSGZ8pF@=&&j&0VE4A?t3pm~hWfe&yz@SvK=Zufan(=v<|xph!gyI^$B;Ccu-jUgGZ zf{Y{W82{wMjrO-FzR(LV8MF5itF$1$%7v?gGlbbil#YlD))zFQ|IO!M>a5KD?hAIG z?FhcYj&m5dYnxbh8W<N2bZe?^J zG%heMGBNQWX_Wu~2H{CWK~z{r#g_?GlvNbRKOi;dn{mOVG?hgHZL>@bvs`BeRLXHl z(@IIrv<wns6^cy}jiIYw?aJ*8-@rpRkLzUnmnW&XYdq4&Lew2|lB8(TWHv)vHzTr#7#+`x5}Cvu(Tv2GHj-d&>5dPt_k-^I@`@zP0p zZxRql0#v+0yO>w#!g*z!p6++ieUwz8dyE_Nx!d&t+u4|aU^CY-#L(gH5F_7RuJ@G5 zjeTfl0TP97Gzpj`QN%4Jqie~Ko>ywK>3Wo?B%@cQN?k3{K*qDB%J?Te!%95-VjXU6 z;Tu)$#;t5|L5JWJUMi0blqs~cdAarj8eAh)XjAE0K>SQp5zLTGsr#MygJ_lo>A?`5 zCmHv8&d-_Ut*H+1jdJ+AB+}vUqq)|<>zaBGCO{gje~1RB8R$xh3q&2w=nq+t?z(|C z(KUCQm0sO`ItVHNsNXB+82X-|%pZh=6;ZH6n0vI>v{YasTXObem{EuV;*S zd|@h-%dHqXKNUSD$Fp~jgl@;vuV-TLi`(Ei$$+QAtcc!IiNf+G6jg|`W-kfY`VRtV z7F7?;O+id%35tHYfF)lR;l61m3?W16)Z;jI`U*BC|HKRqd3ig+4TrEJ|11`*D@4C( z2^jFQ1>@CrOiii9wC&=IF*@NV<^o~Xk!dGzwyFl}6OOV~n6T80oZ<@9)HWim(1y`( zW??L0$~lGH;&Yg{IuCtRCOo>tig$OML&U)bs9o^d&N@60Eh3=*^hA6TU5rx|*ATz6 z6hjxJ;>A^aaG>NOE?uoh-r*|D{B##oALYRMeL2z!&SK&_R`d*s$H=#=_$Id!Ij5VD zdq$kk3S7m&6eC_DgU8CQz`Wm%U>f}WEkEFJ>17geiLvyX{aCQJ0Qn?FYyJhpUr9sP zU_E^1TM!aej(Hh%E(uDk#rj`b{uDZPcO1z&ml5G>?VZxxOa+)2?$td!5m#VmgUxCxeKOm zuR}nj3jzJ6CScj-{Wx7&!$b(K_?QB7)RGKr%{+_TbzHB>u(Loo&3{5AO)^ujiLVK|J6i%wjuu7fG} z6oxNKgWxuy-zZ8%k-IC|G8dHpF3M_3M31;~fsp;iyphQQ@0zoL`8wpiY?f@oHtmD` zyaVMIoLHN1ge9de)JNzyWU&=*r&M6mfd*_U7Uxw=;KMoALDB7h|~g4xI>HBHvK{{~mromm} zrLM^(G+vsTo=iZ8pe+)qJZ?Cz&`&2Z%Sg;uR0kvw+4TG)U2OyvA=)|;*FgNWHfX5} zdd$n2>ATVCKQN-f&owoEKAWrW>$bk7F5r}#xz58fJUUKLckVPPUe;-xv4>P?@RllK zM^HudELB5`NWe-G5KZ@461nz}M6Nq0R7Uh%OCoPnMm?95xewah?B<#pH@{7nZ&pSv zMHlGIb`LUiC~Raaeo5-)79WKJt)Zl0000N2bZe?^J zG%heMGBNQWX_Wu~2IomcK~z{r&6f#ORAm&$--s;3JO)uvK{l1ejYQGZETp683@E4w z!VEJEsJUdAS-DVYh30|_njj3TE3>G%7DqGF%1SM5!<0=;(hRU!%q;zP-$Thd^G56F zIn6o0^Va$9|GUfgzRUbCegN#k;5?J`zJ*ckFf(Ze3zKfNFe#OPIB4Fnvgt;vx5{7* zQ5&q?l$(B)I0f4tLx@%ZiHBNHX|FKJrPr8@9oI!_qqU93Xmv>4V{NP0XOXD4n*&L} zU=lD^W3Wt1(_6CBw_D2T{2-kdr0LB4UONHNKaJRf|HW)0!~1@7RPOp!qTbllUb)%i zO*0EkGgu=@z{K?J*5}FSGBQ-IFsn4joT)ac+=a!zzV zJj!ZBOz|B73A&q-41;;FMrTUV=q>YT@H~y)ypxVch;N7n;*KHH@5C+QwpwQb2Y0R1 zn?8=#HBR&>tqXN4stK`+wkE{AsMb$hbj^Vmpf;HM(BPHCS>iHbr5W8y)3+G7AN1bs zxQgbc;Id1nq}sY8Y+Bj*>D;V1IGxtATEkGz~+8sTYz%oWyH}yG1>1UvEVFJ+nS-={1e8mJ^|V5 zm2^Cb)Ga^r_r|X~jnPYwU_#z^P;G65Y}rxx$fm%t*OSChL0l5%fn94$fX>vA@b=f} zF={e8(ThW;=Rr~a1IDjCged1>E2FI^Eg?`Cd2plpFPd;0Kl+ufkmz;+` z375>@L2MU9w2r3e@tkJzOjB6i6K z2pXn9m+%o7_Iw!$ZGbHIOLR$J4(Hfs;T$tV5Z7tz!LIw(wt(c43mBk$6YkzY2#!j{ z*fl2+HD?n#h7N?--3#7*hGF#!Y@LGz(MhlE!t0Exk@?k34F#p2gknA#0WuL zk{8;^flZeYHG3o42ZX_YU<}3mT|BN?iVj`F;T1BFXYl0Jcq+39-n}CcGF*fBm7hah zaSd{9E&Q_fz%{eXE|P`sfz3N>TYzd?Bf0kwI#VKbraa){%f-D@k0IzOp9;^Q2!xHD zg9yrG?w!8lUqa%BGc8p>x#2sr2x9Uem+3;dzOV)C`YPK3)Vg2zr0Y5~0iNB$`8)`U zQX-II|HRaFywUEFDF}_upm0QDP(}`ti|cs-qn3R{RWKD!VZ-1^&xCN9ut1;+cmXCP z6`tc~-Oe|Z!VpWbmZO(^Iv@9dL2>X2i-Hg3f=}P4`TS6n|HuoF=bwS!oGlPfS_N_X zNpI3FU88(pu5fBA~Da z{;%w&IF~{^OBl(*cPR(H7Z$)}^zeBGxcdad#mxg=!2=MPSxog`h494rU_E`|+O8vo zMuGTMlzN?)+ZL#^52PjzZG}?Bjc(dW;z@xNgcUL5Wpod%YGI71-X`t-i>i9+&%vOJ@*LN zs^jpX_&NJspFf)Yzyt4yI3C50 z=wIy#wRN}I!n(6;VRZm6fVSYhso~g9yWuL0!Q61quDEsUZ4d6f_=@Jn;L=McXv2Ak z2Dgi}xc&frok(){Wm4{dE1acOf)Uoi71m@zrm9cH}un>cmX4L9Ys8y!?S zb6|$i{5W+)anubxLjo3(fI>Rot1(!=pswi$t}~)*3yEy)jJmJB+D5dvN@Ne|nkrF; z{BwVGMtqOv4<_q4n4|+l`7K7V#Uz@v!`vprXmL>NwzgI6wNUqD@+V{c$y1|9fSNot zp9JKSxP2sMJ$W(wKlO&T9^4Dx9Un9^lZ+;Y+BfQ?tRltUn{ARSZ#k>>U6+!#I#NIB ksoLD+wCD@lW7r1FpIf!iBx)Fo(^b diff --git a/src/main/resources/extra-icons/officedocs/msword_dark.png b/src/main/resources/extra-icons/officedocs/msword_dark.png deleted file mode 100644 index 66a1601b4e4467e41ecabe4a1965797030edf43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmVN2bZe?^J zG%heMGBNQWX_Wu~0((hBK~y+Tjgx&y6JZ?3*9$tmokT^F6q6(nDrIwDANR+VTm35I!{s7|9UYtmn7E;t3d7FGw9YHnKQL_s!JN zJx&oZeX}Zw@&3|YgT>3QG;fT0@GHmy$b^`kh%q}&|0Pg1+YzN}hExF6@*K2zx+x^k z-TT68jO{4se21KtX9(8C{Vp6i-;ILXZ=r0QfV7~VP#1=3vI_qKV0R8X+l$SU}W>t!y8XpS< zUOu<&CFt0ABxY71qj~`Ju6St5+Q}h$puA#3WL~uh$}}k!oHl<(Y+@QTWa~lM&IARr zu09IgLQ1OxQD<+Gt*=3~k`D?6rIsHk>Yl=xyK~TwE}^jNBlIH+A%UX09}%kKgq$$Z z4OX#0c<<{`_02%m@kUJ7)QX^F%(t5~O*5=_nLJm2UookJ-`ujEX_w3_px5b?^}5bU zia2aBKKQwxVSU+T4ywrTbQ?LJgVaH(&%k+qX)T@>x^r#^-T6U;{EkZ+8mMr{gqcj( wTseVg-LPBEjQP{bth}DF_|sN9) \ No newline at end of file diff --git a/src/main/resources/extra-icons/onap-cba-blueprint_dark.svg b/src/main/resources/extra-icons/onap-cba-blueprint_dark.svg deleted file mode 100644 index 13379587..00000000 --- a/src/main/resources/extra-icons/onap-cba-blueprint_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/onap-cba-definitions.svg b/src/main/resources/extra-icons/onap-cba-definitions.svg deleted file mode 100644 index 6d7152fe..00000000 --- a/src/main/resources/extra-icons/onap-cba-definitions.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/onap-cba-definitions_dark.svg b/src/main/resources/extra-icons/onap-cba-definitions_dark.svg deleted file mode 100644 index 207905c8..00000000 --- a/src/main/resources/extra-icons/onap-cba-definitions_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/onap-cba-tosca.svg b/src/main/resources/extra-icons/onap-cba-tosca.svg deleted file mode 100644 index 8eac20d7..00000000 --- a/src/main/resources/extra-icons/onap-cba-tosca.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/onap-cba-tosca_dark.svg b/src/main/resources/extra-icons/onap-cba-tosca_dark.svg deleted file mode 100644 index 18e8530d..00000000 --- a/src/main/resources/extra-icons/onap-cba-tosca_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/opentofu.svg b/src/main/resources/extra-icons/opentofu.svg deleted file mode 100644 index 417a9c75..00000000 --- a/src/main/resources/extra-icons/opentofu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/packageinfojava.svg b/src/main/resources/extra-icons/packageinfojava.svg deleted file mode 100644 index 4867d399..00000000 --- a/src/main/resources/extra-icons/packageinfojava.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/packageinfojava_dark.svg b/src/main/resources/extra-icons/packageinfojava_dark.svg deleted file mode 100644 index 1287a94b..00000000 --- a/src/main/resources/extra-icons/packageinfojava_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/packagejsonlock.svg b/src/main/resources/extra-icons/packagejsonlock.svg deleted file mode 100644 index ea2a7e49..00000000 --- a/src/main/resources/extra-icons/packagejsonlock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pdd.svg b/src/main/resources/extra-icons/pdd.svg deleted file mode 100644 index 1269aa72..00000000 --- a/src/main/resources/extra-icons/pdd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pdd_dark.svg b/src/main/resources/extra-icons/pdd_dark.svg deleted file mode 100644 index 9c7d3e52..00000000 --- a/src/main/resources/extra-icons/pdd_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pdf.svg b/src/main/resources/extra-icons/pdf.svg deleted file mode 100644 index f44be5e2..00000000 --- a/src/main/resources/extra-icons/pdf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pdf_alt.svg b/src/main/resources/extra-icons/pdf_alt.svg deleted file mode 100644 index ac7c5df0..00000000 --- a/src/main/resources/extra-icons/pdf_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pdf_alt2.svg b/src/main/resources/extra-icons/pdf_alt2.svg deleted file mode 100644 index 4037520b..00000000 --- a/src/main/resources/extra-icons/pdf_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pdf_alt3.svg b/src/main/resources/extra-icons/pdf_alt3.svg deleted file mode 100644 index d6997577..00000000 --- a/src/main/resources/extra-icons/pdf_alt3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pdf_dark.svg b/src/main/resources/extra-icons/pdf_dark.svg deleted file mode 100644 index 088c2686..00000000 --- a/src/main/resources/extra-icons/pdf_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pid.svg b/src/main/resources/extra-icons/pid.svg deleted file mode 100644 index 020dc073..00000000 --- a/src/main/resources/extra-icons/pid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pid_dark.svg b/src/main/resources/extra-icons/pid_dark.svg deleted file mode 100644 index 098cdf5e..00000000 --- a/src/main/resources/extra-icons/pid_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/auto.svg b/src/main/resources/extra-icons/plugin-internals/auto.svg deleted file mode 100644 index 37ec8f3a..00000000 --- a/src/main/resources/extra-icons/plugin-internals/auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/auto_dark.svg b/src/main/resources/extra-icons/plugin-internals/auto_dark.svg deleted file mode 100644 index b1a8c83f..00000000 --- a/src/main/resources/extra-icons/plugin-internals/auto_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/checkmark.svg b/src/main/resources/extra-icons/plugin-internals/checkmark.svg deleted file mode 100644 index 776ed27f..00000000 --- a/src/main/resources/extra-icons/plugin-internals/checkmark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/checkmark_dark.svg b/src/main/resources/extra-icons/plugin-internals/checkmark_dark.svg deleted file mode 100644 index 58f21ba7..00000000 --- a/src/main/resources/extra-icons/plugin-internals/checkmark_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/contextHelp.svg b/src/main/resources/extra-icons/plugin-internals/contextHelp.svg deleted file mode 100644 index 1afa051b..00000000 --- a/src/main/resources/extra-icons/plugin-internals/contextHelp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/export.svg b/src/main/resources/extra-icons/plugin-internals/export.svg deleted file mode 100644 index c10a4682..00000000 --- a/src/main/resources/extra-icons/plugin-internals/export.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/export_dark.svg b/src/main/resources/extra-icons/plugin-internals/export_dark.svg deleted file mode 100644 index b7428a25..00000000 --- a/src/main/resources/extra-icons/plugin-internals/export_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/folder_newui.svg b/src/main/resources/extra-icons/plugin-internals/folder_newui.svg deleted file mode 100644 index 41c03ebd..00000000 --- a/src/main/resources/extra-icons/plugin-internals/folder_newui.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/folder_newui_dark.svg b/src/main/resources/extra-icons/plugin-internals/folder_newui_dark.svg deleted file mode 100644 index 20b9d391..00000000 --- a/src/main/resources/extra-icons/plugin-internals/folder_newui_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/folder_oldui.svg b/src/main/resources/extra-icons/plugin-internals/folder_oldui.svg deleted file mode 100644 index 8ccdb193..00000000 --- a/src/main/resources/extra-icons/plugin-internals/folder_oldui.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/gutterCheckBox.svg b/src/main/resources/extra-icons/plugin-internals/gutterCheckBox.svg deleted file mode 100644 index 849ff0ac..00000000 --- a/src/main/resources/extra-icons/plugin-internals/gutterCheckBox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/gutterCheckBoxSelected.svg b/src/main/resources/extra-icons/plugin-internals/gutterCheckBoxSelected.svg deleted file mode 100644 index 3555316d..00000000 --- a/src/main/resources/extra-icons/plugin-internals/gutterCheckBoxSelected.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/gutterCheckBoxSelected_dark.svg b/src/main/resources/extra-icons/plugin-internals/gutterCheckBoxSelected_dark.svg deleted file mode 100644 index 6be89fe0..00000000 --- a/src/main/resources/extra-icons/plugin-internals/gutterCheckBoxSelected_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/gutterCheckBox_dark.svg b/src/main/resources/extra-icons/plugin-internals/gutterCheckBox_dark.svg deleted file mode 100644 index 40bd0bd2..00000000 --- a/src/main/resources/extra-icons/plugin-internals/gutterCheckBox_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/import.svg b/src/main/resources/extra-icons/plugin-internals/import.svg deleted file mode 100644 index 2339e7c9..00000000 --- a/src/main/resources/extra-icons/plugin-internals/import.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/import_dark.svg b/src/main/resources/extra-icons/plugin-internals/import_dark.svg deleted file mode 100644 index 317328c9..00000000 --- a/src/main/resources/extra-icons/plugin-internals/import_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/reboot.svg b/src/main/resources/extra-icons/plugin-internals/reboot.svg deleted file mode 100644 index cb277322..00000000 --- a/src/main/resources/extra-icons/plugin-internals/reboot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/reboot_dark.svg b/src/main/resources/extra-icons/plugin-internals/reboot_dark.svg deleted file mode 100644 index 13c8e220..00000000 --- a/src/main/resources/extra-icons/plugin-internals/reboot_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/refresh.svg b/src/main/resources/extra-icons/plugin-internals/refresh.svg deleted file mode 100644 index d44eb1c3..00000000 --- a/src/main/resources/extra-icons/plugin-internals/refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/refresh_dark.svg b/src/main/resources/extra-icons/plugin-internals/refresh_dark.svg deleted file mode 100644 index e4be27fc..00000000 --- a/src/main/resources/extra-icons/plugin-internals/refresh_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/remove.svg b/src/main/resources/extra-icons/plugin-internals/remove.svg deleted file mode 100644 index 31b6d333..00000000 --- a/src/main/resources/extra-icons/plugin-internals/remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/remove_dark.svg b/src/main/resources/extra-icons/plugin-internals/remove_dark.svg deleted file mode 100644 index 1629ad0f..00000000 --- a/src/main/resources/extra-icons/plugin-internals/remove_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/plugin-internals/web.svg b/src/main/resources/extra-icons/plugin-internals/web.svg deleted file mode 100644 index 6cdbe888..00000000 --- a/src/main/resources/extra-icons/plugin-internals/web.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pnpm.svg b/src/main/resources/extra-icons/pnpm.svg deleted file mode 100644 index 9c577ab6..00000000 --- a/src/main/resources/extra-icons/pnpm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/poetry.svg b/src/main/resources/extra-icons/poetry.svg deleted file mode 100644 index 480b7594..00000000 --- a/src/main/resources/extra-icons/poetry.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/poetry_lock.svg b/src/main/resources/extra-icons/poetry_lock.svg deleted file mode 100644 index abe11b60..00000000 --- a/src/main/resources/extra-icons/poetry_lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/poetry_lock_dark.svg b/src/main/resources/extra-icons/poetry_lock_dark.svg deleted file mode 100644 index 7e4b736d..00000000 --- a/src/main/resources/extra-icons/poetry_lock_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/postcss.svg b/src/main/resources/extra-icons/postcss.svg deleted file mode 100644 index 08d8c4e9..00000000 --- a/src/main/resources/extra-icons/postcss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/postman.svg b/src/main/resources/extra-icons/postman.svg deleted file mode 100644 index 8b8712b3..00000000 --- a/src/main/resources/extra-icons/postman.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/postman_col.svg b/src/main/resources/extra-icons/postman_col.svg deleted file mode 100644 index 3b5b279b..00000000 --- a/src/main/resources/extra-icons/postman_col.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/postman_env.svg b/src/main/resources/extra-icons/postman_env.svg deleted file mode 100644 index 405fd4f6..00000000 --- a/src/main/resources/extra-icons/postman_env.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/prettier.svg b/src/main/resources/extra-icons/prettier.svg deleted file mode 100644 index aaf85e7d..00000000 --- a/src/main/resources/extra-icons/prettier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/prettier_alt.svg b/src/main/resources/extra-icons/prettier_alt.svg deleted file mode 100644 index d34d88a6..00000000 --- a/src/main/resources/extra-icons/prettier_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/prettier_dark.svg b/src/main/resources/extra-icons/prettier_dark.svg deleted file mode 100644 index 45e42222..00000000 --- a/src/main/resources/extra-icons/prettier_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/prettierignore.svg b/src/main/resources/extra-icons/prettierignore.svg deleted file mode 100644 index fba54879..00000000 --- a/src/main/resources/extra-icons/prettierignore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/prettierignore_dark.svg b/src/main/resources/extra-icons/prettierignore_dark.svg deleted file mode 100644 index 3f0acb29..00000000 --- a/src/main/resources/extra-icons/prettierignore_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/privacy.svg b/src/main/resources/extra-icons/privacy.svg deleted file mode 100644 index 251b806f..00000000 --- a/src/main/resources/extra-icons/privacy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/proguard.svg b/src/main/resources/extra-icons/proguard.svg deleted file mode 100644 index a190fc6a..00000000 --- a/src/main/resources/extra-icons/proguard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/proguard_dark.svg b/src/main/resources/extra-icons/proguard_dark.svg deleted file mode 100644 index 090682da..00000000 --- a/src/main/resources/extra-icons/proguard_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/prometheus.svg b/src/main/resources/extra-icons/prometheus.svg deleted file mode 100644 index 2daf1163..00000000 --- a/src/main/resources/extra-icons/prometheus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/puppet.svg b/src/main/resources/extra-icons/puppet.svg deleted file mode 100644 index 83bba999..00000000 --- a/src/main/resources/extra-icons/puppet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/pytest.svg b/src/main/resources/extra-icons/pytest.svg deleted file mode 100644 index 82bf50e6..00000000 --- a/src/main/resources/extra-icons/pytest.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/qodana.svg b/src/main/resources/extra-icons/qodana.svg deleted file mode 100644 index 0401f822..00000000 --- a/src/main/resources/extra-icons/qodana.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/qodana_alt.svg b/src/main/resources/extra-icons/qodana_alt.svg deleted file mode 100644 index 288a03e3..00000000 --- a/src/main/resources/extra-icons/qodana_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/readme.svg b/src/main/resources/extra-icons/readme.svg deleted file mode 100644 index 7207b1e9..00000000 --- a/src/main/resources/extra-icons/readme.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/readme_alt.svg b/src/main/resources/extra-icons/readme_alt.svg deleted file mode 100644 index f91aedec..00000000 --- a/src/main/resources/extra-icons/readme_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/readme_alt2.svg b/src/main/resources/extra-icons/readme_alt2.svg deleted file mode 100644 index d4f685d9..00000000 --- a/src/main/resources/extra-icons/readme_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/readme_alt_dark.svg b/src/main/resources/extra-icons/readme_alt_dark.svg deleted file mode 100644 index ff527dee..00000000 --- a/src/main/resources/extra-icons/readme_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/readme_dark.svg b/src/main/resources/extra-icons/readme_dark.svg deleted file mode 100644 index 9ddc255e..00000000 --- a/src/main/resources/extra-icons/readme_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/redis.svg b/src/main/resources/extra-icons/redis.svg deleted file mode 100644 index 445a78ce..00000000 --- a/src/main/resources/extra-icons/redis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/rego.svg b/src/main/resources/extra-icons/rego.svg deleted file mode 100644 index 56d44b1f..00000000 --- a/src/main/resources/extra-icons/rego.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/renovate.svg b/src/main/resources/extra-icons/renovate.svg deleted file mode 100644 index 78a40586..00000000 --- a/src/main/resources/extra-icons/renovate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/requirementstxt_python.svg b/src/main/resources/extra-icons/requirementstxt_python.svg deleted file mode 100644 index 237a679f..00000000 --- a/src/main/resources/extra-icons/requirementstxt_python.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/requirementstxt_python_alt.svg b/src/main/resources/extra-icons/requirementstxt_python_alt.svg deleted file mode 100644 index df35a482..00000000 --- a/src/main/resources/extra-icons/requirementstxt_python_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/restyled.svg b/src/main/resources/extra-icons/restyled.svg deleted file mode 100644 index 08f5fc23..00000000 --- a/src/main/resources/extra-icons/restyled.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/restyled_alt.svg b/src/main/resources/extra-icons/restyled_alt.svg deleted file mode 100644 index 6331994d..00000000 --- a/src/main/resources/extra-icons/restyled_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/restyled_alt2.svg b/src/main/resources/extra-icons/restyled_alt2.svg deleted file mode 100644 index ced39465..00000000 --- a/src/main/resources/extra-icons/restyled_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/restyled_dark.svg b/src/main/resources/extra-icons/restyled_dark.svg deleted file mode 100644 index 8f04c910..00000000 --- a/src/main/resources/extra-icons/restyled_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/roadmap.svg b/src/main/resources/extra-icons/roadmap.svg deleted file mode 100644 index 1f490021..00000000 --- a/src/main/resources/extra-icons/roadmap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/roadmap_dark.svg b/src/main/resources/extra-icons/roadmap_dark.svg deleted file mode 100644 index 81d58692..00000000 --- a/src/main/resources/extra-icons/roadmap_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/robotframework.svg b/src/main/resources/extra-icons/robotframework.svg deleted file mode 100644 index 2ad14480..00000000 --- a/src/main/resources/extra-icons/robotframework.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/robotframework_alt.svg b/src/main/resources/extra-icons/robotframework_alt.svg deleted file mode 100644 index 4a462aec..00000000 --- a/src/main/resources/extra-icons/robotframework_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/robotframework_alt_dark.svg b/src/main/resources/extra-icons/robotframework_alt_dark.svg deleted file mode 100644 index 21611ef8..00000000 --- a/src/main/resources/extra-icons/robotframework_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/rollup.svg b/src/main/resources/extra-icons/rollup.svg deleted file mode 100644 index 10e67b15..00000000 --- a/src/main/resources/extra-icons/rollup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/rpm.svg b/src/main/resources/extra-icons/rpm.svg deleted file mode 100644 index 6d917f10..00000000 --- a/src/main/resources/extra-icons/rpm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/rultor.svg b/src/main/resources/extra-icons/rultor.svg deleted file mode 100644 index ffedf984..00000000 --- a/src/main/resources/extra-icons/rultor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/rultor_dark.svg b/src/main/resources/extra-icons/rultor_dark.svg deleted file mode 100644 index 4db48ae2..00000000 --- a/src/main/resources/extra-icons/rultor_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/sass.svg b/src/main/resources/extra-icons/sass.svg deleted file mode 100644 index 72227550..00000000 --- a/src/main/resources/extra-icons/sass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/scalingo.svg b/src/main/resources/extra-icons/scalingo.svg deleted file mode 100644 index f21b785b..00000000 --- a/src/main/resources/extra-icons/scalingo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/scalingo_dark.svg b/src/main/resources/extra-icons/scalingo_dark.svg deleted file mode 100644 index 5f57125a..00000000 --- a/src/main/resources/extra-icons/scalingo_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/screwdriver.svg b/src/main/resources/extra-icons/screwdriver.svg deleted file mode 100644 index cc5560bf..00000000 --- a/src/main/resources/extra-icons/screwdriver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/scss.svg b/src/main/resources/extra-icons/scss.svg deleted file mode 100644 index 70a6a4e9..00000000 --- a/src/main/resources/extra-icons/scss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/security.svg b/src/main/resources/extra-icons/security.svg deleted file mode 100644 index aa206d20..00000000 --- a/src/main/resources/extra-icons/security.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/semaphoreci.svg b/src/main/resources/extra-icons/semaphoreci.svg deleted file mode 100644 index dcea07ec..00000000 --- a/src/main/resources/extra-icons/semaphoreci.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/sequelize.svg b/src/main/resources/extra-icons/sequelize.svg deleted file mode 100644 index ea9aeba0..00000000 --- a/src/main/resources/extra-icons/sequelize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/snap.svg b/src/main/resources/extra-icons/snap.svg deleted file mode 100644 index 9e06a8cd..00000000 --- a/src/main/resources/extra-icons/snap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/sonar.svg b/src/main/resources/extra-icons/sonar.svg deleted file mode 100644 index 18bc2517..00000000 --- a/src/main/resources/extra-icons/sonar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/sonar_dark.svg b/src/main/resources/extra-icons/sonar_dark.svg deleted file mode 100644 index 89800518..00000000 --- a/src/main/resources/extra-icons/sonar_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/storybook.svg b/src/main/resources/extra-icons/storybook.svg deleted file mode 100644 index 78c948d2..00000000 --- a/src/main/resources/extra-icons/storybook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/stylus-browserext.svg b/src/main/resources/extra-icons/stylus-browserext.svg deleted file mode 100644 index 99e6e3e6..00000000 --- a/src/main/resources/extra-icons/stylus-browserext.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/svelte.svg b/src/main/resources/extra-icons/svelte.svg deleted file mode 100644 index 7d48588e..00000000 --- a/src/main/resources/extra-icons/svelte.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/svg.svg b/src/main/resources/extra-icons/svg.svg deleted file mode 100644 index c26b8cb5..00000000 --- a/src/main/resources/extra-icons/svg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/svg_alt.svg b/src/main/resources/extra-icons/svg_alt.svg deleted file mode 100644 index 36bf6ac1..00000000 --- a/src/main/resources/extra-icons/svg_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/svg_dark.svg b/src/main/resources/extra-icons/svg_dark.svg deleted file mode 100644 index d7dde351..00000000 --- a/src/main/resources/extra-icons/svg_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/svgo.svg b/src/main/resources/extra-icons/svgo.svg deleted file mode 100644 index 821ee401..00000000 --- a/src/main/resources/extra-icons/svgo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/svgo_alt.svg b/src/main/resources/extra-icons/svgo_alt.svg deleted file mode 100644 index 85726196..00000000 --- a/src/main/resources/extra-icons/svgo_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/swagger.svg b/src/main/resources/extra-icons/swagger.svg deleted file mode 100644 index 0a185998..00000000 --- a/src/main/resources/extra-icons/swagger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/swagger_alt.svg b/src/main/resources/extra-icons/swagger_alt.svg deleted file mode 100644 index b3f70d20..00000000 --- a/src/main/resources/extra-icons/swagger_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/swaggerignore.svg b/src/main/resources/extra-icons/swaggerignore.svg deleted file mode 100644 index dff7e54e..00000000 --- a/src/main/resources/extra-icons/swaggerignore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/swaggerignore_dark.svg b/src/main/resources/extra-icons/swaggerignore_dark.svg deleted file mode 100644 index 1eb660ff..00000000 --- a/src/main/resources/extra-icons/swaggerignore_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/tailwindcss.svg b/src/main/resources/extra-icons/tailwindcss.svg deleted file mode 100644 index 211b960f..00000000 --- a/src/main/resources/extra-icons/tailwindcss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/terraform.svg b/src/main/resources/extra-icons/terraform.svg deleted file mode 100644 index dd0a93c5..00000000 --- a/src/main/resources/extra-icons/terraform.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/terraform_dark.svg b/src/main/resources/extra-icons/terraform_dark.svg deleted file mode 100644 index 94eed939..00000000 --- a/src/main/resources/extra-icons/terraform_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/test-javascript.svg b/src/main/resources/extra-icons/test-javascript.svg deleted file mode 100644 index e00073c4..00000000 --- a/src/main/resources/extra-icons/test-javascript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/test-javascript_alt.svg b/src/main/resources/extra-icons/test-javascript_alt.svg deleted file mode 100644 index f3dc44f0..00000000 --- a/src/main/resources/extra-icons/test-javascript_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/test-ts.svg b/src/main/resources/extra-icons/test-ts.svg deleted file mode 100644 index a27e2f09..00000000 --- a/src/main/resources/extra-icons/test-ts.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/test-ts_alt.svg b/src/main/resources/extra-icons/test-ts_alt.svg deleted file mode 100644 index d404f9ab..00000000 --- a/src/main/resources/extra-icons/test-ts_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/testing.svg b/src/main/resources/extra-icons/testing.svg deleted file mode 100644 index 32ea4025..00000000 --- a/src/main/resources/extra-icons/testing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/testing_dark.svg b/src/main/resources/extra-icons/testing_dark.svg deleted file mode 100644 index 6129b25a..00000000 --- a/src/main/resources/extra-icons/testing_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/tinylog_properties.svg b/src/main/resources/extra-icons/tinylog_properties.svg deleted file mode 100644 index a3f1a0b8..00000000 --- a/src/main/resources/extra-icons/tinylog_properties.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/todo.svg b/src/main/resources/extra-icons/todo.svg deleted file mode 100644 index f597754f..00000000 --- a/src/main/resources/extra-icons/todo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/todo_alt.svg b/src/main/resources/extra-icons/todo_alt.svg deleted file mode 100644 index 633509fb..00000000 --- a/src/main/resources/extra-icons/todo_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/todo_alt_dark.svg b/src/main/resources/extra-icons/todo_alt_dark.svg deleted file mode 100644 index 2a622d04..00000000 --- a/src/main/resources/extra-icons/todo_alt_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/todo_dark.svg b/src/main/resources/extra-icons/todo_dark.svg deleted file mode 100644 index 196c9e65..00000000 --- a/src/main/resources/extra-icons/todo_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/tomcat.svg b/src/main/resources/extra-icons/tomcat.svg deleted file mode 100644 index c1f09827..00000000 --- a/src/main/resources/extra-icons/tomcat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/toml.svg b/src/main/resources/extra-icons/toml.svg deleted file mode 100644 index 2f734f29..00000000 --- a/src/main/resources/extra-icons/toml.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/toml_dark.svg b/src/main/resources/extra-icons/toml_dark.svg deleted file mode 100644 index aad48eeb..00000000 --- a/src/main/resources/extra-icons/toml_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/tox.svg b/src/main/resources/extra-icons/tox.svg deleted file mode 100644 index 317f13a4..00000000 --- a/src/main/resources/extra-icons/tox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis.svg b/src/main/resources/extra-icons/travis.svg deleted file mode 100644 index 6cd73225..00000000 --- a/src/main/resources/extra-icons/travis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt.svg b/src/main/resources/extra-icons/travis_alt.svg deleted file mode 100644 index 7a85becc..00000000 --- a/src/main/resources/extra-icons/travis_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt02.svg b/src/main/resources/extra-icons/travis_alt02.svg deleted file mode 100644 index 60cda289..00000000 --- a/src/main/resources/extra-icons/travis_alt02.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt03.svg b/src/main/resources/extra-icons/travis_alt03.svg deleted file mode 100644 index 9dca8cbb..00000000 --- a/src/main/resources/extra-icons/travis_alt03.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt04.svg b/src/main/resources/extra-icons/travis_alt04.svg deleted file mode 100644 index 41181f75..00000000 --- a/src/main/resources/extra-icons/travis_alt04.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt05.svg b/src/main/resources/extra-icons/travis_alt05.svg deleted file mode 100644 index 52b395fc..00000000 --- a/src/main/resources/extra-icons/travis_alt05.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt06.svg b/src/main/resources/extra-icons/travis_alt06.svg deleted file mode 100644 index 423a9dfb..00000000 --- a/src/main/resources/extra-icons/travis_alt06.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt07.svg b/src/main/resources/extra-icons/travis_alt07.svg deleted file mode 100644 index 9cf162ac..00000000 --- a/src/main/resources/extra-icons/travis_alt07.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt08.svg b/src/main/resources/extra-icons/travis_alt08.svg deleted file mode 100644 index a28ae3c7..00000000 --- a/src/main/resources/extra-icons/travis_alt08.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt09.svg b/src/main/resources/extra-icons/travis_alt09.svg deleted file mode 100644 index 27c041fb..00000000 --- a/src/main/resources/extra-icons/travis_alt09.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt10.svg b/src/main/resources/extra-icons/travis_alt10.svg deleted file mode 100644 index 92a2f417..00000000 --- a/src/main/resources/extra-icons/travis_alt10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt11.svg b/src/main/resources/extra-icons/travis_alt11.svg deleted file mode 100644 index 507e2ea3..00000000 --- a/src/main/resources/extra-icons/travis_alt11.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt12.svg b/src/main/resources/extra-icons/travis_alt12.svg deleted file mode 100644 index 6244cfcb..00000000 --- a/src/main/resources/extra-icons/travis_alt12.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt13.svg b/src/main/resources/extra-icons/travis_alt13.svg deleted file mode 100644 index c737a500..00000000 --- a/src/main/resources/extra-icons/travis_alt13.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/travis_alt14.svg b/src/main/resources/extra-icons/travis_alt14.svg deleted file mode 100644 index 8f6a0c7e..00000000 --- a/src/main/resources/extra-icons/travis_alt14.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/tsconfig.svg b/src/main/resources/extra-icons/tsconfig.svg deleted file mode 100644 index bf11caf4..00000000 --- a/src/main/resources/extra-icons/tsconfig.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/tsx.svg b/src/main/resources/extra-icons/tsx.svg deleted file mode 100644 index 00eda341..00000000 --- a/src/main/resources/extra-icons/tsx.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/typescript-def.svg b/src/main/resources/extra-icons/typescript-def.svg deleted file mode 100644 index 58cf3c31..00000000 --- a/src/main/resources/extra-icons/typescript-def.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/typescript.svg b/src/main/resources/extra-icons/typescript.svg deleted file mode 100644 index 36d89c69..00000000 --- a/src/main/resources/extra-icons/typescript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/typescript_dark.svg b/src/main/resources/extra-icons/typescript_dark.svg deleted file mode 100644 index e1920a3b..00000000 --- a/src/main/resources/extra-icons/typescript_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/uml.svg b/src/main/resources/extra-icons/uml.svg deleted file mode 100644 index 23fd3a90..00000000 --- a/src/main/resources/extra-icons/uml.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/uml_dark.svg b/src/main/resources/extra-icons/uml_dark.svg deleted file mode 100644 index 8767b7b3..00000000 --- a/src/main/resources/extra-icons/uml_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/vagrant.svg b/src/main/resources/extra-icons/vagrant.svg deleted file mode 100644 index 6edd25aa..00000000 --- a/src/main/resources/extra-icons/vagrant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/velocity.svg b/src/main/resources/extra-icons/velocity.svg deleted file mode 100644 index de29572c..00000000 --- a/src/main/resources/extra-icons/velocity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/version.svg b/src/main/resources/extra-icons/version.svg deleted file mode 100644 index c5c5898a..00000000 --- a/src/main/resources/extra-icons/version.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/version_dark.svg b/src/main/resources/extra-icons/version_dark.svg deleted file mode 100644 index 09bbd1a8..00000000 --- a/src/main/resources/extra-icons/version_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/video.svg b/src/main/resources/extra-icons/video.svg deleted file mode 100644 index 74f2f227..00000000 --- a/src/main/resources/extra-icons/video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/video_alt.svg b/src/main/resources/extra-icons/video_alt.svg deleted file mode 100644 index 9b0ecb71..00000000 --- a/src/main/resources/extra-icons/video_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/video_alt2.svg b/src/main/resources/extra-icons/video_alt2.svg deleted file mode 100644 index f2465184..00000000 --- a/src/main/resources/extra-icons/video_alt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/video_alt3.svg b/src/main/resources/extra-icons/video_alt3.svg deleted file mode 100644 index 67f21947..00000000 --- a/src/main/resources/extra-icons/video_alt3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/vite.svg b/src/main/resources/extra-icons/vite.svg deleted file mode 100644 index bc689985..00000000 --- a/src/main/resources/extra-icons/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/vite_alt.svg b/src/main/resources/extra-icons/vite_alt.svg deleted file mode 100644 index 68cf0b0f..00000000 --- a/src/main/resources/extra-icons/vite_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/vitest.svg b/src/main/resources/extra-icons/vitest.svg deleted file mode 100644 index 3f87096d..00000000 --- a/src/main/resources/extra-icons/vitest.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/vitest_dark.svg b/src/main/resources/extra-icons/vitest_dark.svg deleted file mode 100644 index ee79893b..00000000 --- a/src/main/resources/extra-icons/vitest_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/vscode.svg b/src/main/resources/extra-icons/vscode.svg deleted file mode 100644 index f74177fd..00000000 --- a/src/main/resources/extra-icons/vscode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/weblate.svg b/src/main/resources/extra-icons/weblate.svg deleted file mode 100644 index 1c9ac0a5..00000000 --- a/src/main/resources/extra-icons/weblate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/webpack.svg b/src/main/resources/extra-icons/webpack.svg deleted file mode 100644 index 21e358dc..00000000 --- a/src/main/resources/extra-icons/webpack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/webpack_alt.svg b/src/main/resources/extra-icons/webpack_alt.svg deleted file mode 100644 index 93b69027..00000000 --- a/src/main/resources/extra-icons/webpack_alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/werf.svg b/src/main/resources/extra-icons/werf.svg deleted file mode 100644 index 9e5009a3..00000000 --- a/src/main/resources/extra-icons/werf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/werf_dark.svg b/src/main/resources/extra-icons/werf_dark.svg deleted file mode 100644 index fba59dab..00000000 --- a/src/main/resources/extra-icons/werf_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/wheel.svg b/src/main/resources/extra-icons/wheel.svg deleted file mode 100644 index 458b2829..00000000 --- a/src/main/resources/extra-icons/wheel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/wma.svg b/src/main/resources/extra-icons/wma.svg deleted file mode 100644 index e2fa66ae..00000000 --- a/src/main/resources/extra-icons/wma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/wma_dark.svg b/src/main/resources/extra-icons/wma_dark.svg deleted file mode 100644 index 65c4bf37..00000000 --- a/src/main/resources/extra-icons/wma_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/writerside.svg b/src/main/resources/extra-icons/writerside.svg deleted file mode 100644 index 5d04bace..00000000 --- a/src/main/resources/extra-icons/writerside.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/writerside_cfg.svg b/src/main/resources/extra-icons/writerside_cfg.svg deleted file mode 100644 index 06f69565..00000000 --- a/src/main/resources/extra-icons/writerside_cfg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/writerside_list.svg b/src/main/resources/extra-icons/writerside_list.svg deleted file mode 100644 index 27278cdb..00000000 --- a/src/main/resources/extra-icons/writerside_list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/writerside_list_dark.svg b/src/main/resources/extra-icons/writerside_list_dark.svg deleted file mode 100644 index b18f8d72..00000000 --- a/src/main/resources/extra-icons/writerside_list_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/writerside_tree.svg b/src/main/resources/extra-icons/writerside_tree.svg deleted file mode 100644 index 66004e1c..00000000 --- a/src/main/resources/extra-icons/writerside_tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/xiph.svg b/src/main/resources/extra-icons/xiph.svg deleted file mode 100644 index ac6faffc..00000000 --- a/src/main/resources/extra-icons/xiph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/yang.svg b/src/main/resources/extra-icons/yang.svg deleted file mode 100644 index 24ce4d43..00000000 --- a/src/main/resources/extra-icons/yang.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/zalando.svg b/src/main/resources/extra-icons/zalando.svg deleted file mode 100644 index 19a9ec5d..00000000 --- a/src/main/resources/extra-icons/zalando.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/extra-icons/zalando_dark.svg b/src/main/resources/extra-icons/zalando_dark.svg deleted file mode 100644 index 8e19e83f..00000000 --- a/src/main/resources/extra-icons/zalando_dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/test/java/lermitage/intellij/extra/icons/cfg/ArchTest.java b/src/test/java/lermitage/intellij/extra/icons/cfg/ArchTest.java deleted file mode 100644 index a0eaa251..00000000 --- a/src/test/java/lermitage/intellij/extra/icons/cfg/ArchTest.java +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg; - -import com.tngtech.archunit.core.domain.JavaClasses; -import com.tngtech.archunit.core.importer.ClassFileImporter; -import com.tngtech.archunit.core.importer.ImportOption; -import com.tngtech.archunit.lang.syntax.ArchRuleDefinition; -import org.junit.jupiter.api.Test; - -@SuppressWarnings("HardCodedStringLiteral") -public class ArchTest { - - private static final JavaClasses PROJECT = new ClassFileImporter() - .withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_JARS) - .withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_TESTS) - .importPackages("lermitage.."); - - /** - * JetBrains Gateway supports only 'com.intellij.modules.platform' module. - * We should NOT use modules like 'com.intellij.modules.platform.lang'. - */ - @Test - public void should_not_use_intellij_lang_module() { - ArchRuleDefinition.classes() - .should().onlyAccessClassesThat().resideOutsideOfPackages("com.intellij.lang..") - .check(PROJECT); - } - - @Test - void should_not_depend_on_JDK_internals() { - ArchRuleDefinition.classes() - .should().onlyAccessClassesThat().resideOutsideOfPackages("com.sun..", "sun..") - .check(PROJECT); - } -} diff --git a/src/test/java/lermitage/intellij/extra/icons/cfg/ResourcesTest.java b/src/test/java/lermitage/intellij/extra/icons/cfg/ResourcesTest.java deleted file mode 100644 index 0ada6521..00000000 --- a/src/test/java/lermitage/intellij/extra/icons/cfg/ResourcesTest.java +++ /dev/null @@ -1,300 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg; - -import com.github.weisj.jsvg.SVGDocument; -import com.github.weisj.jsvg.geometry.size.FloatSize; -import com.github.weisj.jsvg.parser.AsynchronousResourceLoader; -import com.github.weisj.jsvg.parser.SVGLoader; -import com.github.weisj.jsvg.parser.StaxSVGLoader; -import com.github.weisj.jsvg.util.ResourceUtil; -import com.intellij.openapi.diagnostic.LogLevel; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.util.ui.ImageUtil; -import lermitage.intellij.extra.icons.ExtraIconProvider; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.fail; - -@SuppressWarnings("HardCodedStringLiteral") -public class ResourcesTest { - - static List icons; - static List svgIcons; - static List pngIcons; - - @BeforeAll - static void setUp() { - Logger.getFactory().getLoggerInstance(AsynchronousResourceLoader.class.getName()).setLevel(LogLevel.OFF); - Logger.getFactory().getLoggerInstance(ResourceUtil.class.getName()).setLevel(LogLevel.OFF); - Logger.getFactory().getLoggerInstance(StaxSVGLoader.class.getName()).setLevel(LogLevel.OFF); - Logger.getFactory().getLoggerInstance(SVGLoader.class.getName()).setLevel(LogLevel.OFF); - - icons = new ArrayList<>(); - List iconsFolders = Arrays.asList( - new File("src/main/resources/extra-icons/"), - new File("src/main/resources/extra-icons/ide/"), - new File("src/main/resources/extra-icons/officedocs/"), - new File("src/main/resources/extra-icons/newui/"), - new File("src/main/resources/extra-icons/newui/ide/"), - new File("src/test/resources/issue141/")); - iconsFolders.forEach(iconsFolder -> { - assertTrue(iconsFolder.exists()); - assertTrue(iconsFolder.isDirectory()); - icons.addAll(Arrays.asList(Objects.requireNonNull( - iconsFolder.listFiles((dir, name) -> name.endsWith(".png") || name.endsWith(".svg")) - ))); - }); - pngIcons = icons.stream().filter(file -> file.getName().endsWith(".png")).collect(Collectors.toList()); - svgIcons = icons.stream().filter(file -> file.getName().endsWith(".svg")).collect(Collectors.toList()); - assertFalse(svgIcons.isEmpty()); - assertFalse(pngIcons.isEmpty()); - icons.forEach(file -> assertTrue(file.getName().endsWith(".png") || file.getName().endsWith(".svg"))); - } - - @Test - public void icons_should_not_exist_as_svg_and_png() { - Set pngIconNames = pngIcons.stream() - .map(file -> file.getName().replace(".png", "")) - .collect(Collectors.toSet()); - - for (File svgIcon : svgIcons) { - String svgIconName = svgIcon.getName().replace(".svg", ""); - assertFalse(pngIconNames.contains(svgIconName), svgIconName); - assertFalse(pngIconNames.contains(svgIconName + "_dark"), svgIconName); - assertFalse(pngIconNames.contains(svgIconName + "@2x"), svgIconName); - assertFalse(pngIconNames.contains(svgIconName + "@2x_dark"), svgIconName); - } - } - - @Test - public void png_icons_should_have_2x_definition() { - Set pngIconNames = pngIcons.stream() - .map(file -> file.getName().replace(".png", "")) - .collect(Collectors.toSet()); - List errors = new ArrayList<>(); - - for (String icon : pngIconNames) { - if (icon.endsWith("_dark")) { - if (icon.endsWith("@2x_dark")) { - if (!pngIconNames.contains(icon.replace("@2x_dark", "_dark"))) { - errors.add(icon + " should be coupled with _dark"); - } - } else { - if (!pngIconNames.contains(icon.replace("_dark", "@2x_dark"))) { - errors.add(icon + " should be coupled with @2x_dark"); - } - } - } else { - if (icon.endsWith("@2x")) { - if (!pngIconNames.contains(icon.substring(0, icon.length() - "@2x".length()))) { - errors.add(icon + " should be coupled with non-@2x"); - } - } else { - if (!pngIconNames.contains(icon + "@2x")) { - errors.add(icon + " should be coupled with @2x"); - } - } - } - } - if (!errors.isEmpty()) { - fail("some PNG icons don't have 2x definition : " + arrayToString(errors)); - } - } - - @Test - public void dark_icon_should_be_coupled_with_light_icon() { - Set iconNames = icons.stream() - .map(File::getName) - .collect(Collectors.toSet()); - List errors = new ArrayList<>(); - - for (String icon : iconNames) { - if (icon.contains("_dark") && !iconNames.contains(icon.replace("_dark", ""))) { - errors.add(icon); - } - } - if (!errors.isEmpty()) { - fail("some dark icons are not coupled with non-dark icons: " + arrayToString(errors)); - } - } - - @Test - public void svg_icons_should_be_16x16() { // IMPORTANT toolwindow icons should be 13x13 (mandatory since IJ 2023.3) - List errors = new ArrayList<>(); - - svgIcons.forEach(file -> { - try { - String fileContent = Files.readString(file.toPath(), StandardCharsets.UTF_8); - boolean goodWidth = fileContent.contains("width=\"16\"") || fileContent.contains("width=\"16px\""); - boolean goodHeight = fileContent.contains("height=\"16\"") || fileContent.contains("height=\"16px\""); - if (!goodWidth || !goodHeight) { - errors.add(file.getName()); - } - } catch (IOException e) { - fail(e); - } - }); - if (!errors.isEmpty()) { - fail("some SVG icons are not 16x16: " + arrayToString(errors)); - } - } - - @Test - public void svg_icons_should_not_contain_unsupported_style_attributes() { - List errors = new ArrayList<>(); - - svgIcons.forEach(file -> { - try { - String fileContent = Files.readString(file.toPath(), StandardCharsets.UTF_8); - List removableAttributes = List.of("", "enable-background"); - removableAttributes.forEach(removableAttribute -> { - if (fileContent.contains(removableAttribute)) { - errors.add(file.getName() + ": removable element or attribute is '" + removableAttribute + "'. " + - "You can safely remove this attribute from file"); - } - }); - } catch (IOException e) { - fail(e); - } - }); - if (!errors.isEmpty()) { - fail("some SVG icons have unsupported style attributes: " + arrayToString(errors)); - } - } - - /** - * SVG icons loaded by "IconLoader.getIcon" are loaded with IDE's bundled JSVG, so - * we want to check if everything goes well (even if IDE adds some magic... ^_^). - * TODO create an integration test in order to load SVG files with bundled JSVG (JetBrains fork). - * For now, we have a basic unit test using JSVG from weisJ. - */ - @Test - public void svg_icons_should_load_with_jsvg() { - List errors = new ArrayList<>(); - - svgIcons.forEach(file -> { - try { - byte[] fileContent = Files.readAllBytes(file.toPath()); - /*IconUtils.ImageWrapper imageWrapper = IconUtils.loadImage(fileContent, IconType.SVG, 1.25f); - if (imageWrapper == null) { - errors.add(file.getName() + ": can't be rendered by JSVG"); - }*/ - SVGDocument svgDocument = new SVGLoader().load(new ByteArrayInputStream(fileContent)); - if (svgDocument == null) { - errors.add(file.getName() + ": can't be loaded by JSVG. Loaded SVGDocument is null"); - } else { - FloatSize size = svgDocument.size(); - BufferedImage image = ImageUtil.createImage((int) size.width, (int) size.height, BufferedImage.TYPE_INT_ARGB); - Graphics2D graphics = image.createGraphics(); - svgDocument.render(null, graphics); - Image thumbnail = ImageUtil.scaleImage(image, 1.25f); - if (thumbnail == null) { - errors.add(file.getName() + ": can't be loaded by JSVG. Generated thumbnail is null"); - } - } - } catch (IOException e) { - errors.add(file.getName() + ": can't be loaded by JSVG. I/O error is: " + e.getMessage()); - } - }); - if (!errors.isEmpty()) { - fail("some SVG icons did not load: " + arrayToString(errors)); - } - } - - @Test - public void extra_icons_provider_icons_should_exist() { - List errors = new ArrayList<>(); - - List iconNames = icons.stream() - .map(file -> { - String relativePath = file.getAbsolutePath().replaceAll("\\\\", "/"); - relativePath = relativePath.substring(relativePath.lastIndexOf("/extra-icons/") + "/extra-icons/".length()); - return relativePath; - }).toList(); - ExtraIconProvider.allModels().forEach(model -> { - String extraIconName = model.getIcon().replace("extra-icons/", ""); - if (!iconNames.contains(extraIconName)) { - errors.add(model.getId() + " model's icon " + extraIconName + " not found"); - } - }); - - if (!errors.isEmpty()) { - fail("some ExtraIconProvider model icons not found: " + arrayToString(errors)); - } - } - - @Test - public void extra_icons_provider_newUI_icons_should_exist_when_needed() { - List errors = new ArrayList<>(); - - List newUIIconNamesWithParentDir = icons.stream() - .filter(file -> file.getAbsolutePath().contains("newui")) - .map(file -> { - String relativePath = file.getAbsolutePath().replaceAll("\\\\", "/"); - relativePath = relativePath.substring(relativePath.lastIndexOf("/extra-icons/") + "/extra-icons/".length()); - return relativePath; - }).toList(); - ExtraIconProvider.allModels().forEach(model -> { - String newUIIconName = "newui/" + model.getIcon().replace("extra-icons/", ""); - if (model.isAutoLoadNewUIIconVariant()) { - if (!newUIIconNamesWithParentDir.contains(newUIIconName)) { - errors.add(model.getId() + " model's new UI icon " + newUIIconName + " not found"); - } - } - }); - - if (!errors.isEmpty()) { - fail("some ExtraIconProvider model new UI icons not found: " + arrayToString(errors)); - } - } - - /** - * If an IDE icon named "foo.svg" is overridden by a custom IDE icon with the same name, the icon displayed in - * the icons list in settings will also be replaced by current active icon override. This is why their name - * should be different. In practice, we consider that IDE's icon "foo.svg" should be overridden by "foo_.svg". - * Alt icons are not affected, because they already have different name. - */ - @Test - public void ide_icons_name_should_differ_from_actual_icon_file_name() { - List errors = new ArrayList<>(); - - ExtraIconProvider.allModels().forEach(model -> { - if (model.getIdeIcon() != null) { - if (model.getIcon().endsWith(model.getIdeIcon())) { - errors.add(model.getId() + " IDE model's icon " + model.getIdeIcon() + " and custom icon " - + model.getIcon() + " should be different"); - } - } - }); - - if (!errors.isEmpty()) { - fail("some ExtraIconProvider model IDE icons have bad name: " + arrayToString(errors)); - } - } - - private String arrayToString(List items) { - StringBuilder sb = new StringBuilder(); - items.forEach(s -> sb.append("\n - ").append(s)); - sb.append("\n"); - return sb.toString(); - } -} diff --git a/src/test/java/lermitage/intellij/extra/icons/cfg/services/SettingsServiceTest.java b/src/test/java/lermitage/intellij/extra/icons/cfg/services/SettingsServiceTest.java deleted file mode 100644 index 67672de8..00000000 --- a/src/test/java/lermitage/intellij/extra/icons/cfg/services/SettingsServiceTest.java +++ /dev/null @@ -1,68 +0,0 @@ -// SPDX-License-Identifier: MIT - -package lermitage.intellij.extra.icons.cfg.services; - -import lermitage.intellij.extra.icons.Model; -import org.junit.jupiter.api.Test; - -import java.io.File; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.fail; - -public class SettingsServiceTest { - - @Test - public void registered_models_should_be_unique() { - List allRegisteredModels = SettingsService.getAllRegisteredModels(); - Set ids = new HashSet<>(); - Set duplicatedIds = new HashSet<>(); - - for (Model model : allRegisteredModels) { - String id = model.getId(); - if (ids.contains(id)) { - duplicatedIds.add(id); - } - ids.add(id); - } - if (!duplicatedIds.isEmpty()) { - fail("model ids are registered more than once: " + duplicatedIds); - } - } - - @Test - public void registered_models_description_should_be_unique() { - List allRegisteredModels = SettingsService.getAllRegisteredModels(); - Set descriptions = new HashSet<>(); - Set duplicatedDescriptions = new HashSet<>(); - - for (Model model : allRegisteredModels) { - String description = model.getDescription(); - if (descriptions.contains(description)) { - duplicatedDescriptions.add(description); - } - descriptions.add(description); - } - if (!duplicatedDescriptions.isEmpty()) { - fail("model descriptions are registered more than once: " + duplicatedDescriptions); - } - } - - @Test - public void registered_models_should_have_existing_icon_file() { - List allRegisteredModels = SettingsService.getAllRegisteredModels(); - List errors = new ArrayList<>(); - - allRegisteredModels.forEach(model -> { - if (!new File("src/main/resources", model.getIcon()).exists()) { - errors.add(model.getId() + ": " + model.getIcon()); - } - }); - if (!errors.isEmpty()) { - fail("some icons are missing in resources folder: " + errors); - } - } -} diff --git a/src/test/resources/issue141/244836649-83cdae88-aa9a-437b-8790-410ecd4ec7c6.svg b/src/test/resources/issue141/244836649-83cdae88-aa9a-437b-8790-410ecd4ec7c6.svg deleted file mode 100644 index 14adb3c1..00000000 --- a/src/test/resources/issue141/244836649-83cdae88-aa9a-437b-8790-410ecd4ec7c6.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/issue141/244836653-bb7aa2bf-3b5f-47e2-b21d-95883c4229d4.svg b/src/test/resources/issue141/244836653-bb7aa2bf-3b5f-47e2-b21d-95883c4229d4.svg deleted file mode 100644 index aeeeaf1b..00000000 --- a/src/test/resources/issue141/244836653-bb7aa2bf-3b5f-47e2-b21d-95883c4229d4.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/test/resources/issue141/244836654-837a720a-fcb4-40eb-942d-667e2b39c4d3.svg b/src/test/resources/issue141/244836654-837a720a-fcb4-40eb-942d-667e2b39c4d3.svg deleted file mode 100644 index 8bf629a0..00000000 --- a/src/test/resources/issue141/244836654-837a720a-fcb4-40eb-942d-667e2b39c4d3.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/issue141/244836656-43ae538c-ffc5-4bce-b789-c2045ca06367.svg b/src/test/resources/issue141/244836656-43ae538c-ffc5-4bce-b789-c2045ca06367.svg deleted file mode 100644 index 6da2405e..00000000 --- a/src/test/resources/issue141/244836656-43ae538c-ffc5-4bce-b789-c2045ca06367.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/issue141/extra-icons-issue141-icon-pack.json b/src/test/resources/issue141/extra-icons-issue141-icon-pack.json deleted file mode 100644 index 931f644e..00000000 --- a/src/test/resources/issue141/extra-icons-issue141-icon-pack.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"issue141","models":[{"icon":"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0yIDE1VjFIOS40MTRMMTQgNS41ODZWMTVIMloiIGZpbGw9IiMyNDI0MjQiLz4NCjxwYXRoIGQ9Ik05IDJIM1YxNEgxM1Y2TDkgMloiIGZpbGw9IiNDNEM0QzQiLz4NCjxwYXRoIGQ9Ik05IDZWNEg1VjEySDExVjZIOVoiIGZpbGw9IiMyODI4MjgiLz4NCjxwYXRoIGQ9Ik0yLjUgMTZDMS4wOTggMTYgMCAxNC42ODI5IDAgMTNWMTJDMCAxMC4zMTcgMS4wOTggOSAyLjUgOUgxMFYxMEgxMVYxNUgxMFYxNkgyLjVaIiBmaWxsPSIjMjQyNDI0Ii8+DQo8cGF0aCBkPSJNOCAxM0g3VjEySDhNMTAgMTJWMTFIOVYxMEg4VjExSDdWMTBINlYxMUg1VjEySDZWMTNINVYxNEg2VjE1SDdWMTRIOFYxNUg5VjE0SDEwVjEzSDlWMTJNMiAxMi41QzIgMTQuMDE2IDMgMTQgMyAxNEg0VjE1SDIuNUMxLjY3MiAxNSAxIDE0LjEwNCAxIDEzVjEyQzEgMTAuODk2IDEuNjcyIDEwIDIuNSAxMEg0VjExSDNDMyAxMSAyIDEwLjk4NCAyIDEyLjVaIiBmaWxsPSIjMjhCMEVCIi8+DQo8cGF0aCBkPSJNMy4xNTA0IDlDMS4zODM0IDkgMC4wMDA0MDA1NDMgNy4yNDI5IDAuMDAwNDAwNTQzIDVWNEMwLjAwMDQwMDU0MyAxLjc5NCAxLjc5NDQgMCA0LjAwMDQgMEg1LjAwMDRDNy4yNDM0IDAgOS4wMDA0IDEuNzU3IDkuMDAwNCA0QzkuMDAwNCA0LjkyNzkgOC42MjA0IDUuNzMxIDguMDAwNCA2LjI3M1Y5SDMuMTUwNFoiIGZpbGw9IiMyNDI0MjQiLz4NCjxwYXRoIGQ9Ik01IDVINFY0SDVNMSA0VjVDMSA2LjY1NjkgMS45NjMgOCAzLjE1IDhIN1Y3SDIuN0MyLjMxMyA3IDIgNi42ODcgMiA2LjI5OTlWMi43QzIgMi4zMTI5IDIuMzEzIDIgMi43IDJINi4zQzYuNjg3IDIgNyAyLjMxMjkgNyAyLjdWNEM3IDQuMzAyIDYuNDg0IDUgNiA1VjMuN0M2IDMuMzE0IDUuNjg2IDMgNS4yOTkgM0g0LjVDMy42NzIgMyAzIDMuNjcyIDMgNC41QzMgNS4zMjggMy42NzIgNiA0LjUgNkg2QzcuMTA0IDYgOCA1LjIwMyA4IDRDOCAyLjI4MSA2LjY1NyAxIDUgMUg0QzIuMzQzIDEgMSAyLjM0MyAxIDRaIiBmaWxsPSIjQzY3M0QzIi8+DQo8L3N2Zz4=","description":"141-1","iconPack":"issue141","modelType":"FILE","iconType":"SVG","enabled":true,"conditions":[{"start":false,"eq":true,"mayEnd":false,"end":false,"noDot":false,"checkParent":false,"hasRegex":false,"enabled":true,"checkFacets":false,"hasIconEnabler":false,"names":["141-1.txt"],"parentNames":[],"extensions":[],"facets":[]}]},{"icon":"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xNS42MTUgMTEuNDI5TDE2IDYuNjFWNS41NzFIMTUuMDM4TDE1LjI0NCAzSDkuNjM3TDkuNTA1IDQuNjQ3TDkuMzkzIDQuNDI1QzguNzEgMy4wNjkgNi40NyAzIDYuMDI4IDNDMy42IDMgMSA0LjQ0NSAxIDguNUMxIDEyLjU1NSAzLjYgMTQgNi4wMjggMTRDNy4wNDM3MiAxMy45OTg3IDguMDMwMyAxMy42NjA0IDguODMzIDEzLjAzOEw4Ljc1NiAxNEgxNC4zNjNMMTQuNTY5IDExLjQyOUgxNS42MTVaIiBmaWxsPSIjMjUyNTI1Ii8+DQo8cGF0aCBkPSJNNC4wMjkgOC41QzQuMDI5IDEwLjY5NCA1LjE1MyAxMS41NTcgNi4yMTkgMTEuNTU3QzYuODI5NjIgMTEuNTgyNyA3LjQyOTIyIDExLjM4ODYgNy45MDkgMTEuMDFMOC4zODIgMTIuMDI1QzguMDgzMDMgMTIuMzQ3MiA3LjcxODA0IDEyLjYwMTEgNy4zMTE5NSAxMi43Njk0QzYuOTA1ODcgMTIuOTM3NyA2LjQ2ODI2IDEzLjAxNjMgNi4wMjkgMTNDNC44ODEgMTMgMiAxMi42MTMgMiA4LjVDMiA0LjM4NyA0Ljg4MSA0IDYuMDI5IDRDNi43NjggNCA4LjE1NyA0LjE5NCA4LjUgNC44NzVMNy45MDkgNS45OUM3LjQzMTYyIDUuNjA2OTMgNi44MzAzIDUuNDEyMzEgNi4yMTkgNS40NDNDNS4wNzcgNS40NDMgNC4wMjkgNi4yNTggNC4wMjkgOC41Wk0xNC45MDYgNy43NUwxNSA2LjU3MUgxMy45NTRMMTQuMTYgNEgxMi45NkwxMi43NTQgNi41NzFIMTEuNTU0TDExLjc2IDRIMTAuNTZMMTAuMzU0IDYuNTcxSDkuMzA5TDkuMjE0IDcuNzVIMTAuMjZMMTAuMTQgOS4yNUg5LjA5NEw5IDEwLjQyOUgxMC4wNDZMOS44NCAxM0gxMS4wNEwxMS4yNDYgMTAuNDI5SDEyLjQ0NkwxMi4yNCAxM0gxMy40NEwxMy42NDYgMTAuNDI5SDE0LjY5MkwxNC43ODYgOS4yNUgxMy43NEwxMy44NiA3Ljc1SDE0LjkwNlpNMTIuNTQgOS4yNUgxMS4zNEwxMS40NiA3Ljc1SDEyLjY2TDEyLjU0IDkuMjVaIiBmaWxsPSIjMjhCMEVCIi8+DQo8L3N2Zz4=","description":"141-2","iconPack":"issue141","modelType":"FILE","iconType":"SVG","enabled":true,"conditions":[{"start":false,"eq":true,"mayEnd":false,"end":false,"noDot":false,"checkParent":false,"hasRegex":false,"enabled":true,"checkFacets":false,"hasIconEnabler":false,"names":["141-2.txt"],"parentNames":[],"extensions":[],"facets":[]}]},{"icon":"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xIDE1VjNINy41ODZMOS41ODYgMUgxNlYxNUgxWiIgZmlsbD0iIzI1MjUyNSIvPg0KPHBhdGggZD0iTTE1IDE0VjJIMTBMOCA0SDJWMTRIMTVaIiBmaWxsPSIjN0U4Qzk0Ii8+DQo8cGF0aCBkPSJNMTQgNkgzVjEzSDE0VjZaIiBmaWxsPSIjMjkyOTI5Ii8+DQo8cGF0aCBkPSJNOC42NDYgNkw0LjY5NiA4Ljg2M0wyLjA2IDcuMzM4TDAgOC42OFYxMy4zMkwyLjA2IDE0LjY2Mkw0LjY5NiAxMy4xMzdMOC42NDYgMTZIOS4yNjlMMTIgMTQuMjA2VjcuNzk0TDkuMjY5IDZIOC42NDZaIiBmaWxsPSIjMjUyNTI1Ii8+DQo8cGF0aCBkPSJNOC45NyA3TDQuNzU3IDEwLjA1NEwyLjA5MSA4LjUxMUwxIDkuMjIyVjEyLjc3OEwyLjA5MSAxMy40ODlMNC43NTcgMTEuOTQ2TDguOTcgMTVMMTEgMTMuNjY3VjguMzMzTDguOTcgN1oiIGZpbGw9IiNCMjgwRDMiLz4NCjxwYXRoIGQ9Ik0yLjA5MSAxMS45ODdWMTAuMDEzTDMuNDUyIDExTDIuMDkxIDExLjk4N1pNOC45NyAxMi40OTJWOS41MDhMNi4zOTIgMTFMOC45NyAxMi40OTJaIiBmaWxsPSIjMjkyOTI5Ii8+DQo8L3N2Zz4=","description":"141-3","iconPack":"issue141","modelType":"FILE","iconType":"SVG","enabled":true,"conditions":[{"start":false,"eq":true,"mayEnd":false,"end":false,"noDot":false,"checkParent":false,"hasRegex":false,"enabled":true,"checkFacets":false,"hasIconEnabler":false,"names":["141-3.txt"],"parentNames":[],"extensions":[],"facets":[]}]},{"icon":"PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPHBhdGggZD0iTTEgMTVWM0g3LjU4Nkw5LjU4NiAxSDE2VjE1SDFaIiBmaWxsPSIjMjUyNTI1Ii8+DQogIDxwYXRoIGQ9Ik0xNSAxNFYySDEwTDggNEgyVjE0SDE1WiIgZmlsbD0iIzdFOEM5NCIvPg0KICA8cGF0aCBkPSJNMTQgNkgzVjEzSDE0VjZaIiBmaWxsPSIjMjkyOTI5Ii8+DQogIDxwYXRoIGQ9Ik00Ljk1NCA1TDAgMTIuNzA3VjEzLjY1TDUuMjg4IDE2SDUuNzEyTDExIDEzLjY1VjEyLjcwN0w2LjA0NiA1SDQuOTU0WiIgZmlsbD0iIzI1MjUyNSIvPg0KICA8cGF0aCBkPSJNMTAgMTNMNS41IDZMMSAxM0w1LjUgMTVMMTAgMTNaIiBmaWxsPSIjQzY3NEQzIi8+DQogIDxwYXRoIGQ9Ik01LjUgNy44NDlMOC41MjggMTIuNTZMNS41IDEzLjkwNlY3Ljg0OVoiIGZpbGw9IiMyOTI5MjkiLz4NCjwvc3ZnPg==","description":"141-4","iconPack":"issue141","modelType":"FILE","iconType":"SVG","enabled":true,"conditions":[{"start":false,"eq":true,"mayEnd":false,"end":false,"noDot":false,"checkParent":false,"hasRegex":false,"enabled":true,"checkFacets":false,"hasIconEnabler":false,"names":["141-4.txt"],"parentNames":[],"extensions":[],"facets":[]}]}]} \ No newline at end of file diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties deleted file mode 100644 index 98727d14..00000000 --- a/src/test/resources/junit-platform.properties +++ /dev/null @@ -1,6 +0,0 @@ -# see https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution-config -junit.jupiter.execution.parallel.enabled=true -junit.jupiter.execution.parallel.config.strategy=dynamic -junit.jupiter.execution.parallel.config.dynamic.factor=1 -junit.jupiter.execution.parallel.mode.classes.default=concurrent -junit.jupiter.execution.parallel.mode.default=same_thread diff --git a/svgo.config.js b/svgo.config.js deleted file mode 100644 index a9230fe4..00000000 --- a/svgo.config.js +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: MIT - -// noinspection JSUnresolvedVariable -module.exports = { - multipass: true, - plugins: [ - 'removeDoctype', - 'removeXMLProcInst', - //'removeComments', -> keep copyright notice - 'removeMetadata', - 'removeEditorsNSData', - 'cleanupAttrs', - 'mergeStyles', - 'inlineStyles', - 'minifyStyles', - 'cleanupIds', - 'removeUselessDefs', - 'cleanupNumericValues', - 'convertColors', - { - name: 'removeUnknownsAndDefaults', - params: { - keepDataAttrs: false - } - }, - 'removeNonInheritableGroupAttrs', - 'removeUselessStrokeAndFill', - //'removeViewBox', - 'cleanupEnableBackground', - 'removeHiddenElems', - 'removeEmptyText', - 'convertShapeToPath', - 'convertEllipseToCircle', - 'moveElemsAttrsToGroup', - 'moveGroupAttrsToElems', - 'collapseGroups', - 'convertPathData', - 'convertTransform', - 'removeEmptyAttrs', - 'removeEmptyContainers', - 'mergePaths', - 'removeUnusedNS', - 'sortDefsChildren', - 'removeTitle', - 'removeDesc' - ] -}