in extractor/src/main/scala/org/jetbrains/sbt/operations.scala [23:48]
private def transformSettings(thisScope: Scope, uri: URI, rootProject: URI => String, settings: Seq[Setting[_]]): Seq[Setting[_]] =
Project.transform(Scope.resolveScope(thisScope, uri, rootProject), settings.toSbtSeqType)
// 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 final class SettingKeyOps[T](key: SettingKey[T]) {
def find(state: State): Option[T] =
key.get(structure(state).data)
def get(state: State): T =
find(state).get
def getValueOrElse(state: State, default: => T): T =
find(state).getOrElse(default)
def forAllProjects(state: State, projects: Seq[ProjectRef]): Seq[(ProjectRef, T)] =
projects.flatMap(p => (p / key).find(state).map(it => (p, it)))
def forAllConfigurations(state: State, configurations: Seq[sbt.Configuration]): Seq[(sbt.Configuration, T)] =
configurations.flatMap(c => (c / key).get(structure(state).data).map(it => (c, it)))
}