User: rednesto Date: 01 Oct 24 09:56 Revision: acfb0a0d696044daa7db53cb04c372a9aaf2435b Summary: Merge branch '2024.1' into 2024.2 # Conflicts: # build.gradle.kts TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9757&personal=false Index: src/main/kotlin/platform/mixin/handlers/AccessorHandler.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/AccessorHandler.kt (revision 8037951a82f6675de33d11a425fa3b3d26b2a780) +++ src/main/kotlin/platform/mixin/handlers/AccessorHandler.kt (revision acfb0a0d696044daa7db53cb04c372a9aaf2435b) @@ -84,7 +84,7 @@ val result = PATTERN.matchEntire(memberName) ?: return null val prefix = result.groupValues[1] var name = result.groupValues[2] - if (name.uppercase(Locale.ENGLISH) != name) { + if (name.uppercase(Locale.ENGLISH) != name || name.length == 1) { name = name.decapitalize() } val type = if (prefix == "set") { Index: src/main/kotlin/platform/mixin/inspection/injector/InvalidInjectorMethodSignatureInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/injector/InvalidInjectorMethodSignatureInspection.kt (revision 8037951a82f6675de33d11a425fa3b3d26b2a780) +++ src/main/kotlin/platform/mixin/inspection/injector/InvalidInjectorMethodSignatureInspection.kt (revision acfb0a0d696044daa7db53cb04c372a9aaf2435b) @@ -39,6 +39,7 @@ import com.intellij.codeInsight.FileModificationService import com.intellij.codeInsight.intention.FileModifier.SafeFieldForPreview import com.intellij.codeInsight.intention.QuickFixFactory +import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo import com.intellij.codeInsight.lookup.LookupElement import com.intellij.codeInsight.lookup.LookupElementBuilder import com.intellij.codeInsight.template.Expression @@ -71,6 +72,7 @@ import com.intellij.psi.PsiType import com.intellij.psi.codeStyle.JavaCodeStyleManager import com.intellij.psi.codeStyle.VariableKind +import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.util.PsiUtil import com.intellij.psi.util.TypeConversionUtil import com.intellij.psi.util.parentOfType @@ -327,12 +329,21 @@ return } val method = startElement as PsiMethod - fixParameters(project, method.parameterList) + fixParameters(project, method.parameterList, false) fixReturnType(method) fixIntLikeTypes(method, editor ?: return) } - private fun fixParameters(project: Project, parameters: PsiParameterList) { + override fun generatePreview(project: Project, editor: Editor, file: PsiFile): IntentionPreviewInfo { + val method = PsiTreeUtil.findSameElementInCopy(startElement, file) as? PsiMethod + ?: return IntentionPreviewInfo.EMPTY + fixParameters(project, method.parameterList, true) + fixReturnType(method) + fixIntLikeTypes(method, editor) + return IntentionPreviewInfo.DIFF + } + + private fun fixParameters(project: Project, parameters: PsiParameterList, preview: Boolean) { if (expectedParams == null) { return } @@ -366,10 +377,14 @@ // Restore the captured locals and sugars before applying the fix newParams.addAll(locals) newParams.addAll(sugars) + if (preview) { + parameters.synchronize(newParams) + } else { - runWriteAction { - parameters.synchronize(newParams) - } - } + runWriteAction { + parameters.synchronize(newParams) + } + } + } private fun fixReturnType(method: PsiMethod) { if (expectedReturnType == null) {