in ideaSupport/src/main/scala/org/jetbrains/sbtidea/tasks/IdeaConfigBuilder.scala [56:106]
def build(): Unit = {
if (options.generateDefaultRunConfig) {
val configurationName = artifactName
val content = buildRunConfigurationXML(
configurationName = configurationName,
vmOptions = vmOptions,
programParams = options.programParams,
envVars = options.ideaRunEnv,
)
writeToFile(runConfigDir / s"$configurationName.xml", content)
if (useNewVmOptions) {
// Generate run configuration with the old versions for convenience
// If there are any issues with the new version, we could quickly try the old configuration during
// local development without changing value of `org.jetbrains.sbtidea.Keys.useNewVmOptions` and reloading
// TODO: drop this after some time (in ~1 month?) if there are no issues identified in the default run configuration
val configurationName = artifactName + " (old VM options)"
val content = buildRunConfigurationXML(
configurationName = configurationName,
vmOptions = VmOptions.Old(legacyIntellijVMOptions),
programParams = options.programParams,
envVars = options.ideaRunEnv,
)
writeToFile(runConfigDir / s"$configurationName.xml", content)
}
}
options.additionalRunConfigs.foreach { data: AdditionalRunConfigData =>
val configurationName = artifactName + data.configurationNameSuffix
val content = buildRunConfigurationXML(
configurationName = configurationName,
vmOptions = vmOptions.withExtraOptions(data.extraVmOptions),
programParams = options.programParams,
envVars = options.ideaRunEnv
)
writeToFile(runConfigDir / s"$configurationName.xml", content)
}
if (options.generateRunConfigForSplitMode) {
val configurationName = artifactName + " (split mode)"
buildSplitModeRunConfigurationXml(configurationName) match {
case Right(content) =>
writeToFile(runConfigDir / s"$configurationName.xml", content)
case Left(error) =>
log.warn(s"Can't generate run configuration for split mode: $error")
}
}
if (options.generateJUnitTemplate)
writeToFile(runConfigDir / "_template__of_JUnit.xml", buildJUnitTemplate)
}