mirror of https://github.com/sbt/sbt.git
39 lines
1.5 KiB
Scala
39 lines
1.5 KiB
Scala
package sbt
|
|
|
|
import Types.const
|
|
import java.io.File
|
|
|
|
/** Represents how settings from various sources are automatically merged into a Project's settings.
|
|
* This only configures per-project settings and not global or per-build settings. */
|
|
sealed abstract class AddSettings
|
|
|
|
object AddSettings
|
|
{
|
|
private[sbt] final class Sequence(val sequence: Seq[AddSettings]) extends AddSettings
|
|
private[sbt] final object User extends AddSettings
|
|
private[sbt] final class Plugins(val include: Plugin => Boolean) extends AddSettings
|
|
private[sbt] final class DefaultSbtFiles(val include: File => Boolean) extends AddSettings
|
|
private[sbt] final class SbtFiles(val files: Seq[File]) extends AddSettings
|
|
|
|
/** Adds all settings from a plugin to a project. */
|
|
val allPlugins: AddSettings = plugins(const(true))
|
|
|
|
/** Allows the plugins whose names match the `names` filter to automatically add settings to a project. */
|
|
def plugins(include: Plugin => Boolean): AddSettings = new Plugins(include)
|
|
|
|
/** Includes user settings in the project. */
|
|
val userSettings: AddSettings = User
|
|
|
|
/** Includes the settings from all .sbt files in the project's base directory. */
|
|
val defaultSbtFiles: AddSettings = new DefaultSbtFiles(const(true))
|
|
|
|
/** Includes the settings from the .sbt files given by `files`. */
|
|
def sbtFiles(files: File*): AddSettings = new SbtFiles(files)
|
|
|
|
/** Includes settings automatically*/
|
|
def seq(autos: AddSettings*): AddSettings = new Sequence(autos)
|
|
|
|
val allDefaults: AddSettings = seq(userSettings, allPlugins, defaultSbtFiles)
|
|
}
|
|
|