Skip to content

Commit

Permalink
fix(devti-lang): improve run configuration handling #101
Browse files Browse the repository at this point in the history
The commit addresses an issue with the run configuration handling in the DevTI language plugin. Previously, the code was prone to null pointer exceptions when trying to access the configuration settings. This commit fixes the issue by ensuring that a valid configuration is always available, either by creating a new one or by retrieving an existing one. Additionally, the error message for a missing script has been localized for improved user experience.
  • Loading branch information
phodal committed Mar 15, 2024
1 parent 2952cc2 commit cc8b04e
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 15 deletions.
Expand Up @@ -13,7 +13,6 @@ import com.intellij.execution.runners.ExecutionEnvironmentBuilder
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.project.DumbAwareAction
import org.jetbrains.annotations.NonNls

Expand All @@ -37,15 +36,12 @@ class DevInRunFileAction : DumbAwareAction() {

val configProducer = RunConfigurationProducer.getInstance(AutoDevRunConfigurationProducer::class.java)

val configurationSettings = configProducer.findExistingConfiguration(context)
val runConfiguration = if (configurationSettings == null) {
RunManager.getInstance(project).createConfiguration(
file.name,
AutoDevConfigurationType::class.java
)
} else {
configurationSettings
}.configuration as AutoDevConfiguration
val runManager = RunManager.getInstance(project)

val runConfiguration = (
configProducer.findExistingConfiguration(context)
?: runManager.createConfiguration(file.name, AutoDevConfigurationType::class.java)
).configuration as AutoDevConfiguration

runConfiguration.setScriptPath(file.virtualFile.path)

Expand Down
Expand Up @@ -41,15 +41,13 @@ class AutoDevConfiguration(project: Project, factory: ConfigurationFactory, name
myScriptPath = element.readString(SCRIPT_PATH_TAG) ?: ""
}

override fun getConfigurationEditor(): SettingsEditor<out RunConfiguration> {
return AutoDevSettingsEditor(project)
}
override fun getConfigurationEditor(): SettingsEditor<out RunConfiguration> = AutoDevSettingsEditor(project)

fun setScriptPath(scriptPath: String) {
myScriptPath = scriptPath.trim { it <= ' ' }
}

fun getScriptPath(): @NlsSafe String {
fun getScriptPath(): String {
return myScriptPath
}
}
2 changes: 1 addition & 1 deletion src/main/resources/messages/AutoDevBundle.properties
Expand Up @@ -150,4 +150,4 @@ devin.ref.loading=Loading git revision
line.marker.run.0=Run {0}
autodev.devti=Create property
devin.label.choose.file=Choice DevIn File
devin.run.error.script.not.found=Script Not Found
devin.run.error.script.not.found=Script not found

0 comments on commit cc8b04e

Please sign in to comment.