def build()

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)
  }