Skip to content

Commit a87dfb3

Browse files
committed
Small cleanup
1 parent e3794b6 commit a87dfb3

File tree

3 files changed

+49
-30
lines changed

3 files changed

+49
-30
lines changed

src/main/kotlin/platform/mcp/actions/CopyNeoForgeAtAction.kt

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,10 @@
2020

2121
package com.demonwav.mcdev.platform.mcp.actions
2222

23-
import com.demonwav.mcdev.platform.mcp.McpModuleType
2423
import com.demonwav.mcdev.platform.mcp.actions.SrgActionBase.Companion.showBalloon
2524
import com.demonwav.mcdev.platform.mcp.actions.SrgActionBase.Companion.showSuccessBalloon
25+
import com.demonwav.mcdev.platform.mcp.at.usesSrgMemberNames
2626
import com.demonwav.mcdev.platform.mixin.handlers.ShadowHandler
27-
import com.demonwav.mcdev.platform.neoforge.NeoForgeModuleType
28-
import com.demonwav.mcdev.util.MinecraftVersions
29-
import com.demonwav.mcdev.util.SemanticVersion
3027
import com.demonwav.mcdev.util.descriptor
3128
import com.demonwav.mcdev.util.getDataFromActionEvent
3229
import com.intellij.openapi.actionSystem.ActionUpdateThread
@@ -52,13 +49,7 @@ class CopyNeoForgeAtAction : AnAction() {
5249

5350
private fun isAvailable(e: AnActionEvent): Boolean {
5451
val data = getDataFromActionEvent(e) ?: return false
55-
if (!data.instance.isOfType(NeoForgeModuleType)) {
56-
return false
57-
}
58-
59-
val mcpModule = data.instance.getModuleOfType(McpModuleType) ?: return false
60-
val mcVersion = mcpModule.getSettings().minecraftVersion?.let(SemanticVersion::tryParse) ?: return false
61-
return mcVersion >= MinecraftVersions.MC1_20_2
52+
return !data.instance.usesSrgMemberNames()
6253
}
6354

6455
override fun actionPerformed(e: AnActionEvent) {

src/main/kotlin/platform/mcp/at/AtReferenceContributor.kt

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ import com.demonwav.mcdev.platform.mcp.at.gen.psi.AtEntry
2727
import com.demonwav.mcdev.platform.mcp.at.gen.psi.AtFieldName
2828
import com.demonwav.mcdev.platform.mcp.at.gen.psi.AtFunction
2929
import com.demonwav.mcdev.platform.mcp.at.psi.AtElement
30-
import com.demonwav.mcdev.platform.neoforge.NeoForgeModuleType
3130
import com.demonwav.mcdev.util.MemberReference
32-
import com.demonwav.mcdev.util.MinecraftVersions
33-
import com.demonwav.mcdev.util.SemanticVersion
3431
import com.demonwav.mcdev.util.findMethods
3532
import com.demonwav.mcdev.util.findModule
3633
import com.demonwav.mcdev.util.findQualifiedClass
@@ -177,12 +174,12 @@ abstract class AtClassMemberReference<E : AtElement>(element: E, range: TextRang
177174
val entry = element.parent as? AtEntry ?: return ArrayUtil.EMPTY_OBJECT_ARRAY
178175

179176
val module = element.findModule() ?: return ArrayUtil.EMPTY_OBJECT_ARRAY
180-
val instance = MinecraftFacet.getInstance(module)
181-
val mcpModule = instance?.getModuleOfType(McpModuleType) ?: return ArrayUtil.EMPTY_OBJECT_ARRAY
182-
val isNeoForge = instance.isOfType(NeoForgeModuleType)
183-
val (mapField, mapMethod) = if (isNeoForge) {
177+
val instance = MinecraftFacet.getInstance(module) ?: return ArrayUtil.EMPTY_OBJECT_ARRAY
178+
val useSrg = instance.usesSrgMemberNames()
179+
val (mapField, mapMethod) = if (!useSrg) {
184180
{ it: PsiField -> it.memberReference } to { it: PsiMethod -> it.memberReference }
185181
} else {
182+
val mcpModule = instance.getModuleOfType(McpModuleType)!!
186183
val srgMap = mcpModule.mappingsManager?.mappingsNow ?: return ArrayUtil.EMPTY_OBJECT_ARRAY
187184
{ it: PsiField -> srgMap.getIntermediaryField(it) } to { it: PsiMethod -> srgMap.getIntermediaryMethod(it) }
188185
}
@@ -197,8 +194,8 @@ abstract class AtClassMemberReference<E : AtElement>(element: E, range: TextRang
197194
.withPsiElement(field)
198195
.withPresentableText(field.name)
199196
.withIcon(PlatformIcons.FIELD_ICON)
200-
.withTailText(" (${memberReference.name})".takeUnless { isNeoForge }, true)
201-
.withInsertHandler(AtClassMemberInsertionHandler(field.name.takeUnless { isNeoForge }))
197+
.withTailText(" (${memberReference.name})".takeIf { useSrg }, true)
198+
.withInsertHandler(AtClassMemberInsertionHandler(field.name.takeIf { useSrg }))
202199
results.add(PrioritizedLookupElement.withPriority(lookupElement, 1.0))
203200
}
204201

@@ -209,8 +206,8 @@ abstract class AtClassMemberReference<E : AtElement>(element: E, range: TextRang
209206
.withPsiElement(method)
210207
.withPresentableText(method.nameAndParameterTypes)
211208
.withIcon(PlatformIcons.METHOD_ICON)
212-
.withTailText(" (${memberReference.name})".takeUnless { isNeoForge }, true)
213-
.withInsertHandler(AtClassMemberInsertionHandler(method.name.takeUnless { isNeoForge }))
209+
.withTailText(" (${memberReference.name})".takeIf { useSrg }, true)
210+
.withInsertHandler(AtClassMemberInsertionHandler(method.name.takeIf { useSrg }))
214211
results.add(PrioritizedLookupElement.withPriority(lookupElement, 0.0))
215212
}
216213

@@ -237,10 +234,7 @@ class AtFieldNameReference(element: AtFieldName) :
237234
val instance = MinecraftFacet.getInstance(module) ?: return null
238235
val mcpModule = instance.getModuleOfType(McpModuleType) ?: return null
239236

240-
return if (instance.isOfType(NeoForgeModuleType) &&
241-
mcpModule.getSettings().minecraftVersion?.let(SemanticVersion::tryParse)
242-
?.let { it >= MinecraftVersions.MC1_20_2 } == true
243-
) {
237+
return if (!instance.usesSrgMemberNames()) {
244238
entryClass.findFieldByName(element.text, false)
245239
} else {
246240
val srgMap = mcpModule.mappingsManager?.mappingsNow ?: return null
@@ -278,10 +272,7 @@ class AtFuncNameReference(element: AtFunction) :
278272
val instance = MinecraftFacet.getInstance(module) ?: return null
279273
val mcpModule = instance.getModuleOfType(McpModuleType) ?: return null
280274

281-
return if (instance.isOfType(NeoForgeModuleType) &&
282-
mcpModule.getSettings().minecraftVersion?.let(SemanticVersion::tryParse)
283-
?.let { it >= MinecraftVersions.MC1_20_2 } == true
284-
) {
275+
return if (!instance.usesSrgMemberNames()) {
285276
val memberReference = MemberReference.parse(element.text) ?: return null
286277
entryClass.findMethods(memberReference).firstOrNull()
287278
} else {
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Minecraft Development for IntelliJ
3+
*
4+
* https://mcdev.io/
5+
*
6+
* Copyright (C) 2024 minecraft-dev
7+
*
8+
* This program is free software: you can redistribute it and/or modify
9+
* it under the terms of the GNU Lesser General Public License as published
10+
* by the Free Software Foundation, version 3.0 only.
11+
*
12+
* This program is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+
* GNU General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public License
18+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
19+
*/
20+
21+
package com.demonwav.mcdev.platform.mcp.at
22+
23+
import com.demonwav.mcdev.facet.MinecraftFacet
24+
import com.demonwav.mcdev.platform.mcp.McpModuleType
25+
import com.demonwav.mcdev.platform.neoforge.NeoForgeModuleType
26+
import com.demonwav.mcdev.util.MinecraftVersions
27+
import com.demonwav.mcdev.util.SemanticVersion
28+
29+
fun MinecraftFacet.usesSrgMemberNames(): Boolean {
30+
if (!this.isOfType(NeoForgeModuleType)) {
31+
return true
32+
}
33+
34+
val mcpModule = this.getModuleOfType(McpModuleType) ?: return true
35+
val mcVersion = mcpModule.getSettings().minecraftVersion?.let(SemanticVersion::tryParse) ?: return true
36+
return mcVersion < MinecraftVersions.MC1_20_2
37+
}

0 commit comments

Comments
 (0)