diff --git a/build/tasks/resources/linux/class-report.txt b/build/tasks/resources/linux/class-report.txt
index dbbacca2da39..755ca0a40c9b 100644
--- a/build/tasks/resources/linux/class-report.txt
+++ b/build/tasks/resources/linux/class-report.txt
@@ -13498,7 +13498,7 @@ org/jetbrains/kotlin/console/actions/RunKotlinConsoleAction.class:plugins/Kotlin
org/jetbrains/kotlin/psi/KtContinueExpression.class:plugins/Kotlin/lib/kotlinc_kotlin-compiler.jar
com/intellij/util/io/storage/AbstractStorage$AppenderStream.class:lib/util.jar
com/siyeh/ig/callMatcher/CallMatcher$Simple.class:plugins/java/lib/java-impl.jar
-icons/KotlinIdeaIcons.class:plugins/Kotlin/lib/kotlin-plugin.jar
+icons/KotlinIcons.class:plugins/Kotlin/lib/kotlin-plugin.jar
org/jetbrains/kotlin/psi/KtBreakExpression.class:plugins/Kotlin/lib/kotlinc_kotlin-compiler.jar
com/intellij/psi/PsiCall.class:plugins/java/lib/java-api.jar
com/intellij/formatting/fileSet/FileSetDescriptor$State.class:lib/platform-api.jar
diff --git a/build/tasks/resources/mac/class-report.txt b/build/tasks/resources/mac/class-report.txt
index 8efa7519751a..dcd76181ade2 100644
--- a/build/tasks/resources/mac/class-report.txt
+++ b/build/tasks/resources/mac/class-report.txt
@@ -11998,7 +11998,7 @@ com/intellij/psi/stubs/EmptyStubElementType.class:lib/platform-api.jar
org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrAnnotationArgumentListElementType.class:plugins/Groovy/lib/Groovy.jar
com/intellij/javascript/nodejs/library/NodeModulesExcludePolicy.class:plugins/JavaScriptLanguage/lib/JavaScriptLanguage.jar
org/jetbrains/kotlin/console/actions/RunKotlinConsoleAction.class:plugins/Kotlin/lib/kotlin-plugin.jar
-icons/KotlinIdeaIcons.class:plugins/Kotlin/lib/kotlin-plugin.jar
+icons/KotlinIcons.class:plugins/Kotlin/lib/kotlin-plugin.jar
com/intellij/psi/PsiAnnotationParameterList.class:plugins/java/lib/java-api.jar
org/jetbrains/plugins/groovy/lang/psi/api/auxiliary/modifiers/annotation/GrAnnotationArgumentList.class:plugins/Groovy/lib/Groovy.jar
com/jetbrains/rd/platform/codeWithMe/editors/CodeWithMeEditorService$Companion.class:plugins/cwm-plugin/lib/cwm-common.jar
diff --git a/build/tasks/resources/windows/class-report.txt b/build/tasks/resources/windows/class-report.txt
index 6d6f71f3af00..b52e8053d6ed 100644
--- a/build/tasks/resources/windows/class-report.txt
+++ b/build/tasks/resources/windows/class-report.txt
@@ -10566,7 +10566,7 @@ org/jetbrains/idea/maven/utils/MavenMergingUpdateQueue.class:plugins\maven\lib\m
org/jetbrains/kotlin/console/actions/RunKotlinConsoleAction.class:plugins\Kotlin\lib\kotlin-plugin.jar
com/sun/xml/bind/v2/runtime/property/ArrayReferenceNodeProperty$MixedTextLoader.class:lib\platform-impl.jar
com/sun/xml/bind/v2/runtime/property/PropertyFactory$1.class:lib\platform-impl.jar
-icons/KotlinIdeaIcons.class:plugins\Kotlin\lib\kotlin-plugin.jar
+icons/KotlinIcons.class:plugins\Kotlin\lib\kotlin-plugin.jar
com/sun/xml/bind/v2/runtime/Name.class:lib\platform-impl.jar
com/sun/xml/bind/v2/runtime/reflect/TransducedAccessor.class:lib\platform-impl.jar
com/intellij/build/ViewManager.class:lib\platform-api.jar
diff --git a/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java b/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java
deleted file mode 100644
index 204c6fbf1254..000000000000
--- a/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-
-package org.jetbrains.kotlin.idea;
-
-import com.intellij.icons.AllIcons;
-import com.intellij.openapi.util.IconLoader;
-import com.intellij.util.PlatformIcons;
-
-import javax.swing.*;
-
-public interface KotlinIcons {
- Icon SMALL_LOGO = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin.svg");
-
- Icon SMALL_LOGO_13 = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin13.svg");
-
- Icon CLASS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/classKotlin.svg");
- Icon ABSTRACT_CLASS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.svg");
- Icon ENUM = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/enumKotlin.svg");
- Icon FILE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_file.svg");
- Icon SCRIPT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_script.svg");
- Icon GRADLE_SCRIPT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg");
- Icon OBJECT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/objectKotlin.svg");
- Icon INTERFACE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/interfaceKotlin.svg");
- Icon ANNOTATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/annotationKotlin.svg");
- Icon FUNCTION = AllIcons.Nodes.Function;
- Icon EXTENSION_FUNCTION = PlatformIcons.FUNCTION_ICON;
- Icon ABSTRACT_EXTENSION_FUNCTION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/abstract_extension_function.svg");
- Icon LAMBDA = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/lambda.svg");
- Icon VAR = PlatformIcons.VARIABLE_ICON;
- Icon VAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/value.svg");
- Icon PARAMETER = PlatformIcons.PARAMETER_ICON;
- Icon FIELD_VAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/field_value.svg");
- Icon FIELD_VAR = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/field_variable.svg");
- Icon CLASS_INITIALIZER = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/classInitializerKotlin.svg");
- Icon TYPE_ALIAS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/typeAlias.svg");
-
- Icon DSL_MARKER_ANNOTATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg");
-
- Icon SUSPEND_CALL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/suspendCall.svg");
-
- Icon ACTUAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/actual.svg");
- Icon EXPECT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/expect.svg");
-
- Icon LAUNCH = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg");
- Icon LOAD_SCRIPT_CONFIGURATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg");
-
- Icon JS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_js.svg");
- Icon MPP = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_multiplatform_project.svg");
- Icon NATIVE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_native.svg");
-
- interface Wizard {
- Icon JVM = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/jvm.svg");
- Icon JS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/js.svg");
- Icon CONSOLE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/console.svg");
- Icon MULTIPLATFORM = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/multiplatform.svg");
- Icon MULTIPLATFORM_LIBRARY = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/multiplatformLibrary.svg");
- Icon MULTIPLATFORM_MOBILE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobile.svg");
- Icon MULTIPLATFORM_MOBILE_LIBRARY = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobileLibrary.svg");
- Icon NATIVE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/native.svg");
- Icon WEB = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/ppWeb.svg");
- Icon ANDROID = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/android.svg");
- Icon IOS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/ios.svg");
- Icon LINUX = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/linux.svg");
- Icon MAC_OS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/macOS.svg");
- Icon WINDOWS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/windows.svg");
- Icon NODE_JS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/nodejs.svg");
- Icon REACT_JS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/react.svg");
- Icon COMPOSE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/wizard/compose.svg");
- }
-}
diff --git a/plugins/kotlin/completion/src/icons/KotlinIdeaIcons.java b/plugins/kotlin/completion/src/icons/KotlinIdeaIcons.java
deleted file mode 100644
index c03f33f3990b..000000000000
--- a/plugins/kotlin/completion/src/icons/KotlinIdeaIcons.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package icons;
-
-import com.intellij.ui.IconManager;
-import org.jetbrains.annotations.NotNull;
-
-import javax.swing.*;
-
-/**
- * NOTE THIS FILE IS AUTO-GENERATED
- * DO NOT EDIT IT BY HAND, run "Generate icon classes" configuration instead
- */
-public final class KotlinIdeaIcons {
- private static @NotNull Icon load(@NotNull String path, long cacheKey, int flags) {
- return IconManager.getInstance().loadRasterizedIcon(path, KotlinIdeaIcons.class.getClassLoader(), cacheKey, flags);
- }
- /** 16x16 */ public static final @NotNull Icon Abstract_extension_function = load("org/jetbrains/kotlin/idea/icons/abstract_extension_function.svg", 7417679411263450358L, 0);
- /** 16x16 */ public static final @NotNull Icon AbstractClassKotlin = load("org/jetbrains/kotlin/idea/icons/abstractClassKotlin.svg", 6118422021574552028L, 0);
- /** 16x16 */ public static final @NotNull Icon Actual = load("org/jetbrains/kotlin/idea/icons/actual.svg", -4727863439746678606L, 0);
- /** 16x16 */ public static final @NotNull Icon AnnotationKotlin = load("org/jetbrains/kotlin/idea/icons/annotationKotlin.svg", 1981410558175520747L, 0);
- /** 16x16 */ public static final @NotNull Icon ClassInitializerKotlin = load("org/jetbrains/kotlin/idea/icons/classInitializerKotlin.svg", 428407677003035493L, 0);
- /** 16x16 */ public static final @NotNull Icon ClassKotlin = load("org/jetbrains/kotlin/idea/icons/classKotlin.svg", -4723898843334724017L, 0);
- /** 12x12 */ public static final @NotNull Icon DslMarkerAnnotation = load("org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg", 5574692736776531477L, 2);
- /** 16x16 */ public static final @NotNull Icon EnumKotlin = load("org/jetbrains/kotlin/idea/icons/enumKotlin.svg", -8462447318313336813L, 0);
- /** 16x16 */ public static final @NotNull Icon Expect = load("org/jetbrains/kotlin/idea/icons/expect.svg", -2910408808136595896L, 1);
- /** 16x16 */ public static final @NotNull Icon Field_value = load("org/jetbrains/kotlin/idea/icons/field_value.svg", 173519203061099646L, 0);
- /** 16x16 */ public static final @NotNull Icon Field_variable = load("org/jetbrains/kotlin/idea/icons/field_variable.svg", -4943884320640938494L, 0);
- /** 16x16 */ public static final @NotNull Icon InterfaceKotlin = load("org/jetbrains/kotlin/idea/icons/interfaceKotlin.svg", 6105411896669082060L, 1);
- /** 16x16 */ public static final @NotNull Icon Kotlin = load("org/jetbrains/kotlin/idea/icons/kotlin.png", 0L, 1);
- /** 13x13 */ public static final @NotNull Icon Kotlin13 = load("org/jetbrains/kotlin/idea/icons/kotlin13.png", 0L, 1);
- /** 16x16 */ public static final @NotNull Icon Kotlin_file = load("org/jetbrains/kotlin/idea/icons/kotlin_file.svg", 410462991849735236L, 0);
- /** 16x16 */ public static final @NotNull Icon Kotlin_gradle_script = load("org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg", 407924732847883692L, 0);
- /** 16x16 */ public static final @NotNull Icon Kotlin_js = load("org/jetbrains/kotlin/idea/icons/kotlin_js.svg", -4797950250597216272L, 0);
- /** 16x16 */ public static final @NotNull Icon Kotlin_launch_configuration = load("org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg", 8617317266006756955L, 0);
- /** 16x16 */ public static final @NotNull Icon Kotlin_multiplatform_project = load("org/jetbrains/kotlin/idea/icons/kotlin_multiplatform_project.svg", 1800183257649593188L, 0);
- /** 16x16 */ public static final @NotNull Icon Kotlin_native = load("org/jetbrains/kotlin/idea/icons/kotlin_native.svg", 4139485729290770650L, 0);
- /** 16x16 */ public static final @NotNull Icon Kotlin_script = load("org/jetbrains/kotlin/idea/icons/kotlin_script.svg", 8910176401343092076L, 0);
- /** 16x16 */ public static final @NotNull Icon Lambda = load("org/jetbrains/kotlin/idea/icons/lambda.svg", -395028811269734745L, 0);
- /** 16x16 */ public static final @NotNull Icon LoadScriptConfiguration = load("org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg", 4218830826949357848L, 2);
- /** 16x16 */ public static final @NotNull Icon ObjectKotlin = load("org/jetbrains/kotlin/idea/icons/objectKotlin.svg", 6837434796032324128L, 0);
- /** 12x12 */ public static final @NotNull Icon SuspendCall = load("org/jetbrains/kotlin/idea/icons/suspendCall.svg", -6406590614097998571L, 2);
- /** 16x16 */ public static final @NotNull Icon TypeAlias = load("org/jetbrains/kotlin/idea/icons/typeAlias.svg", -272854517691002937L, 0);
- /** 16x16 */ public static final @NotNull Icon Value = load("org/jetbrains/kotlin/idea/icons/value.svg", 5883345383289852521L, 0);
-
- public static final class Wizard {
- /** 16x16 */ public static final @NotNull Icon Android = load("org/jetbrains/kotlin/idea/icons/wizard/android.svg", 7539975312323470635L, 0);
- /** 16x16 */ public static final @NotNull Icon Compose = load("org/jetbrains/kotlin/idea/icons/wizard/compose.svg", 160562836348075998L, 0);
- /** 16x16 */ public static final @NotNull Icon Console = load("org/jetbrains/kotlin/idea/icons/wizard/console.svg", -8378080712919798557L, 0);
- /** 16x16 */ public static final @NotNull Icon Ios = load("org/jetbrains/kotlin/idea/icons/wizard/ios.svg", -6207668788895415586L, 0);
- /** 16x16 */ public static final @NotNull Icon JS = load("org/jetbrains/kotlin/idea/icons/wizard/js.svg", -688693395373848289L, 0);
- /** 16x16 */ public static final @NotNull Icon Jvm = load("org/jetbrains/kotlin/idea/icons/wizard/jvm.svg", 162781121887292258L, 0);
- /** 16x16 */ public static final @NotNull Icon Linux = load("org/jetbrains/kotlin/idea/icons/wizard/linux.svg", 3866831033229145983L, 0);
- /** 16x16 */ public static final @NotNull Icon MacOS = load("org/jetbrains/kotlin/idea/icons/wizard/macOS.svg", -3403600566714905943L, 0);
- /** 16x16 */ public static final @NotNull Icon Multiplatform = load("org/jetbrains/kotlin/idea/icons/wizard/multiplatform.svg", -6469017586665949204L, 0);
- /** 16x16 */ public static final @NotNull Icon MultiplatformLibrary = load("org/jetbrains/kotlin/idea/icons/wizard/multiplatformLibrary.svg", -5968042525882549362L, 0);
- /** 16x16 */ public static final @NotNull Icon MultiplatformMobile = load("org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobile.svg", -8813901519156236976L, 0);
- /** 16x16 */ public static final @NotNull Icon MultiplatformMobileLibrary = load("org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobileLibrary.svg", -8434348402253626654L, 0);
- /** 16x16 */ public static final @NotNull Icon Native = load("org/jetbrains/kotlin/idea/icons/wizard/native.svg", 6669135310113032649L, 0);
- /** 16x16 */ public static final @NotNull Icon Nodejs = load("org/jetbrains/kotlin/idea/icons/wizard/nodejs.svg", -4106089222155620880L, 0);
- /** 16x16 */ public static final @NotNull Icon PpWeb = load("org/jetbrains/kotlin/idea/icons/wizard/ppWeb.svg", -919003641439396121L, 0);
- /** 16x16 */ public static final @NotNull Icon React = load("org/jetbrains/kotlin/idea/icons/wizard/react.svg", -6765773272068717159L, 0);
- /** 16x16 */ public static final @NotNull Icon Windows = load("org/jetbrains/kotlin/idea/icons/wizard/windows.svg", 8510608514465228229L, 0);
- }
-}
diff --git a/plugins/kotlin/frontend-independent/kotlin.fir.frontend-independent.iml b/plugins/kotlin/frontend-independent/kotlin.fir.frontend-independent.iml
index e9161e1984f4..3eae49710ed4 100644
--- a/plugins/kotlin/frontend-independent/kotlin.fir.frontend-independent.iml
+++ b/plugins/kotlin/frontend-independent/kotlin.fir.frontend-independent.iml
@@ -5,6 +5,7 @@
+
diff --git a/plugins/kotlin/frontend-independent/resources/icon-robots.txt b/plugins/kotlin/frontend-independent/resources/icon-robots.txt
new file mode 100644
index 000000000000..f21601437b7f
--- /dev/null
+++ b/plugins/kotlin/frontend-independent/resources/icon-robots.txt
@@ -0,0 +1 @@
+skip: *
\ No newline at end of file
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/actual.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/actual.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/actual.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/actual.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/annotationKotlin.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/annotationKotlin.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/annotationKotlin.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/annotationKotlin.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/classInitializerKotlin.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/classInitializerKotlin.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/classInitializerKotlin.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/classInitializerKotlin.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/classKotlin.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/classKotlin.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/classKotlin.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/classKotlin.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation_dark.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation_dark.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation_dark.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation_dark.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/enumKotlin.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/enumKotlin.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/enumKotlin.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/enumKotlin.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/expect.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/expect.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/expect.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/expect.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/expect@2x.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/expect@2x.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/expect@2x.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/expect@2x.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/field_value.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/field_value.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/field_value.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/field_value.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/field_variable.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/field_variable.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/field_variable.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/field_variable.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/interfaceKotlin.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/interfaceKotlin.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/interfaceKotlin.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/interfaceKotlin.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/interfaceKotlin@2x.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/interfaceKotlin@2x.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/interfaceKotlin@2x.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/interfaceKotlin@2x.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin13.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin13.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin13.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin13.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_file.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_file.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_file.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_file.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_js.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_js.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_js.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_js.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_multiplatform_project.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_multiplatform_project.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_multiplatform_project.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_multiplatform_project.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_native.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_native.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_native.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_native.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_script.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_script.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin_script.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/kotlin_script.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/lambda.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/lambda.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/lambda.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/lambda.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration_dark.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration_dark.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration_dark.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration_dark.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/objectKotlin.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/objectKotlin.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/objectKotlin.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/objectKotlin.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/suspendCall.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/suspendCall.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/suspendCall.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/suspendCall.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/suspendCall_dark.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/suspendCall_dark.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/suspendCall_dark.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/suspendCall_dark.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/typeAlias.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/typeAlias.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/typeAlias.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/typeAlias.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/value.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/value.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/value.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/value.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/android.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/android.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/android.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/android.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/compose.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/compose.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/compose.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/compose.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/console.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/console.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/console.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/console.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/ios.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/ios.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/ios.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/ios.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/js.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/js.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/js.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/js.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/jvm.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/jvm.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/jvm.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/jvm.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/linux.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/linux.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/linux.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/linux.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/macOS.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/macOS.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/macOS.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/macOS.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatform.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatform.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatform.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatform.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformLibrary.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformLibrary.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformLibrary.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformLibrary.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobile.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobile.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobile.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobile.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobileLibrary.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobileLibrary.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobileLibrary.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobileLibrary.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/native.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/native.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/native.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/native.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/nodejs.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/nodejs.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/nodejs.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/nodejs.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/ppWeb.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/ppWeb.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/ppWeb.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/ppWeb.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/react.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/react.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/react.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/react.svg
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/windows.svg b/plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/windows.svg
similarity index 100%
rename from plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/wizard/windows.svg
rename to plugins/kotlin/frontend-independent/resources/org/jetbrains/kotlin/idea/icons/wizard/windows.svg
diff --git a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconProviderBase.kt b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconProviderBase.kt
index 0f0ecee37677..751e72272389 100644
--- a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconProviderBase.kt
+++ b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconProviderBase.kt
@@ -18,9 +18,8 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.asJava.unwrapped
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
+import org.jetbrains.kotlin.idea.KotlinIcons.*
import org.jetbrains.kotlin.idea.asJava.LightClassProvider.Companion.providedIsKtLightClassForDecompiledDeclaration
-import org.jetbrains.kotlin.idea.KotlinIconsIndependent.ACTUAL
-import org.jetbrains.kotlin.idea.KotlinIconsIndependent.EXPECT
import org.jetbrains.kotlin.idea.util.ifTrue
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
@@ -55,12 +54,12 @@ open class KotlinIconProviderBase : IconProvider(), DumbAware {
if (psiElement is KtFile) {
if (psiElement.isScript()) {
return when {
- psiElement.name.endsWith(".gradle.kts") -> KotlinIconsIndependent.GRADLE_SCRIPT
- else -> KotlinIconsIndependent.SCRIPT
+ psiElement.name.endsWith(".gradle.kts") -> GRADLE_SCRIPT
+ else -> SCRIPT
}
}
val mainClass = getSingleClass(psiElement)
- return if (mainClass != null) getIcon(mainClass, flags) else KotlinIconsIndependent.FILE
+ return if (mainClass != null) getIcon(mainClass, flags) else FILE
}
val result = psiElement.getBaseIcon()
@@ -120,39 +119,39 @@ open class KotlinIconProviderBase : IconProvider(), DumbAware {
fun PsiElement.getBaseIcon(): Icon? = when (this) {
is KtPackageDirective -> PlatformIcons.PACKAGE_ICON
- is KtFile, is KtLightClassForFacade -> KotlinIconsIndependent.FILE
+ is KtFile, is KtLightClassForFacade -> FILE
is KtLightClassForSourceDeclaration -> navigationElement.getBaseIcon()
is KtNamedFunction -> when {
receiverTypeReference != null ->
- if (KtPsiUtil.isAbstract(this)) KotlinIconsIndependent.ABSTRACT_EXTENSION_FUNCTION else KotlinIconsIndependent.EXTENSION_FUNCTION
+ if (KtPsiUtil.isAbstract(this)) ABSTRACT_EXTENSION_FUNCTION else EXTENSION_FUNCTION
getStrictParentOfType() is KtClass ->
if (KtPsiUtil.isAbstract(this)) PlatformIcons.ABSTRACT_METHOD_ICON else PlatformIcons.METHOD_ICON
else ->
- KotlinIconsIndependent.FUNCTION
+ FUNCTION
}
is KtConstructor<*> -> PlatformIcons.METHOD_ICON
is KtLightMethod -> when(val u = unwrapped) {
is KtProperty -> if (!u.hasBody()) PlatformIcons.ABSTRACT_METHOD_ICON else PlatformIcons.METHOD_ICON
else -> PlatformIcons.METHOD_ICON
}
- is KtFunctionLiteral -> KotlinIconsIndependent.LAMBDA
+ is KtFunctionLiteral -> LAMBDA
is KtClass -> when {
- isInterface() -> KotlinIconsIndependent.INTERFACE
- isEnum() -> KotlinIconsIndependent.ENUM
- isAnnotation() -> KotlinIconsIndependent.ANNOTATION
- this is KtEnumEntry && getPrimaryConstructorParameterList() == null -> KotlinIconsIndependent.ENUM
- else -> if (isAbstract()) KotlinIconsIndependent.ABSTRACT_CLASS else KotlinIconsIndependent.CLASS
+ isInterface() -> INTERFACE
+ isEnum() -> ENUM
+ isAnnotation() -> ANNOTATION
+ this is KtEnumEntry && getPrimaryConstructorParameterList() == null -> ENUM
+ else -> if (isAbstract()) ABSTRACT_CLASS else CLASS
}
- is KtObjectDeclaration -> KotlinIconsIndependent.OBJECT
+ is KtObjectDeclaration -> OBJECT
is KtParameter -> {
if (KtPsiUtil.getClassIfParameterIsProperty(this) != null) {
- if (isMutable) KotlinIconsIndependent.FIELD_VAR else KotlinIconsIndependent.FIELD_VAL
+ if (isMutable) FIELD_VAR else FIELD_VAL
} else
- KotlinIconsIndependent.PARAMETER
+ PARAMETER
}
- is KtProperty -> if (isVar) KotlinIconsIndependent.FIELD_VAR else KotlinIconsIndependent.FIELD_VAL
- is KtClassInitializer -> KotlinIconsIndependent.CLASS_INITIALIZER
- is KtTypeAlias -> KotlinIconsIndependent.TYPE_ALIAS
+ is KtProperty -> if (isVar) FIELD_VAR else FIELD_VAL
+ is KtClassInitializer -> CLASS_INITIALIZER
+ is KtTypeAlias -> TYPE_ALIAS
is KtAnnotationEntry -> {
(shortName?.asString() == JvmFileClassUtil.JVM_NAME_SHORT).ifTrue {
val grandParent = parent.parent
@@ -166,7 +165,7 @@ open class KotlinIconProviderBase : IconProvider(), DumbAware {
is PsiClass -> providedIsKtLightClassForDecompiledDeclaration().ifTrue {
val origin = (this as? KtLightClass)?.kotlinOrigin
//TODO (light classes for decompiled files): correct presentation
- if (origin != null) origin.getBaseIcon() else KotlinIconsIndependent.CLASS
+ if (origin != null) origin.getBaseIcon() else CLASS
}
else -> unwrapped?.takeIf { it != this }?.getBaseIcon()
}
diff --git a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIcons.java b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIcons.java
new file mode 100644
index 000000000000..a2de559d434a
--- /dev/null
+++ b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIcons.java
@@ -0,0 +1,77 @@
+// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+
+package org.jetbrains.kotlin.idea;
+
+import com.intellij.icons.AllIcons;
+import com.intellij.ui.IconManager;
+import com.intellij.util.ImageLoader;
+import com.intellij.util.PlatformIcons;
+import org.jetbrains.annotations.NotNull;
+
+import javax.swing.*;
+
+public interface KotlinIcons {
+ private static @NotNull Icon load(@NotNull String path, long cacheKey, int flags) {
+ return IconManager.getInstance().loadRasterizedIcon(path, KotlinIcons.class.getClassLoader(), cacheKey, flags);
+ }
+
+ private static @NotNull Icon load(@NotNull String path, long cacheKey) {
+ return load(path, cacheKey, ImageLoader.USE_CACHE);
+ }
+
+ /** 16x16 */ @NotNull Icon SMALL_LOGO = load("org/jetbrains/kotlin/idea/icons/kotlin.svg", -6159597857264791813L);
+ /** 13x13 */ @NotNull Icon SMALL_LOGO_13 = load("org/jetbrains/kotlin/idea/icons/kotlin13.svg", -5550034022007323579L);
+ /** 16x16 */ @NotNull Icon ABSTRACT_EXTENSION_FUNCTION = load("org/jetbrains/kotlin/idea/icons/abstract_extension_function.svg", 7417679411263450358L);
+ /** 16x16 */ @NotNull Icon ABSTRACT_CLASS = load("org/jetbrains/kotlin/idea/icons/abstractClassKotlin.svg", 6118422021574552028L);
+ /** 16x16 */ @NotNull Icon ACTUAL = load("org/jetbrains/kotlin/idea/icons/actual.svg", -4727863439746678606L);
+ /** 16x16 */ @NotNull Icon ANNOTATION = load("org/jetbrains/kotlin/idea/icons/annotationKotlin.svg", 1981410558175520747L);
+ /** 16x16 */ @NotNull Icon CLASS_INITIALIZER = load("org/jetbrains/kotlin/idea/icons/classInitializerKotlin.svg", 428407677003035493L);
+ /** 16x16 */ @NotNull Icon CLASS = load("org/jetbrains/kotlin/idea/icons/classKotlin.svg", -4723898843334724017L);
+ /** 12x12 */ @NotNull Icon DSL_MARKER_ANNOTATION = load("org/jetbrains/kotlin/idea/icons/dslMarkerAnnotation.svg", 5574692736776531477L);
+ /** 16x16 */ @NotNull Icon ENUM = load("org/jetbrains/kotlin/idea/icons/enumKotlin.svg", -8462447318313336813L);
+ /** 16x16 */ @NotNull Icon EXPECT = load("org/jetbrains/kotlin/idea/icons/expect.svg", -2910408808136595896L, ImageLoader.USE_CACHE | ImageLoader.ALLOW_FLOAT_SCALING);
+ Icon EXTENSION_FUNCTION = PlatformIcons.FUNCTION_ICON;
+ /** 16x16 */ @NotNull Icon FIELD_VAL = load("org/jetbrains/kotlin/idea/icons/field_value.svg", 173519203061099646L);
+ /** 16x16 */ @NotNull Icon FIELD_VAR = load("org/jetbrains/kotlin/idea/icons/field_variable.svg", -4943884320640938494L);
+ Icon FUNCTION = AllIcons.Nodes.Function;
+ /** 16x16 */ @NotNull Icon INTERFACE = load("org/jetbrains/kotlin/idea/icons/interfaceKotlin.svg", 6105411896669082060L, ImageLoader.USE_CACHE | ImageLoader.ALLOW_FLOAT_SCALING);
+ /** 16x16 */ @NotNull Icon FILE = load("org/jetbrains/kotlin/idea/icons/kotlin_file.svg", 410462991849735236L);
+ /** 16x16 */ @NotNull Icon GRADLE_SCRIPT = load("org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg", 407924732847883692L);
+ /** 16x16 */ @NotNull Icon JS = load("org/jetbrains/kotlin/idea/icons/kotlin_js.svg", -4797950250597216272L);
+ /** 16x16 */ @NotNull Icon LAUNCH = load("org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg", 8617317266006756955L);
+ /** 16x16 */ @NotNull Icon MPP = load("org/jetbrains/kotlin/idea/icons/kotlin_multiplatform_project.svg", 1800183257649593188L);
+ /** 16x16 */ @NotNull Icon NATIVE = load("org/jetbrains/kotlin/idea/icons/kotlin_native.svg", 4139485729290770650L);
+ /** 16x16 */ @NotNull Icon SCRIPT = load("org/jetbrains/kotlin/idea/icons/kotlin_script.svg", 8910176401343092076L);
+ /** 16x16 */ @NotNull Icon LAMBDA = load("org/jetbrains/kotlin/idea/icons/lambda.svg", -395028811269734745L);
+ /** 16x16 */ @NotNull Icon LOAD_SCRIPT_CONFIGURATION = load("org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg", 4218830826949357848L);
+ /** 16x16 */ @NotNull Icon OBJECT = load("org/jetbrains/kotlin/idea/icons/objectKotlin.svg", 6837434796032324128L);
+ Icon PARAMETER = PlatformIcons.PARAMETER_ICON;
+ /** 12x12 */ @NotNull Icon SUSPEND_CALL = load("org/jetbrains/kotlin/idea/icons/suspendCall.svg", -6406590614097998571L);
+ /** 16x16 */ @NotNull Icon TYPE_ALIAS = load("org/jetbrains/kotlin/idea/icons/typeAlias.svg", -272854517691002937L);
+ Icon VAR = PlatformIcons.VARIABLE_ICON;
+ /** 16x16 */ @NotNull Icon VAL = load("org/jetbrains/kotlin/idea/icons/value.svg", 5883345383289852521L);
+
+ final class Wizard {
+ /** 16x16 */ public static final @NotNull Icon ANDROID = load("org/jetbrains/kotlin/idea/icons/wizard/android.svg", 7539975312323470635L);
+ /** 16x16 */ public static final @NotNull Icon COMPOSE = load("org/jetbrains/kotlin/idea/icons/wizard/compose.svg", 160562836348075998L);
+ /** 16x16 */ public static final @NotNull Icon CONSOLE = load("org/jetbrains/kotlin/idea/icons/wizard/console.svg", -8378080712919798557L);
+ /** 16x16 */ public static final @NotNull Icon IOS = load("org/jetbrains/kotlin/idea/icons/wizard/ios.svg", -6207668788895415586L);
+ /** 16x16 */ public static final @NotNull Icon JS = load("org/jetbrains/kotlin/idea/icons/wizard/js.svg", -688693395373848289L);
+ /** 16x16 */ public static final @NotNull Icon JVM = load("org/jetbrains/kotlin/idea/icons/wizard/jvm.svg", 162781121887292258L);
+ /** 16x16 */ public static final @NotNull Icon LINUX = load("org/jetbrains/kotlin/idea/icons/wizard/linux.svg", 3866831033229145983L);
+ /** 16x16 */ public static final @NotNull Icon MAC_OS = load("org/jetbrains/kotlin/idea/icons/wizard/macOS.svg", -3403600566714905943L);
+ /** 16x16 */ public static final @NotNull Icon MULTIPLATFORM = load("org/jetbrains/kotlin/idea/icons/wizard/multiplatform.svg", -6469017586665949204L);
+ /** 16x16 */ public static final @NotNull Icon MULTIPLATFORM_LIBRARY = load("org/jetbrains/kotlin/idea/icons/wizard/multiplatformLibrary.svg", -5968042525882549362L);
+ /** 16x16 */ public static final @NotNull Icon MULTIPLATFORM_MOBILE = load("org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobile.svg", -8813901519156236976L);
+ /** 16x16 */ public static final @NotNull Icon MULTIPLATFORM_MOBILE_LIBRARY = load("org/jetbrains/kotlin/idea/icons/wizard/multiplatformMobileLibrary.svg", -8434348402253626654L);
+ /** 16x16 */ public static final @NotNull Icon NATIVE = load("org/jetbrains/kotlin/idea/icons/wizard/native.svg", 6669135310113032649L);
+ /** 16x16 */ public static final @NotNull Icon NODE_JS = load("org/jetbrains/kotlin/idea/icons/wizard/nodejs.svg", -4106089222155620880L);
+ /** 16x16 */ public static final @NotNull Icon WEB = load("org/jetbrains/kotlin/idea/icons/wizard/ppWeb.svg", -919003641439396121L);
+ /** 16x16 */ public static final @NotNull Icon REACT_JS = load("org/jetbrains/kotlin/idea/icons/wizard/react.svg", -6765773272068717159L);
+ /** 16x16 */ public static final @NotNull Icon WINDOWS = load("org/jetbrains/kotlin/idea/icons/wizard/windows.svg", 8510608514465228229L);
+ }
+
+
+
+
+}
diff --git a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconsIndependent.java b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconsIndependent.java
deleted file mode 100644
index e3f6f4e9dc82..000000000000
--- a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/KotlinIconsIndependent.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-
-package org.jetbrains.kotlin.idea;
-
-import com.intellij.icons.AllIcons;
-import com.intellij.openapi.util.IconLoader;
-import com.intellij.util.PlatformIcons;
-
-import javax.swing.*;
-
-public interface KotlinIconsIndependent {
- Icon SMALL_LOGO = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin.svg");
-
- Icon CLASS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/classKotlin.svg");
- Icon ABSTRACT_CLASS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.svg");
- Icon ENUM = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/enumKotlin.svg");
- Icon FILE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_file.svg");
- Icon SCRIPT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_script.svg");
- Icon GRADLE_SCRIPT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_gradle_script.svg");
- Icon OBJECT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/objectKotlin.svg");
- Icon INTERFACE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/interfaceKotlin.svg");
- Icon ANNOTATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/annotationKotlin.svg");
- Icon FUNCTION = AllIcons.Nodes.Function;
- Icon EXTENSION_FUNCTION = PlatformIcons.FUNCTION_ICON;
- Icon ABSTRACT_EXTENSION_FUNCTION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/abstract_extension_function.svg");
- Icon LAMBDA = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/lambda.svg");
- Icon PARAMETER = PlatformIcons.PARAMETER_ICON;
- Icon FIELD_VAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/field_value.svg");
- Icon FIELD_VAR = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/field_variable.svg");
- Icon CLASS_INITIALIZER = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/classInitializerKotlin.svg");
- Icon TYPE_ALIAS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/typeAlias.svg");
-
- Icon ACTUAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/actual.svg");
- Icon EXPECT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/expect.svg");
-
- Icon LAUNCH = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg");
- Icon LOAD_SCRIPT_CONFIGURATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg");
-
- Icon JS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_js.svg");
- Icon MPP = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_multiplatform_project.svg");
- Icon NATIVE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_native.svg");
-}
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin.png b/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin.png
deleted file mode 100644
index 69336c51c46f..000000000000
Binary files a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin.png and /dev/null differ
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin13.png b/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin13.png
deleted file mode 100644
index cb04caea51a7..000000000000
Binary files a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin13.png and /dev/null differ
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin13@2x.png b/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin13@2x.png
deleted file mode 100644
index f9b9920f6740..000000000000
Binary files a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin13@2x.png and /dev/null differ
diff --git a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin@2x.png b/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin@2x.png
deleted file mode 100644
index 85747b671569..000000000000
Binary files a/plugins/kotlin/idea/resources/org/jetbrains/kotlin/idea/icons/kotlin@2x.png and /dev/null differ
diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/presentation/AnnotationPresenters.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/presentation/AnnotationPresenters.kt
index 11c3e54c9470..eb45991fd1e2 100644
--- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/presentation/AnnotationPresenters.kt
+++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/presentation/AnnotationPresenters.kt
@@ -7,7 +7,7 @@ import com.intellij.navigation.ItemPresentationProvider
import com.intellij.psi.util.parentOfType
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
import org.jetbrains.kotlin.idea.KotlinBundle
-import org.jetbrains.kotlin.idea.KotlinIconsIndependent
+import org.jetbrains.kotlin.idea.KotlinIcons
import org.jetbrains.kotlin.psi.*
import javax.swing.Icon
@@ -43,5 +43,5 @@ class KtJvmNameAnnotatedFilePresentation(private val annotationEntry: KtAnnotati
return KotlinBundle.message("presentation.text.in.container", containingFile.name, containingFile.packageFqName)
}
- override fun getIcon(unused: Boolean): Icon = KotlinIconsIndependent.FILE
+ override fun getIcon(unused: Boolean): Icon = KotlinIcons.FILE
}
diff --git a/plugins/kotlin/jvm/resources/META-INF/jvm-common.xml b/plugins/kotlin/jvm/resources/META-INF/jvm-common.xml
index 2ef69d863c0e..5d83a2ba8c9c 100644
--- a/plugins/kotlin/jvm/resources/META-INF/jvm-common.xml
+++ b/plugins/kotlin/jvm/resources/META-INF/jvm-common.xml
@@ -2,7 +2,7 @@
+ icon="org.jetbrains.kotlin.idea.KotlinIcons.LAUNCH">
@@ -32,7 +32,7 @@
+ icon="org.jetbrains.kotlin.idea.KotlinIcons.SMALL_LOGO"/>
diff --git a/plugins/kotlin/plugin/resources/META-INF/core.xml b/plugins/kotlin/plugin/resources/META-INF/core.xml
index 70278084a7d0..7233d034da9d 100644
--- a/plugins/kotlin/plugin/resources/META-INF/core.xml
+++ b/plugins/kotlin/plugin/resources/META-INF/core.xml
@@ -558,7 +558,7 @@
-