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
}
}