diff options
author | Olivier Mélois <baccata64@gmail.com> | 2019-04-25 13:59:29 +0200 |
---|---|---|
committer | Tobias Roeser <le.petit.fou@web.de> | 2019-04-25 13:59:29 +0200 |
commit | b2d480b2b9de6091a8e7c135dac5dd2c0f653c6b (patch) | |
tree | 0d0f3ecd0f796894b4542b9eaeae38cfce7a3217 /docs | |
parent | 0d16d730cbdf31b2f88ca602fac73bf1bf622a90 (diff) | |
download | mill-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.md | 59 |
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. + + |