def parseMillPluginDeps()

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
  }