in ideaSupport/src/main/scala/org/jetbrains/sbtidea/Utils.scala [29:43]
private def parsePlugin(str: String): IntellijPlugin.WithKnownId = str match {
case IdRegex(id, version, channel) =>
IntellijPlugin.Id(id, Option(version), Option(channel))
case IdWithCustomUrlRegex(id, version, url) =>
if (version != null) {
log.warn(s"Version `$version` in plugin reference `$id` is not used because a direct link is used to download the plugin: $url")
}
IntellijPlugin.IdWithDownloadUrl(id, new URL(url))
case _ =>
throw new RuntimeException(
s"""Failed to parse plugin: $str.
|Here are some examples of valid strings:
|${PluginStringExamples.mkString("\n")}""".stripMargin
)
}