@@ -8,23 +8,34 @@ import cc.unitmesh.go.context.GoStructContextBuilder
8
8
import cc.unitmesh.go.util.GoPsiUtil
9
9
import com.goide.GoLanguage
10
10
import com.goide.execution.testing.GoTestRunConfiguration
11
+ import com.goide.execution.testing.frameworks.gotest.GotestFramework
11
12
import com.goide.psi.*
13
+ import com.intellij.execution.actions.ConfigurationContext
14
+ import com.intellij.execution.configurations.RunConfiguration
12
15
import com.intellij.execution.configurations.RunProfile
13
16
import com.intellij.openapi.application.ReadAction
14
17
import com.intellij.openapi.application.runReadAction
15
18
import com.intellij.openapi.project.Project
16
19
import com.intellij.openapi.roots.TestSourcesFilter
20
+ import com.intellij.openapi.vfs.VirtualFile
17
21
import com.intellij.psi.PsiElement
18
22
import com.intellij.psi.PsiFile
23
+ import com.intellij.psi.PsiManager
19
24
import com.intellij.psi.util.PsiTreeUtil
20
25
import com.intellij.testIntegration.TestFinderHelper
21
26
22
27
class GoAutoTestService : AutoTestService () {
23
28
override fun isApplicable (element : PsiElement ): Boolean = element.containingFile?.language == GoLanguage .INSTANCE
24
29
override fun runConfigurationClass (project : Project ): Class <out RunProfile > = GoTestRunConfiguration ::class .java
30
+ override fun lookupRelevantClass (project : Project , element : PsiElement ): List <ClassContext > = listOf ()
25
31
26
- override fun lookupRelevantClass (project : Project , element : PsiElement ): List <ClassContext > {
27
- return listOf ()
32
+ override fun createConfiguration (project : Project , virtualFile : VirtualFile ): RunConfiguration ? {
33
+ val goFile = runReadAction { PsiManager .getInstance(project).findFile(virtualFile) as ? GoFile } ? : return null
34
+
35
+ return ConfigurationContext (goFile).configurationsFromContext?.firstOrNull {
36
+ val configuration = it.configuration as ? GoTestRunConfiguration
37
+ configuration?.testFramework is GotestFramework
38
+ }?.configurationSettings?.configuration
28
39
}
29
40
30
41
override fun findOrCreateTestFile (sourceFile : PsiFile , project : Project , element : PsiElement ): TestFileContext ? {
0 commit comments