Mark Harrah
0507a2a1a9
Deprecate implicit RootProject/LocalProject calls on URI/File/String
...
Builds are using explicit calls anyway, so reduce the implicits.
2013-07-10 18:15:30 -04:00
Mark Harrah
284cddff70
set position on parameter references in task/setting macros
2013-06-19 11:53:11 -04:00
Mark Harrah
60b714e8de
require dynamic initialization to be explicitly enabled for derived settings
2013-05-09 17:28:39 -04:00
Mark Harrah
dfe418b3c3
Derived settings, which allows injecting settings wherever their dependencies are defined.
...
This is an advanced feature initially intended for internal sbt use.
2013-05-09 17:27:43 -04:00
Mark Harrah
5b80e8c941
use .evaluated instead of .value for InputTasks
2013-03-08 14:23:31 -05:00
Mark Harrah
387f06e73a
partialInput/fullInput methods on InputTask to apply input programmatically. ref #407 .
2013-03-08 14:23:31 -05:00
Mark Harrah
d6f78db0c9
Construct input tasks in multiple steps to allow input task reuse. Fixes #407 .
2013-03-08 14:23:30 -05:00
Mark Harrah
1fdf3fa38c
support explicit types on lazy vals in definingValName
...
lazy val x: Project = project has a rather different enclosing tree
than lazy val x = project.
2013-03-03 19:43:37 -05:00
Mark Harrah
f6d73128fc
deprecations
2013-02-25 09:24:04 -05:00
Mark Harrah
9ab1b98d2a
Use @compileTimeOnly for .value and .parsed methods.
...
Needed to set position on wrapper method for correct error message position.
2013-02-19 08:54:40 -05:00
Mark Harrah
a57407375e
Implement InputTask.~= to operate directly on the result type T instead of an InputTask[T].
2013-01-28 18:01:35 -05:00
Mark Harrah
13ea342b7a
use standard Context.weakTypeOf
2013-01-28 17:14:53 -05:00
Mark Harrah
076480b50a
Reduce InputTask to the ideal wrapper around 'State => Parser[Initialize[Task[T]]]'
...
Ref #407 .
2013-01-28 17:14:53 -05:00
Mark Harrah
9013e00fdd
Remove InputStatic and parsedResult.
...
This cleans up the InputTask implementation. It no longer requires the hook
in setting loading (Load.finalTransforms) and has better types.
2013-01-18 18:49:26 -05:00
Mark Harrah
aefad9c033
when looking for the enclosing val definition in definingValName, allow the macro to be in an expression
2013-01-10 16:06:12 -05:00
Mark Harrah
f388b07632
fix inputTask construction method and put sbt package object in proper directory
2012-12-09 20:40:41 -05:00
Grzegorz Kossakowski
ef39aeb9c1
Follow source layout convention supported by Eclipse.
...
Moved source files so directory structure follow package
structure. That makes it possible to use Scala Eclipse plugin
with sbt's source code.
2012-12-07 10:27:08 -08:00
Mark Harrah
005b2b356f
fix IO tests, which needed scala-compiler.jar on the classpath
2012-12-04 13:20:03 -05:00
Mark Harrah
cdd2e72cdf
move top-level settingKey,taskKey,inputKey objects to Def and package object
...
avoids class file name collision on case insensitive filesystem
2012-12-04 13:08:52 -05:00
Mark Harrah
2598a8f1a9
extend source positions to all setting creation methods
2012-12-02 03:17:20 -05:00
Mark Harrah
2f2596c133
record source name or full path for settings/tasks depending on whether the enclosing package is the empty package
2012-12-02 03:17:20 -05:00
Mark Harrah
a8d0af9464
split out KeyMacro.enclosingTrees
2012-12-02 03:17:20 -05:00
Mark Harrah
8400b992af
source positions for settings/tasks in .scala files
2012-12-02 03:17:20 -05:00
Mark Harrah
3bff14d77a
taskKey,settingKey,inputKey macros to get name from the defining val
2012-12-02 03:17:20 -05:00
Mark Harrah
538f687208
Use and methods instead of mapR,mapFailure,flatFailure,flatMapR
2012-12-02 03:17:19 -05:00
Mark Harrah
a9289ad0ce
Explicitly specify type parameters in calls to KCons in KList builder.
...
scalac couldn't infer the type constructor otherwise.
2012-11-18 09:20:26 -05:00
Mark Harrah
49e7214fe3
InputTask macro
...
Similar to task macros, the parsed value is accessed by calling `parsed`
on a Parser[T], Initialize[Parser[T]], or Initialize[State => Parser[T]].
Values of tasks and settings may be accessed as usual via `value`.
2012-11-17 20:23:07 -05:00
Mark Harrah
522414cd99
AbsTypeTag -> WeakTypeTag and converted more settings
2012-11-17 20:23:06 -05:00
Mark Harrah
4cc5bece70
address a valid unchecked warning
...
In order to correctly pattern match Tree subclasses in reflection/macros,
scalac needs the corresponding implicit for *Tag available because the types
are only abstract types.
2012-11-17 20:23:06 -05:00
Mark Harrah
2c7e9cd893
Scala 2.10.0-M7
2012-11-17 20:23:06 -05:00
Mark Harrah
b453af7c45
Properly apply transformations to dynamic tasks.
...
That is, implement Initialize[Task[T]].flatten correctly.
This requires preserving the transformations applied in a scope so that
they can be applied to an Initialize value after static settings have been
evaluated.
2012-11-17 20:23:06 -05:00
Mark Harrah
0a642f2283
move explicit task/setting macros to Def, move to AbsTypeTag
2012-11-17 20:23:06 -05:00
Mark Harrah
3790d6656a
failing use case
2012-11-17 20:23:06 -05:00
Mark Harrah
90faeff546
Task macro cleanup
...
* use normal TypeTree constructor
* remove unnecessary 'with Singleton' in macro utility
* integrate changes suggested by @xeno-by
* add refVar back and call asTypeConstructor instead of asType to refer to a type variable
2012-11-17 20:22:39 -05:00
Mark Harrah
1c22478edc
task setting macros for :=, +=, ++=
...
also, bump to 2.10.0-M6
2012-11-17 20:19:24 -05:00
Mark Harrah
2e120ed86f
split out InputTask
2012-11-17 20:19:24 -05:00
Mark Harrah
8d6dd10798
2.10.0-M5, different arity generalization
...
1. KList[M[_]] now instead of KList[HL <: HList, M[_]]
a. head, tail work properly in this variant
b. disadvantage is that full type not easily transformed to new type constructor
2. AList abstracts on K[L[x]], a higher order type constructor.
A. Instances written for:
a. KList
b. Seq[M[T]] for a fixed T
c. TupleN
d. single values
e. operate on one type constructor when nested
B. Main disadvantage is type inference. It just doesn't happen for K[L[x]].
This is mitigated by AList being used internally and rarely needing to construct a K.
2012-11-17 20:19:24 -05:00
Mark Harrah
eecaeafbdf
reorganization of main/
...
* split several source files
* move base settings sources (Scope, Structure, ...) into main/settings/
* breaks cycles. In particular, setting system moved from Project to Def
2012-11-17 20:19:24 -05:00