User: rednesto Date: 16 May 24 18:45 Revision: 15e0bfa342926af6400a0a99e95c933f91fe9f4d Summary: 2024.2 EAP TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9283&personal=false Index: .gitignore =================================================================== --- .gitignore (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ .gitignore (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -24,6 +24,7 @@ hs_err_pid* **/.gradle/ +.intellijPlatform/ .sandbox/ /gen/ Index: build.gradle.kts =================================================================== --- build.gradle.kts (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ build.gradle.kts (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -21,9 +21,9 @@ import org.cadixdev.gradle.licenser.header.HeaderStyle import org.cadixdev.gradle.licenser.tasks.LicenseUpdate import org.gradle.internal.jvm.Jvm -import org.jetbrains.gradle.ext.settings -import org.jetbrains.gradle.ext.taskTriggers -import org.jetbrains.intellij.tasks.PrepareSandboxTask +import org.jetbrains.intellij.platform.gradle.TestFrameworkType +import org.jetbrains.intellij.platform.gradle.tasks.PrepareSandboxTask +import org.jetbrains.intellij.platform.gradle.tasks.PublishPluginTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jlleitschuh.gradle.ktlint.tasks.BaseKtLintCheckTask import org.jlleitschuh.gradle.ktlint.tasks.KtLintFormatTask @@ -34,14 +34,13 @@ mcdev groovy idea - id("org.jetbrains.intellij") version "1.17.2" + id("org.jetbrains.intellij.platform") version "2.0.0-beta2" id("org.cadixdev.licenser") id("org.jlleitschuh.gradle.ktlint") version "10.3.0" } val ideaVersionName: String by project val coreVersion: String by project -val pluginTomlVersion: String by project val gradleToolingExtension: Configuration by configurations.creating val testLibs: Configuration by configurations.creating { @@ -54,6 +53,7 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(17)) + vendor.set(JvmVendorSpec.JETBRAINS) } } kotlin { @@ -85,8 +85,13 @@ includeModule("net.fabricmc", "mapping-io") } } + maven("https://www.jetbrains.com/intellij-repository/snapshots") mavenCentral() + + intellijPlatform { + defaultRepositories() -} + } +} dependencies { // Add tools.jar for the JDI API @@ -114,6 +119,26 @@ } grammarKit(libs.grammarKit) + intellijPlatform { + intellijIdeaCommunity("242-EAP-SNAPSHOT") + bundledPlugin("com.intellij.java.ide") + bundledPlugin("org.jetbrains.idea.maven") + bundledPlugin("com.intellij.gradle") + bundledPlugin("org.intellij.groovy") +// bundledPlugin("org.jetbrains.kotlin") + bundledPlugin("ByteCodeViewer") + bundledPlugin("com.intellij.properties") + bundledPlugin("org.toml.lang") + + // needed dependencies for unit tests + bundledPlugin("JUnit") + + instrumentationTools() + + testFramework(TestFrameworkType.Platform.JUnit5) + testFramework(TestFrameworkType.Plugin.Java) + } + testLibs(libs.test.mockJdk) testLibs(libs.test.mixin) testLibs(libs.test.spongeapi) { @@ -166,32 +191,11 @@ attributes.attribute(filtered, true) } -intellij { - // IntelliJ IDEA dependency - version.set(providers.gradleProperty("ideaVersion")) - // Bundled plugin dependencies - plugins.addAll( - "java", - "maven", - "gradle", - "Groovy", - "Kotlin", - "org.toml.lang:$pluginTomlVersion", - "ByteCodeViewer", - "properties", - // needed dependencies for unit tests - "junit" - ) - - pluginName.set("Minecraft Development") - updateSinceUntilBuild.set(true) - - downloadSources.set(providers.gradleProperty("downloadIdeaSources").map { it.toBoolean() }) - - sandboxDir.set(layout.projectDirectory.dir(".sandbox").toString()) +intellijPlatform { + sandboxContainer.set(layout.projectDirectory.dir(".sandbox")) } -tasks.publishPlugin { +tasks.withType { // Build numbers are used for properties["buildNumber"]?.let { buildNumber -> project.version = "${project.version}-$buildNumber" @@ -202,10 +206,6 @@ channels.add(properties["mcdev.deploy.channel"]?.toString() ?: "Stable") } -tasks.runPluginVerifier { - ideVersions.addAll("IC-$ideaVersionName") -} - tasks.withType().configureEach { options.encoding = "UTF-8" options.compilerArgs = listOf("-proc:none") @@ -272,10 +272,10 @@ } idea { - project.settings.taskTriggers.afterSync("generate") + // project.settings.taskTriggers.afterSync("generate") module { generatedSourceDirs.add(file("build/gen")) - excludeDirs.add(file(intellij.sandboxDir.get())) + excludeDirs.add(intellijPlatform.sandboxContainer.get().asFile) isDownloadJavadoc = true isDownloadSources = true } Index: gradle.properties =================================================================== --- gradle.properties (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ gradle.properties (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -21,13 +21,13 @@ # suppress inspection "UnusedProperty" for whole file kotlin.code.style=official -ideaVersion = 2024.1 -ideaVersionName = 2024.1 +ideaVersion = 242-EAP-SNAPSHOT +ideaVersionName = 2024.2 coreVersion = 1.7.5 downloadIdeaSources = true -pluginTomlVersion = 241.14494.150 - # Silences a build-time warning because we are bundling our own kotlin library kotlin.stdlib.default.dependency = false + +org.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false Index: settings.gradle.kts =================================================================== --- settings.gradle.kts (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ settings.gradle.kts (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -19,7 +19,7 @@ */ plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version("0.7.0") + id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0") } rootProject.name = "MinecraftDev" Index: src/main/kotlin/creator/buildsystem/GradleFile.kt =================================================================== --- src/main/kotlin/creator/buildsystem/GradleFile.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/creator/buildsystem/GradleFile.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -20,20 +20,20 @@ package com.demonwav.mcdev.creator.buildsystem -import com.demonwav.mcdev.util.childrenOfType +// import com.demonwav.mcdev.util.childrenOfType import com.demonwav.mcdev.util.mapFirstNotNull import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.project.Project import com.intellij.openapi.util.text.StringUtil import com.intellij.psi.PsiFile import org.jetbrains.annotations.ApiStatus.Internal -import org.jetbrains.kotlin.psi.KtBinaryExpression -import org.jetbrains.kotlin.psi.KtBlockExpression -import org.jetbrains.kotlin.psi.KtCallExpression -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi.KtNameReferenceExpression -import org.jetbrains.kotlin.psi.KtPsiFactory -import org.jetbrains.kotlin.psi.KtScriptInitializer +// import org.jetbrains.kotlin.psi.KtBinaryExpression +// import org.jetbrains.kotlin.psi.KtBlockExpression +// import org.jetbrains.kotlin.psi.KtCallExpression +// import org.jetbrains.kotlin.psi.KtFile +// import org.jetbrains.kotlin.psi.KtNameReferenceExpression +// import org.jetbrains.kotlin.psi.KtPsiFactory +// import org.jetbrains.kotlin.psi.KtScriptInitializer import org.jetbrains.plugins.groovy.lang.psi.GroovyFile import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock @@ -136,89 +136,89 @@ } } -class KotlinGradleFile(override val psi: KtFile) : GradleFile { - override fun addRepositories(project: Project, repositories: List) { - val script = psi.script?.blockExpression ?: return - val reposBlock = findOrCreateKotlinBlock(project, script, "repositories") - val elementFactory = KtPsiFactory(project) - for (repo in repositories) { - if (BuildSystemType.GRADLE !in repo.buildSystems) { - continue - } - val mavenBlock = elementFactory.createExpression("maven {\n}") as KtCallExpression - val mavenLambda = mavenBlock.lambdaArguments[0].getLambdaExpression()!!.bodyExpression!! - if (repo.id.isNotBlank()) { - val idStatement = elementFactory.createAssignment("name = ${makeStringLiteral(repo.id)}") - mavenLambda.addBefore(idStatement, mavenLambda.rBrace) - } - val urlStatement = elementFactory.createAssignment("url = uri(${makeStringLiteral(repo.url)})") - mavenLambda.addBefore(urlStatement, mavenLambda.rBrace) - reposBlock.addBefore(mavenBlock, reposBlock.rBrace) - } - } +// class KotlinGradleFile(override val psi: KtFile) : GradleFile { +// override fun addRepositories(project: Project, repositories: List) { +// val script = psi.script?.blockExpression ?: return +// val reposBlock = findOrCreateKotlinBlock(project, script, "repositories") +// val elementFactory = KtPsiFactory(project) +// for (repo in repositories) { +// if (BuildSystemType.GRADLE !in repo.buildSystems) { +// continue +// } +// val mavenBlock = elementFactory.createExpression("maven {\n}") as KtCallExpression +// val mavenLambda = mavenBlock.lambdaArguments[0].getLambdaExpression()!!.bodyExpression!! +// if (repo.id.isNotBlank()) { +// val idStatement = elementFactory.createAssignment("name = ${makeStringLiteral(repo.id)}") +// mavenLambda.addBefore(idStatement, mavenLambda.rBrace) +// } +// val urlStatement = elementFactory.createAssignment("url = uri(${makeStringLiteral(repo.url)})") +// mavenLambda.addBefore(urlStatement, mavenLambda.rBrace) +// reposBlock.addBefore(mavenBlock, reposBlock.rBrace) +// } +// } +// +// override fun addDependencies(project: Project, dependencies: List) { +// val script = psi.script?.blockExpression ?: return +// val depsBlock = findOrCreateKotlinBlock(project, script, "dependencies") +// val elementFactory = KtPsiFactory(project) +// for (dep in dependencies) { +// val gradleConfig = dep.gradleConfiguration ?: continue +// val stmt = elementFactory.createExpression( +// "$gradleConfig(\"${escapeGString(dep.groupId)}:${ +// escapeGString(dep.artifactId) +// }:${escapeGString(dep.version)}\")", +// ) +// depsBlock.addBefore(stmt, depsBlock.rBrace) +// } +// } +// +// override fun addPlugins(project: Project, plugins: List) { +// val script = psi.script?.blockExpression ?: return +// val pluginsBlock = findOrCreateKotlinBlock(project, script, "plugins", first = true) +// val elementFactory = KtPsiFactory(project) +// for (plugin in plugins) { +// val stmt = elementFactory.createExpression(makePluginStatement(plugin, true)) +// pluginsBlock.addBefore(stmt, pluginsBlock.rBrace) +// } +// } +// +// private fun findKotlinBlock(element: KtBlockExpression, name: String): KtBlockExpression? { +// return element.childrenOfType() +// .flatMap { it.childrenOfType() } +// .mapFirstNotNull { call -> +// if ((call.calleeExpression as? KtNameReferenceExpression)?.getReferencedName() == name) { +// call.lambdaArguments.firstOrNull()?.getLambdaExpression()?.bodyExpression +// } else { +// null +// } +// } +// } +// +// private fun findOrCreateKotlinBlock( +// project: Project, +// element: KtBlockExpression, +// name: String, +// first: Boolean = false, +// ): KtBlockExpression { +// findKotlinBlock(element, name)?.let { return it } +// val block = KtPsiFactory(project).createExpression("$name {\n}") +// val addedBlock = if (first) { +// element.addAfter(block, element.lBrace) +// } else { +// element.addBefore(block, element.rBrace) +// } +// return (addedBlock as KtCallExpression).lambdaArguments.first().getLambdaExpression()!!.bodyExpression!! +// } +// +// private fun KtPsiFactory.createAssignment(text: String): KtBinaryExpression { +// return this.createBlock(text).firstStatement as KtBinaryExpression +// } +// +// class Type : GradleFile.Type { +// override fun createGradleFile(psiFile: PsiFile) = (psiFile as? KtFile)?.let(::KotlinGradleFile) +// } +// } - override fun addDependencies(project: Project, dependencies: List) { - val script = psi.script?.blockExpression ?: return - val depsBlock = findOrCreateKotlinBlock(project, script, "dependencies") - val elementFactory = KtPsiFactory(project) - for (dep in dependencies) { - val gradleConfig = dep.gradleConfiguration ?: continue - val stmt = elementFactory.createExpression( - "$gradleConfig(\"${escapeGString(dep.groupId)}:${ - escapeGString(dep.artifactId) - }:${escapeGString(dep.version)}\")", - ) - depsBlock.addBefore(stmt, depsBlock.rBrace) - } - } - - override fun addPlugins(project: Project, plugins: List) { - val script = psi.script?.blockExpression ?: return - val pluginsBlock = findOrCreateKotlinBlock(project, script, "plugins", first = true) - val elementFactory = KtPsiFactory(project) - for (plugin in plugins) { - val stmt = elementFactory.createExpression(makePluginStatement(plugin, true)) - pluginsBlock.addBefore(stmt, pluginsBlock.rBrace) - } - } - - private fun findKotlinBlock(element: KtBlockExpression, name: String): KtBlockExpression? { - return element.childrenOfType() - .flatMap { it.childrenOfType() } - .mapFirstNotNull { call -> - if ((call.calleeExpression as? KtNameReferenceExpression)?.getReferencedName() == name) { - call.lambdaArguments.firstOrNull()?.getLambdaExpression()?.bodyExpression - } else { - null - } - } - } - - private fun findOrCreateKotlinBlock( - project: Project, - element: KtBlockExpression, - name: String, - first: Boolean = false, - ): KtBlockExpression { - findKotlinBlock(element, name)?.let { return it } - val block = KtPsiFactory(project).createExpression("$name {\n}") - val addedBlock = if (first) { - element.addAfter(block, element.lBrace) - } else { - element.addBefore(block, element.rBrace) - } - return (addedBlock as KtCallExpression).lambdaArguments.first().getLambdaExpression()!!.bodyExpression!! - } - - private fun KtPsiFactory.createAssignment(text: String): KtBinaryExpression { - return this.createBlock(text).firstStatement as KtBinaryExpression - } - - class Type : GradleFile.Type { - override fun createGradleFile(psiFile: PsiFile) = (psiFile as? KtFile)?.let(::KotlinGradleFile) - } -} - private fun makeStringLiteral(str: String): String { return "\"${escapeGString(str)}\"" } Index: src/main/kotlin/facet/MinecraftFacet.kt =================================================================== --- src/main/kotlin/facet/MinecraftFacet.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/facet/MinecraftFacet.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -28,6 +28,7 @@ import com.demonwav.mcdev.util.SourceType import com.demonwav.mcdev.util.filterNotNull import com.demonwav.mcdev.util.mapFirstNotNull +import com.demonwav.mcdev.util.runWriteActionAndWait import com.google.common.collect.HashMultimap import com.intellij.facet.Facet import com.intellij.facet.FacetManager @@ -36,7 +37,6 @@ import com.intellij.ide.projectView.ProjectView import com.intellij.openapi.application.runReadAction import com.intellij.openapi.application.runWriteAction -import com.intellij.openapi.application.runWriteActionAndWait import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleGrouper import com.intellij.openapi.module.ModuleManager Index: src/main/kotlin/platform/bukkit/inspection/BukkitListenerImplementedInspection.kt =================================================================== --- src/main/kotlin/platform/bukkit/inspection/BukkitListenerImplementedInspection.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/bukkit/inspection/BukkitListenerImplementedInspection.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -26,7 +26,7 @@ import com.intellij.codeInspection.ProblemDescriptor import com.intellij.openapi.project.Project import com.intellij.psi.PsiClass -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.siyeh.ig.BaseInspection import com.siyeh.ig.BaseInspectionVisitor import com.siyeh.ig.InspectionGadgetsFix Index: src/main/kotlin/platform/bungeecord/inspection/BungeeCordListenerImplementedInspection.kt =================================================================== --- src/main/kotlin/platform/bungeecord/inspection/BungeeCordListenerImplementedInspection.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/bungeecord/inspection/BungeeCordListenerImplementedInspection.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -26,7 +26,7 @@ import com.intellij.codeInspection.ProblemDescriptor import com.intellij.openapi.project.Project import com.intellij.psi.PsiClass -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.siyeh.ig.BaseInspection import com.siyeh.ig.BaseInspectionVisitor import com.siyeh.ig.InspectionGadgetsFix Index: src/main/kotlin/platform/mcp/actions/SrgActionBase.kt =================================================================== --- src/main/kotlin/platform/mcp/actions/SrgActionBase.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/mcp/actions/SrgActionBase.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -37,12 +37,11 @@ import com.intellij.psi.PsiIdentifier import com.intellij.psi.PsiMember import com.intellij.psi.PsiReference -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.intellij.ui.LightColors import com.intellij.ui.awt.RelativePoint import java.awt.Point import javax.swing.JComponent -import org.apache.commons.text.StringEscapeUtils abstract class SrgActionBase : AnAction() { @@ -121,9 +120,8 @@ } fun showSuccessBalloon(editor: Editor, element: PsiElement, text: String) { - val escapedText = StringEscapeUtils.escapeHtml4(text) val balloon = JBPopupFactory.getInstance() - .createHtmlTextBalloonBuilder(escapedText, null, LightColors.SLIGHTLY_GREEN, null) + .createHtmlTextBalloonBuilder(text, null, LightColors.SLIGHTLY_GREEN, null) .setHideOnAction(true) .setHideOnClickOutside(true) .setHideOnKeyOutside(true) Index: src/main/kotlin/platform/mcp/fabricloom/FabricLoomDecompileSourceProvider.kt =================================================================== --- src/main/kotlin/platform/mcp/fabricloom/FabricLoomDecompileSourceProvider.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/mcp/fabricloom/FabricLoomDecompileSourceProvider.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -24,8 +24,8 @@ import com.demonwav.mcdev.platform.forge.inspections.sideonly.SideOnlyUtil import com.demonwav.mcdev.util.findModule import com.demonwav.mcdev.util.runGradleTaskWithCallback +import com.demonwav.mcdev.util.runWriteActionAndWait import com.intellij.codeInsight.AttachSourcesProvider -import com.intellij.openapi.application.runWriteActionAndWait import com.intellij.openapi.externalSystem.task.TaskCallback import com.intellij.openapi.roots.LibraryOrderEntry import com.intellij.openapi.roots.OrderRootType Index: src/main/kotlin/platform/mcp/inspections/StackEmptyInspection.kt =================================================================== --- src/main/kotlin/platform/mcp/inspections/StackEmptyInspection.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/mcp/inspections/StackEmptyInspection.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -35,7 +35,7 @@ import com.intellij.psi.PsiExpression import com.intellij.psi.PsiField import com.intellij.psi.PsiReferenceExpression -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.siyeh.ig.BaseInspection import com.siyeh.ig.BaseInspectionVisitor import com.siyeh.ig.InspectionGadgetsFix Index: src/main/kotlin/platform/mixin/handlers/AccessorHandler.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/AccessorHandler.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/mixin/handlers/AccessorHandler.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -35,7 +35,7 @@ import com.intellij.psi.PsiMethod import com.intellij.psi.PsiTypes import com.intellij.psi.SmartPsiElementPointer -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.intellij.psi.util.parentOfType import java.util.Locale import org.objectweb.asm.tree.ClassNode Index: src/main/kotlin/platform/mixin/handlers/InvokerHandler.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/InvokerHandler.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/mixin/handlers/InvokerHandler.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -36,7 +36,7 @@ import com.intellij.psi.PsiMember import com.intellij.psi.PsiMethod import com.intellij.psi.SmartPsiElementPointer -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.intellij.psi.util.parentOfType import java.util.Locale import org.objectweb.asm.tree.ClassNode Index: src/main/kotlin/platform/mixin/handlers/ShadowHandler.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/ShadowHandler.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/mixin/handlers/ShadowHandler.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -39,7 +39,7 @@ import com.intellij.psi.PsiMember import com.intellij.psi.PsiMethod import com.intellij.psi.SmartPsiElementPointer -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.intellij.psi.util.parentOfType import org.objectweb.asm.tree.ClassNode Index: src/main/kotlin/platform/mixin/insight/MixinTargetLineMarkerProvider.kt =================================================================== --- src/main/kotlin/platform/mixin/insight/MixinTargetLineMarkerProvider.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/mixin/insight/MixinTargetLineMarkerProvider.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -38,7 +38,7 @@ import com.intellij.psi.PsiMember import com.intellij.psi.PsiMethod import com.intellij.psi.SmartPsiElementPointer -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.intellij.ui.awt.RelativePoint import com.intellij.util.PsiNavigateUtil import java.awt.event.MouseEvent Index: src/main/kotlin/platform/mixin/inspection/injector/InjectCouldBeOverwriteInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/injector/InjectCouldBeOverwriteInspection.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/mixin/inspection/injector/InjectCouldBeOverwriteInspection.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -76,7 +76,7 @@ import com.intellij.psi.codeStyle.VariableKind import com.intellij.psi.impl.light.LightParameter import com.intellij.psi.search.LocalSearchScope -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.siyeh.ig.dataflow.UnnecessaryLocalVariableInspection import com.siyeh.ig.psiutils.VariableNameGenerator import org.objectweb.asm.Type @@ -301,7 +301,7 @@ // delete parameters not before the callback info parameter val paramsToDelete = oldMethod.parameterList.parameters.asSequence() .dropWhile { !isCallbackInfoParam(it) } - .map { it.createSmartPointer(project) } + .map { it.createSmartPointer() } .toList() for (param in paramsToDelete) { param.element?.delete() Index: src/main/kotlin/platform/sponge/inspection/SpongeInjectionInspection.kt =================================================================== --- src/main/kotlin/platform/sponge/inspection/SpongeInjectionInspection.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/platform/sponge/inspection/SpongeInjectionInspection.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -57,7 +57,7 @@ import com.intellij.psi.PsiPrimitiveType import com.intellij.psi.PsiVariable import com.intellij.psi.impl.source.PsiClassReferenceType -import com.intellij.psi.util.createSmartPointer +import com.intellij.psi.createSmartPointer import com.siyeh.ig.BaseInspection import com.siyeh.ig.BaseInspection.formatString import com.siyeh.ig.ui.UiUtils Index: src/main/kotlin/util/utils.kt =================================================================== --- src/main/kotlin/util/utils.kt (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/kotlin/util/utils.kt (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -27,6 +27,7 @@ import com.intellij.openapi.application.AppUIExecutor import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ModalityState +import com.intellij.openapi.application.WriteAction import com.intellij.openapi.application.runReadAction import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.diagnostic.Logger @@ -41,6 +42,7 @@ import com.intellij.openapi.util.Computable import com.intellij.openapi.util.Condition import com.intellij.openapi.util.Ref +import com.intellij.openapi.util.ThrowableComputable import com.intellij.openapi.util.text.StringUtil import com.intellij.pom.java.LanguageLevel import com.intellij.profile.codeInspection.InspectionProfileManager @@ -109,6 +111,10 @@ return AppUIExecutor.onUiThread().submit(block).get() } +inline fun runWriteActionAndWait(crossinline action: () -> T): T { + return WriteAction.computeAndWait(ThrowableComputable { action() }) +} + inline fun PsiFile.runWriteAction(crossinline func: () -> T) = applyWriteAction { func() } Index: src/main/resources/META-INF/mcdev-kotlin.xml =================================================================== --- src/main/resources/META-INF/mcdev-kotlin.xml (revision 1f9687f4c451d6b79b74466588a5569a153a6c69) +++ src/main/resources/META-INF/mcdev-kotlin.xml (revision 15e0bfa342926af6400a0a99e95c933f91fe9f4d) @@ -20,6 +20,6 @@ - +