in ideaSupport/src/main/scala/org/jetbrains/sbtidea/tasks/SearchPluginId.scala [84:117]
override def createTask: Def.Initialize[InputTask[Map[String, (String, Boolean)]]] = Def.inputTask {
import complete.DefaultParsers.*
val log = streams.value.log
val parsed = spaceDelimited("[--nobundled|--noremote] <plugin name regexp>").parsed
val maybeQuery = parsed.lastOption.filterNot(_.startsWith("--"))
PluginLogger.bind(new SbtPluginLogger(streams.value))
val result: Map[String, (String, Boolean)] = maybeQuery match {
case Some(query) =>
val searcher = new SearchPluginId(
intellijBaseDirectory.value.toPath,
BuildInfo(
intellijBuild.value,
intellijPlatform.value
),
useBundled = !parsed.contains("--nobundled"),
useRemote = !parsed.contains("--noremote")
)
searcher.search(query)
.groupBy(p => p.id)
.mapValues(p => (p.head.name, p.head.isRemote))
case None =>
log.error(s"search query expected")
Map.empty
}
result.foreach {
case (id, (name, false)) => log.info(s"bundled\t\t- $name[$id]")
case (id, (name, true)) => log.info(s"from repo\t- $name[$id]")
}
result
}