private def sort()

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]
) {