in modules/core/src/main/scala/org/scalasteward/core/buildtool/mill/parser.scala [78:112]
def parseMillPluginDeps(s: String, millVersion: Version): List[Dependency] = {
val importParser = Parser.string("import")
val ivyParser = Parser.string("$ivy")
val backtickParser = Parser.char('`')
val doubleColonParser = Parser.string("::")
val dotParser = Parser.char('.')
val grabUntilColonParser = Parser.until(doubleColonParser)
val grabntilBacktickParser = Parser.until(backtickParser)
val parser =
(importParser ~
sp.rep ~
ivyParser ~
dotParser ~
backtickParser) *>
(grabUntilColonParser.string <*
doubleColonParser) ~
grabUntilColonParser.string ~
(doubleColonParser *>
grabntilBacktickParser.string <*
backtickParser)
val pluginDependencies = s
.split("\n")
.toList
.map { line =>
parser.parse(line)
}
.collect { case Right((_, ((org, artifact), version))) =>
Dependency(GroupId(org), millPluginArtifact(artifact, millVersion), Version(version))
}
pluginDependencies
}