From 9821f5e1b43f480fd8b4dbfe54cfd70bf9a1ac3f Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 20 Jan 2023 16:14:26 -0500 Subject: [PATCH] def % support --- main/src/main/scala/sbt/ProjectExtra.scala | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/main/src/main/scala/sbt/ProjectExtra.scala b/main/src/main/scala/sbt/ProjectExtra.scala index dfeeef459..a800e0c6f 100755 --- a/main/src/main/scala/sbt/ProjectExtra.scala +++ b/main/src/main/scala/sbt/ProjectExtra.scala @@ -53,6 +53,7 @@ import sbt.internal.server.ServerHandler import sbt.librarymanagement.Configuration import sbt.util.{ Show, Level } import sjsonnew.JsonFormat +import scala.annotation.targetName import scala.concurrent.{ Await, TimeoutException } import scala.concurrent.duration.* @@ -222,17 +223,6 @@ trait ProjectExtra extends Scoped.Syntax: keyNameColor ) - /* - - - - final class Constructor(p: ProjectReference) { - def %(conf: Configuration): ClasspathDependency = %(conf.name) - - def %(conf: String): ClasspathDependency = ClasspathDependency(p, Some(conf)) - } - */ - def getOrError[T](state: State, key: AttributeKey[T], msg: String): T = state.get(key).getOrElse(sys.error(msg)) @@ -670,6 +660,12 @@ trait ProjectExtra extends Scoped.Syntax: ): Conversion[A, ClasspathDep[ProjectReference]] = (a: A) => ClasspathDep.ClasspathDependency(a, None) + extension (p: ProjectReference) + def %(conf: Configuration): ClasspathDep.ClasspathDependency = %(conf.name) + @targetName("percentString") + def %(conf: String): ClasspathDep.ClasspathDependency = + ClasspathDep.ClasspathDependency(p, Some(conf)) + extension [A1](in: Def.Initialize[Task[A1]]) def updateState(f: (State, A1) => State): Def.Initialize[Task[A1]] = in(t => SessionVar.transform(t, f))