mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] KTIJ-33747 Fix rendering of member info
GitOrigin-RevId: 7e55c557ddaa2035105ba74d35b9ffe03d6f607b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
eba3f2f688
commit
ab118c5eab
@@ -165,8 +165,7 @@ public class CreateTestDialog extends DialogWrapper {
|
||||
}
|
||||
|
||||
private void updateMethodsTable() {
|
||||
List<MemberInfo> methods = TestIntegrationUtils.extractClassMethods(
|
||||
myTargetClass, myShowInheritedMethodsBox.isSelected());
|
||||
List<MemberInfo> methods = createMemberInfos(myTargetClass, myShowInheritedMethodsBox.isSelected());
|
||||
|
||||
Set<PsiMember> selectedMethods = new HashSet<>();
|
||||
for (MemberInfo each : myMethodsTable.getSelectedMemberInfos()) {
|
||||
@@ -179,6 +178,10 @@ public class CreateTestDialog extends DialogWrapper {
|
||||
myMethodsTable.setMemberInfos(methods);
|
||||
}
|
||||
|
||||
protected @NotNull List<@NotNull MemberInfo> createMemberInfos(PsiClass targetClass, boolean includeInherited) {
|
||||
return TestIntegrationUtils.extractClassMethods(targetClass, includeInherited);
|
||||
}
|
||||
|
||||
private String getDefaultLibraryName() {
|
||||
return getProperties().getValue(DEFAULT_LIBRARY_NAME_PROPERTY, "JUnit5");
|
||||
}
|
||||
|
||||
+26
@@ -9,10 +9,16 @@ import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiPackage
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleSettings
|
||||
import com.intellij.refactoring.util.RefactoringMessageUtil
|
||||
import com.intellij.refactoring.util.classMembers.MemberInfo
|
||||
import com.intellij.testIntegration.createTest.CreateTestDialog
|
||||
import org.jetbrains.annotations.Nls
|
||||
import org.jetbrains.kotlin.analysis.api.permissions.KaAllowAnalysisOnEdt
|
||||
import org.jetbrains.kotlin.analysis.api.permissions.allowAnalysisOnEdt
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginModeProvider
|
||||
import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinMemberInfoSupport
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
@@ -33,6 +39,26 @@ class KotlinCreateTestDialog(
|
||||
suggestTestClassName(targetClass, sourceElement)?.let { className = it }
|
||||
}
|
||||
|
||||
override fun createMemberInfos(targetClass: PsiClass?, includeInherited: Boolean): List<MemberInfo> {
|
||||
return super.createMemberInfos(targetClass, includeInherited).map(::KotlinTestMemberInfo)
|
||||
}
|
||||
|
||||
/**
|
||||
* Workaround to fix display name rendering for Kotlin test members
|
||||
*/
|
||||
@OptIn(KaAllowAnalysisOnEdt::class)
|
||||
private class KotlinTestMemberInfo(memberInfo: MemberInfo): MemberInfo(memberInfo.member) {
|
||||
init {
|
||||
val unwrapped = (memberInfo.member as? KtLightMethod)?.unwrapped
|
||||
if (unwrapped is KtNamedFunction) {
|
||||
displayName =
|
||||
allowAnalysisOnEdt {
|
||||
KotlinMemberInfoSupport.getInstance().renderMemberInfo(unwrapped)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getClassName(): String = explicitClassName ?: super.className
|
||||
|
||||
override fun checkCanCreateClass(): String? =
|
||||
|
||||
Reference in New Issue
Block a user