override def createTask: Def.Initialize[InputTask[Map[String,()

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
  }