private def searchPluginIdRemote()

in ideaSupport/src/main/scala/org/jetbrains/sbtidea/tasks/SearchPluginId.scala [52:70]


  private def searchPluginIdRemote(queryRaw: String): Seq[PluginBasicInfo] = {
    try {
      val query: String = URLEncoder.encode(queryRaw, "UTF-8")
      val build: String = s"${buildInfo.edition.edition}-${context.productInfo.buildNumber}"
      val url: String = getMarketplaceSearchUrl(query, build)
      val data: String = getHttpGetResponseString(url)

      val jsonAst = data.parseJson
      val jsonArray = jsonAst.convertTo[JsArray]
      val values = jsonArray.elements.map(_.asJsObject())
      val names = values.map(jsObject => jsObject.fields("name").convertTo[String])
      val ids = values.map(jsObject => jsObject.fields("xmlId").convertTo[String])
      ids.zip(names).map { case (id, name) => PluginBasicInfo(id, name, isRemote = true) }
    } catch {
      case ex: Throwable =>
        PluginLogger.warn(s"Failed to query IJ plugin repo: $ex")
        Nil
    }
  }