Skip to content

Commit a06ca68

Browse files
committed
Add ForgeImplicitUsageProvider to mark coremod classes as used
Closes #237
1 parent c5db6ac commit a06ca68

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Minecraft Dev for IntelliJ
3+
*
4+
* https://minecraftdev.org
5+
*
6+
* Copyright (c) 2017 minecraft-dev
7+
*
8+
* MIT License
9+
*/
10+
11+
package com.demonwav.mcdev.platform.forge.insight
12+
13+
import com.demonwav.mcdev.platform.forge.util.ForgeConstants
14+
import com.demonwav.mcdev.util.extendsOrImplements
15+
import com.intellij.codeInsight.daemon.ImplicitUsageProvider
16+
import com.intellij.psi.PsiClass
17+
import com.intellij.psi.PsiElement
18+
19+
class ForgeImplicitUsageProvider : ImplicitUsageProvider {
20+
21+
override fun isImplicitUsage(element: PsiElement) = isCoreMod(element)
22+
23+
fun isCoreMod(element: PsiElement): Boolean {
24+
return element is PsiClass && element.extendsOrImplements(ForgeConstants.CORE_MOD_INTERFACE)
25+
}
26+
27+
override fun isImplicitRead(element: PsiElement) = false
28+
override fun isImplicitWrite(element: PsiElement) = false
29+
30+
}

src/main/kotlin/com/demonwav/mcdev/platform/forge/util/ForgeConstants.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ object ForgeConstants {
1616
const val SIDE_ANNOTATION = "net.minecraftforge.fml.relauncher.Side"
1717
const val SIDED_PROXY_ANNOTATION = "net.minecraftforge.fml.common.SidedProxy"
1818
const val MOD_ANNOTATION = "net.minecraftforge.fml.common.Mod"
19+
const val CORE_MOD_INTERFACE = "net.minecraftforge.fml.relauncher.IFMLLoadingPlugin"
1920
const val EVENT_HANDLER_ANNOTATION = "net.minecraftforge.fml.common.Mod.EventHandler"
2021
const val SUBSCRIBE_EVENT_ANNOTATION = "net.minecraftforge.fml.common.eventhandler.SubscribeEvent"
2122
const val FML_EVENT = "net.minecraftforge.fml.common.event.FMLEvent"

src/main/resources/META-INF/plugin.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
<!---->
133133

134134
<fileIconProvider implementation="com.demonwav.mcdev.platform.forge.ForgeFileIconProvider"/>
135+
<implicitUsageProvider implementation="com.demonwav.mcdev.platform.forge.insight.ForgeImplicitUsageProvider" />
135136

136137
<!-- Forge Annotator -->
137138
<annotator language="JAVA" implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.SidedProxyAnnotator"/>

0 commit comments

Comments
 (0)