Skip to content

Commit 3ce99a7

Browse files
committed
feat(devins-lang): introduce new ShellRunService to support running shell scripts. This service simplifies the execution of shell commands within the DevIns IDE, enhancing the user experience. #100
1 parent efa1b64 commit 3ce99a7

File tree

1 file changed

+4
-12
lines changed
  • exts/devins-lang/src/main/kotlin/cc/unitmesh/devti/language/compiler/service

1 file changed

+4
-12
lines changed

exts/devins-lang/src/main/kotlin/cc/unitmesh/devti/language/compiler/service/ShellRunService.kt

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,24 @@ package cc.unitmesh.devti.language.compiler.service
22

33
import cc.unitmesh.devti.provider.RunService
44
import com.intellij.execution.RunManager
5-
import com.intellij.execution.RunnerAndConfigurationSettings
65
import com.intellij.execution.configurations.RunConfiguration
76
import com.intellij.execution.configurations.RunProfile
87
import com.intellij.openapi.project.Project
98
import com.intellij.openapi.vfs.VirtualFile
9+
import com.intellij.psi.PsiManager
10+
import com.intellij.sh.psi.ShFile
1011
import com.intellij.sh.run.ShConfigurationType
1112
import com.intellij.sh.run.ShRunConfiguration
1213

1314
class ShellRunService : RunService {
1415
override fun runConfigurationClass(project: Project): Class<out RunProfile> = ShRunConfiguration::class.java
15-
1616
override fun createConfiguration(project: Project, virtualFile: VirtualFile): RunConfiguration? {
17+
val psiFile = PsiManager.getInstance(project).findFile(virtualFile) as? ShFile ?: return null
1718
val configurationSetting = RunManager.getInstance(project)
18-
.createConfiguration(virtualFile.name, ShConfigurationType.getInstance())
19+
.createConfiguration(psiFile.name, ShConfigurationType.getInstance())
1920

2021
val configuration = configurationSetting.configuration as ShRunConfiguration
2122
configuration.scriptPath = virtualFile.path
2223
return configurationSetting.configuration
2324
}
24-
25-
override fun createRunSettings(project: Project, virtualFile: VirtualFile): RunnerAndConfigurationSettings? {
26-
val runManager = RunManager.getInstance(project)
27-
this.createConfiguration(project, virtualFile)?.let {
28-
return runManager.findSettings(it)
29-
}
30-
31-
return null
32-
}
3325
}

0 commit comments

Comments
 (0)