From f4982b7a432099e6daabf7d3a64d240afa5750c2 Mon Sep 17 00:00:00 2001 From: noeppi_noeppi Date: Sun, 3 Jul 2022 20:41:41 +0200 Subject: [PATCH 1/2] Add an action to copy the coremod target json for an element to clipboard. --- .../mcp/actions/CopyCoremodTargetAction.kt | 75 +++++++++++++++++++ src/main/resources/META-INF/plugin.xml | 5 ++ 2 files changed, 80 insertions(+) create mode 100644 src/main/kotlin/platform/mcp/actions/CopyCoremodTargetAction.kt diff --git a/src/main/kotlin/platform/mcp/actions/CopyCoremodTargetAction.kt b/src/main/kotlin/platform/mcp/actions/CopyCoremodTargetAction.kt new file mode 100644 index 000000000..8c81f9661 --- /dev/null +++ b/src/main/kotlin/platform/mcp/actions/CopyCoremodTargetAction.kt @@ -0,0 +1,75 @@ +/* + * Minecraft Dev for IntelliJ + * + * https://minecraftdev.org + * + * Copyright (c) 2022 minecraft-dev + * + * MIT License + */ + +package com.demonwav.mcdev.platform.mcp.actions + +import com.demonwav.mcdev.platform.mcp.srg.McpSrgMap +import com.demonwav.mcdev.util.ActionData +import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.editor.Editor +import com.intellij.psi.PsiClass +import com.intellij.psi.PsiElement +import com.intellij.psi.PsiField +import com.intellij.psi.PsiMethod +import java.awt.Toolkit +import java.awt.datatransfer.StringSelection +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.JsonPrimitive + +class CopyCoremodTargetAction : SrgActionBase() { + override fun withSrgTarget(parent: PsiElement, srgMap: McpSrgMap, e: AnActionEvent, data: ActionData) { + when (parent) { + is PsiField -> { + val containing = parent.containingClass ?: return showBalloon("No SRG name found", e) + val classSrg = srgMap.getSrgClass(containing) ?: return showBalloon("No SRG name found", e) + val srg = srgMap.getSrgField(parent) ?: return showBalloon("No SRG name found", e) + copyToClipboard( + data.editor, + data.element, + Pair("target", "FIELD"), + Pair("class", classSrg), + Pair("fieldName", srg.name) + ) + } + is PsiMethod -> { + val containing = parent.containingClass ?: return showBalloon("No SRG name found", e) + val classSrg = srgMap.getSrgClass(containing) ?: return showBalloon("No SRG name found", e) + val srg = srgMap.getSrgMethod(parent) ?: return showBalloon("No SRG name found", e) + val srgDescriptor = srg.descriptor ?: return showBalloon("No SRG name found", e) + copyToClipboard( + data.editor, + data.element, + Pair("target", "METHOD"), + Pair("class", classSrg), + Pair("methodName", srg.name), + Pair("methodDesc", srgDescriptor) + ) + } + is PsiClass -> { + val classSrg = srgMap.getSrgClass(parent) ?: return showBalloon("No SRG name found", e) + copyToClipboard( + data.editor, + data.element, + Pair("target", "CLASS"), + Pair("name", classSrg), + ) + } + else -> showBalloon("Not a valid element", e) + } + } + + private fun copyToClipboard(editor: Editor, element: PsiElement, vararg keys: Pair) { + val text = JsonObject(keys.toMap().mapValues { JsonPrimitive(it.value) }).toString() + val stringSelection = StringSelection(text) + val clpbrd = Toolkit.getDefaultToolkit().systemClipboard + clpbrd.setContents(stringSelection, null) + showSuccessBalloon(editor, element, "Copied Coremod Target Reference") + } +} diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 6be33cd66..ca8948392 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -956,6 +956,11 @@ description="Go to the relevant Access Transformer entry, if it exists"> + + + From b7db10afa50850f4c149560025f4bc0b0df28922 Mon Sep 17 00:00:00 2001 From: Kyle Wood Date: Wed, 28 Sep 2022 17:08:30 -0500 Subject: [PATCH 2/2] Increase memory limit of Kotlin compiler daemon --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index d08825dcf..abf78df19 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -194,7 +194,7 @@ tasks.withType().configureEach { kotlinOptions { jvmTarget = JavaVersion.VERSION_11.toString() freeCompilerArgs = listOf("-Xuse-k2", "-Xjvm-default=all", "-Xjdk-release=11") - kotlinDaemonJvmArguments.add("-Xmx1G") + kotlinDaemonJvmArguments.add("-Xmx2G") } }