@@ -5,6 +5,7 @@ import org.utbot.intellij.plugin.ui.utils.PsiElementHandler
5
5
import com.intellij.openapi.actionSystem.AnAction
6
6
import com.intellij.openapi.actionSystem.AnActionEvent
7
7
import com.intellij.openapi.actionSystem.CommonDataKeys
8
+ import com.intellij.openapi.actionSystem.PlatformDataKeys
8
9
import com.intellij.openapi.editor.Editor
9
10
import com.intellij.openapi.module.ModuleUtil
10
11
import com.intellij.openapi.project.Project
@@ -19,6 +20,8 @@ import org.jetbrains.kotlin.idea.core.util.toPsiDirectory
19
20
import org.jetbrains.kotlin.idea.core.util.toPsiFile
20
21
import org.utbot.intellij.plugin.util.extractFirstLevelMembers
21
22
import java.util.*
23
+ import org.jetbrains.kotlin.j2k.getContainingClass
24
+ import org.jetbrains.kotlin.utils.addIfNotNull
22
25
23
26
class GenerateTestsAction : AnAction () {
24
27
override fun actionPerformed (e : AnActionEvent ) {
@@ -63,12 +66,12 @@ class GenerateTestsAction : AnAction() {
63
66
val srcClasses = mutableSetOf<PsiClass >()
64
67
var selectedMethod: MemberInfo ? = null
65
68
var extractMembersFromSrcClasses = false
66
- val element = e.getData(CommonDataKeys .PSI_ELEMENT ) ? : return null
69
+ val element = e.getData(CommonDataKeys .PSI_ELEMENT )
67
70
if (element is PsiFileSystemItem ) {
68
71
e.getData(CommonDataKeys .VIRTUAL_FILE_ARRAY )?.let {
69
72
srcClasses + = getAllClasses(project, it)
70
73
}
71
- } else {
74
+ } else if (element is PsiElement ) {
72
75
val file = element.containingFile ? : return null
73
76
val psiElementHandler = PsiElementHandler .makePsiElementHandler(file)
74
77
@@ -84,6 +87,12 @@ class GenerateTestsAction : AnAction() {
84
87
selectedMethod = MemberInfo (element)
85
88
}
86
89
}
90
+ } else {
91
+ val someSelection = e.getData(PlatformDataKeys .SELECTED_ITEMS )? : return null
92
+ someSelection.forEach {
93
+ if (it is PsiClass ) srcClasses.add(it)
94
+ else if (it is PsiElement ) srcClasses.addIfNotNull(it.getContainingClass())
95
+ }
87
96
}
88
97
srcClasses.removeIf { it.isInterface }
89
98
var commonSourceRoot = null as VirtualFile ?
0 commit comments