@@ -4,15 +4,21 @@ import cc.unitmesh.devti.provider.BuildSystemProvider
4
4
import cc.unitmesh.devti.provider.DevPackage
5
5
import cc.unitmesh.devti.template.context.DockerfileContext
6
6
import cc.unitmesh.idea.detectLanguageLevel
7
+ import com.intellij.openapi.externalSystem.model.ProjectKeys
7
8
import com.intellij.openapi.externalSystem.service.project.ProjectDataManager
8
9
import com.intellij.openapi.externalSystem.service.ui.completion.TextCompletionInfo
10
+ import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
9
11
import com.intellij.openapi.progress.ProgressManager
10
12
import com.intellij.openapi.project.Project
11
13
import com.intellij.openapi.project.guessProjectDir
12
14
import com.intellij.psi.PsiFile
13
15
import org.jetbrains.idea.maven.project.MavenProjectsManager
16
+ import org.jetbrains.plugins.gradle.GradleManager
14
17
import org.jetbrains.plugins.gradle.service.project.GradleTasksIndices
18
+ import org.jetbrains.plugins.gradle.settings.GradleSettings
19
+ import org.jetbrains.plugins.gradle.settings.GradleSystemSettings
15
20
import org.jetbrains.plugins.gradle.util.GradleConstants
21
+ import org.jetbrains.plugins.gradle.util.GradleModuleData
16
22
17
23
18
24
open class JavaBuildSystemProvider : BuildSystemProvider () {
@@ -21,11 +27,12 @@ open class JavaBuildSystemProvider : BuildSystemProvider() {
21
27
val buildToolName: String
22
28
var taskString = " "
23
29
24
- val gradleInfo = projectDataManager.getExternalProjectsData(project, GradleConstants .SYSTEM_ID )
30
+ val gradleInfos = projectDataManager.getExternalProjectsData(project, GradleConstants .SYSTEM_ID )
25
31
val mavenProjects = MavenProjectsManager .getInstance(project).projects
26
32
27
- if (gradleInfo.isNotEmpty()) {
28
- buildToolName = " Gradle"
33
+ if (gradleInfos.isNotEmpty()) {
34
+ buildToolName = determineGradleDslType(project)
35
+
29
36
val indices = GradleTasksIndices .getInstance(project)
30
37
31
38
val tasks = indices.findTasks(project.guessProjectDir()!! .path)
@@ -55,6 +62,19 @@ open class JavaBuildSystemProvider : BuildSystemProvider() {
55
62
)
56
63
}
57
64
65
+ fun determineGradleDslType (project : Project ): String {
66
+ val projectDir = project.guessProjectDir() ? : return " Gradle"
67
+ val hasKotlinDsl = projectDir.findChild(" build.gradle.kts" ) != null
68
+ val hasGroovyDsl = projectDir.findChild(" build.gradle" ) != null
69
+
70
+ return when {
71
+ hasKotlinDsl && hasGroovyDsl -> " Gradle (Mixed DSL)"
72
+ hasKotlinDsl -> " Gradle Kotlin DSL (build.gradle.kts)"
73
+ hasGroovyDsl -> " Gradle (build.gradle)"
74
+ else -> " Gradle"
75
+ }
76
+ }
77
+
58
78
override fun isDeclarePackageFile (filename : String ): Boolean {
59
79
return filename == " build.gradle" || filename == " pom.xml" || filename == " build.gradle.kts"
60
80
}
0 commit comments