in extractor-legacy-0.13/src/main/scala/org/jetbrains/sbt/operations.scala [19:46]
private def transformSettings(thisScope: Scope, uri: URI, rootProject: URI => String, settings: Seq[Setting[_]]): Seq[Setting[_]] =
Project.transform(Scope.resolveScope(thisScope, uri, rootProject), settings)
// copied from sbt.internal.SessionSettings
private def reapply(session: SessionSettings, s: State): State =
BuiltinCommands.reapply(session, Project.structure(s), s)
def structure(state: State): BuildStructure =
sbt.Project.structure(state)
implicit class `enrich SettingKey`[T](key: SettingKey[T]) {
def find(state: State): Option[T] =
key.get(structure(state).data)
def get(state: State): T =
find(state).get
def getOrElse(state: State, default: => T): T =
find(state).getOrElse(default)
def forAllProjects(state: State, projects: Seq[ProjectRef]): Seq[(ProjectRef, T)] =
projects.flatMap(p => key.in(p).find(state).map(it => (p, it)))
def forAllConfigurations(state: State, configurations: Seq[sbt.Configuration]): Seq[(sbt.Configuration, T)] = {
configurations.flatMap(c => key.in(c).get(structure(state).data).map(it => (c, it)))
}
}