diff --git a/src/main/kotlin/asset/MixinAssets.kt b/src/main/kotlin/asset/MixinAssets.kt index 67dde8e19..8a93d0c91 100644 --- a/src/main/kotlin/asset/MixinAssets.kt +++ b/src/main/kotlin/asset/MixinAssets.kt @@ -27,4 +27,6 @@ object MixinAssets : Assets() { val MIXIN_CLASS_ICON = loadIcon("/assets/icons/mixin/mixin_class_gutter.png") val MIXIN_CLASS_ICON_DARK = loadIcon("/assets/icons/mixin/mixin_class_gutter_dark.png") + + val MIXIN_MARK = loadIcon("/assets/icons/mixin/mixin_mark.svg") } diff --git a/src/main/kotlin/platform/mixin/framework/MixinIconProvider.kt b/src/main/kotlin/platform/mixin/framework/MixinIconProvider.kt index 646b68f02..c886e4338 100644 --- a/src/main/kotlin/platform/mixin/framework/MixinIconProvider.kt +++ b/src/main/kotlin/platform/mixin/framework/MixinIconProvider.kt @@ -21,15 +21,19 @@ package com.demonwav.mcdev.platform.mixin.framework import com.demonwav.mcdev.MinecraftSettings -import com.demonwav.mcdev.asset.PlatformAssets +import com.demonwav.mcdev.asset.MixinAssets import com.demonwav.mcdev.platform.mixin.util.isMixin -import com.intellij.ide.IconProvider +import com.intellij.ide.IconLayerProvider +import com.intellij.openapi.util.Iconable import com.intellij.psi.PsiClass -import com.intellij.psi.PsiElement +import javax.swing.Icon -class MixinIconProvider : IconProvider() { - override fun getIcon(element: PsiElement, flags: Int) = - PlatformAssets.MIXIN_ICON.takeIf { +class MixinIconProvider : IconLayerProvider { + override fun getLayerIcon(element: Iconable, isLocked: Boolean): Icon? = + MixinAssets.MIXIN_MARK.takeIf { MinecraftSettings.instance.mixinClassIcon && element is PsiClass && element.isMixin } + + override fun getLayerDescription(): String = + "Mixin class" } diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index cf1cdd934..f3c363629 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -528,7 +528,7 @@ - + + +