summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorOlivier Mélois <baccata64@gmail.com>2019-04-25 13:59:29 +0200
committerTobias Roeser <le.petit.fou@web.de>2019-04-25 13:59:29 +0200
commitb2d480b2b9de6091a8e7c135dac5dd2c0f653c6b (patch)
tree0d0f3ecd0f796894b4542b9eaeae38cfce7a3217 /docs
parent0d16d730cbdf31b2f88ca602fac73bf1bf622a90 (diff)
downloadmill-b2d480b2b9de6091a8e7c135dac5dd2c0f653c6b.tar.gz
mill-b2d480b2b9de6091a8e7c135dac5dd2c0f653c6b.tar.bz2
mill-b2d480b2b9de6091a8e7c135dac5dd2c0f653c6b.zip
Beginning of Bloop integration (#595)
* Sync with latest versions, started bloop connection * BloopModule back to the bare minimum * Added first Bloop related unit-tests * More tests * Fixed global module usage. * Added resolution in bloop config * More tests, using correct repository list * revert dev change * Changed moduleSourceMap implementation * Using path-dependant trait for the module This facilitates testing by preventing the trait from referencing a global module. * Added semanticDB to bloopConfig * Added documentation * Install returns pathRefs instead of paths * bumped semanticDB * Better use of mill's cache, avoid duplication of work * addressing comments
Diffstat (limited to 'docs')
-rw-r--r--docs/pages/9 - Contrib Modules.md59
1 files changed, 59 insertions, 0 deletions
diff --git a/docs/pages/9 - Contrib Modules.md b/docs/pages/9 - Contrib Modules.md
index 1b9b55fa..0d65512b 100644
--- a/docs/pages/9 - Contrib Modules.md
+++ b/docs/pages/9 - Contrib Modules.md
@@ -912,3 +912,62 @@ Publishing to custom local Maven repository
[40/40] project.publishM2Local
Publishing to /tmp/m2repo
```
+
+### Bloop
+
+This plugin generates [bloop](https://scalacenter.github.io/bloop/) configuration
+from your build file, which lets you use the bloop CLI for compiling, and makes
+your scala code editable in [Metals](https://scalameta.org/metals/)
+
+
+#### Quickstart:
+```scala
+// build.sc (or any other .sc file it depends on, including predef)
+// Don't forget to replace VERSION
+import $ivy.`com.lihaoyi::mill-contrib-bloop:VERSION`
+```
+
+Then in your terminal :
+
+```
+> mill mill.contrib.Bloop/install
+```
+
+#### Mix-in
+
+You can mix-in the `Bloop.Module` trait with any JavaModule to quickly access
+the deserialised configuration for that particular module:
+
+```scala
+// build.sc
+import mill._
+import mill.scalalib._
+import mill.contrib.Bloop
+
+object MyModule extends ScalaModule with Bloop.Module {
+ def myTask = T { bloop.config() }
+}
+```
+
+#### Note regarding metals:
+
+Generating the bloop config should be enough for metals to pick it up and for
+features to start working in vscode (or the bunch of other editors metals supports).
+However, note that this applies only to your project sources. Your mill/ammonite related
+`.sc` files are not yet supported by metals.
+
+The generated bloop config references the semanticDB compiler plugin required by
+metals to function. If need be, the version of semanticDB can be overriden by
+extending `mill.contrib.bloop.BloopImpl` in your own space.
+
+#### Note regarding current mill support in bloop
+
+The mill-bloop integration currently present in the [bloop codebase](https://github.com/scalacenter/bloop/blob/master/integrations/mill-bloop/src/main/scala/bloop/integrations/mill/MillBloop.scala#L10)
+will be deprecated in favour of this implementation.
+
+#### Caveats:
+
+At this time, only Java/ScalaModule are processed correctly. ScalaJS/ScalaNative integration will
+be added in a near future.
+
+