in extractor-legacy-0.13/src/main/scala/org/jetbrains/sbt/extractors/UtilityTasks.scala [168:184]
private def areNecessaryPluginsLoaded(project: ResolvedProject): Boolean = {
// Here is a hackish way to test whether project has JvmPlugin enabled.
// Prior to 0.13.8 SBT had this one enabled by default for all projects.
// Now there may exist projects with IvyPlugin (and thus JvmPlugin) disabled
// lacking all the settings we need to extract in order to import project in IDEA.
// These projects are filtered out by checking `autoPlugins` field.
// But earlier versions of SBT 0.13.x had no `autoPlugins` field so
// structural typing is used to get the data.
try {
type ResolvedProject_0_13_7 = {def autoPlugins: Seq[{ def label: String}]}
val resolvedProject_0_13_7 = project.asInstanceOf[ResolvedProject_0_13_7]
val labels = resolvedProject_0_13_7.autoPlugins.map(_.label)
labels.contains("sbt.plugins.JvmPlugin")
} catch {
case _ : NoSuchMethodException => true
}
}