in extractor/src/main/scala/org/jetbrains/sbt/extractors/ProjectExtractor.scala [55:110]
private[extractors] def extract(implicit state: State): ProjectData = {
val resolvers = allResolvers.collect {
case repo: MavenRepository => ResolverData(repo.name, repo.root)
}.toSet
/**
* Ignore "jmh" configuration.<br>
* This is a dirty WORKAROUND for https://youtrack.jetbrains.com/issue/SCL-13127<br>
* "jmh" configuration is defined in some strange way:<br>
* - it extends Test configuration
* - it also assigns compilation output to Compile configuration compilation output
* {{{
* val Jmh = config("jmh") extend Test
* classDirectory := (classDirectory in Compile).value
* }}}
*
* It should be fine to ignore this configuration as we don't support it natively in IntelliJ anyway.
*
* @see https://github.com/sbt/sbt-jmh
* @see https://github.com/sbt/sbt-jmh/blob/main/plugin/src/main/scala/pl/project13/scala/sbt/JmhPlugin.scala
*/
def isJmhConfiguration(config: sbt.Configuration): Boolean =
config.name.toLowerCase == "jmh"
val compileConfigurationsData = sourceConfigurations.flatMap(extractConfiguration(Compile.name, webAssetsDirsToExclude))
val testConfigurationData = testConfigurations
.filterNot(isJmhConfiguration)
.flatMap(extractConfiguration(Test.name))
val configurations = mergeConfigurations(compileConfigurationsData ++ testConfigurationData)
ProjectData(
projectRef.id,
projectRef.build,
name,
organization,
version,
base,
packagePrefix,
basePackages,
target,
configurations,
extractJava,
extractScala,
compileOrder.toString,
dependencies,
resolvers,
play2,
settingData,
taskData,
commandData,
mainSourceDirectories,
testSourceDirectories,
// This is a default value and will be changed later, when sources are generated.
generatedManagedSources = false
)
}