| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
`build.sc` file in the root of the repo. Run using
```
sbt scalaplugin/compile "core/run build.sc ScalaPlugin.console"
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
recursion
```scala
@ import forge.util.JsonFormatters._
import forge.util.JsonFormatters._
@ forge.discover.Discovered[forge.scalaplugin.MetacircularTests.type]
@ forge.discover.Discovered[forge.scalaplugin.MetacircularTests.type].mains
res2: Seq[...] = List(
NestedEntry(List("ScalaPlugin"), ..., EntryPoint("run", ...)),
NestedEntry(List("Core"), ..., EntryPoint("run", ...)
)
@ forge.discover.Discovered[forge.scalaplugin.MetacircularTests.Core.type].mains
res3: Seq[...] = List(
NestedEntry(List(), ..., EntryPoint("run", ...))
)
```
|
|
|
|
|
|
| |
generate routes purely based on a type `T`, as part of the target discovery process. We defer the need for a concrete value of type `T` later until we need to evaluate the route.
Eventually this should go upstream into ammonite itself, but forking is easier for now
|
| |
|
| |
|
|
|
|
| |
definition, target discovery, and target evaluation
|
|
|
|
| |
cycles exist
|
|
|
|
| |
`ScalaDep(...)` and `ScalaDep.Point(...)`
|
|
|
|
|
|
| |
caches `def`s (and complains about `val`s) if it's defined top-level in a class/trait/object, for easy overriding.
If it's in some helper function somewhere, overriding doesn't matter, and it's up to the user to figure out how to construct a target graph without redundancy
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
the `T#apply` macro in the implementation of `scalaplugin.Subproject`
Also needed to implement inter-`Subproject` dependencies so the `MetacircularTests` can continue to support the new layout
|