in shared/src/main/scala/org/jetbrains/sbt/structure/data.scala [101:151]
private def sort(files: Seq[File]): Seq[File] = files.sortBy(_.getCanonicalPath)
def apply(uri: URI, imports: Seq[String], classes: Seq[File], docs: Seq[File], sources: Seq[File]): BuildData =
BuildDataImpl(
uri.normalize(),
imports.sorted,
sort(classes),
sort(docs),
sort(sources)
)
}
/**
* Lists of directories in specified configuration
*
* @param id Name of configuration, usually "compile" or "test"
* @param sources List of source directories
* @param resources List of resource directories
* @param excludes List of excluded directories
* @param classes Directory containing compiled classes and copied resources
*/
case class ConfigurationData(id: String,
sources: Seq[DirectoryData],
resources: Seq[DirectoryData],
excludes: Seq[File],
classes: File)
case class DirectoryData(file: File, managed: Boolean)
case class CompilerOptions(configuration: Configuration, options: Seq[String])
case class JavaData(home: Option[File], options: Seq[CompilerOptions])
/**
* Analog of `sbt.internal.inc.ScalaInstance`
*
* @param libraryJars contains scala-library.jar and (in case of Scala 3) scala3-library_3.jar
* @param compilerJars contains all jars required to instantiate scala compiler<br>
* (except for library jars, which should also be included when creating a compiler instance)
* @param extraJars other jars, usually contain jars required to run ScalaDoc
* @param compilerBridgeBinaryJar scala3-compiler-bridge_3.x.jar, extracted from `sbt.Keys.scalaCompilerBridgeBinaryJar`
*/
case class ScalaData(
organization: String,
version: String,
libraryJars: Seq[File],
compilerJars: Seq[File],
extraJars: Seq[File],
compilerBridgeBinaryJar: Option[File],
options: Seq[CompilerOptions]
) {