This commit is contained in:
Chris Barrett 2014-12-30 10:35:11 +13:00
parent dce18ca0bd
commit 2808977c18

View file

@ -5,11 +5,12 @@
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc/generate-toc again -->
**Table of Contents**
- [Scala contribution layer for Spacemacs](#scala-contribution-layer-for-spacemacs)
- [Description](#description)
- [Install](#install)
- [Ensime](#ensime)
- [Key bindings](#key-bindings)
- [Description](#description)
- [Install](#install)
- [Ensime](#ensime)
- [Installation](#installation)
- [Usage](#usage)
- [Scalastyle](#scalastyle)
<!-- markdown-toc end -->
@ -18,12 +19,9 @@
This layer adds support for the Scala language using the excellent [ENSIME][]
client/server.
**This layer is not adapted for Spacemacs, it needs you, Scala experts, to
improve it and make it consistent with the Spacemacs experience.**
## Install
To use this contribution add it to your `~/.spacemacs`
Add this contribution to your `~/.spacemacs`.
```elisp
(setq-default dotspacemacs-configuration-layers '(scala)
@ -31,20 +29,58 @@ To use this contribution add it to your `~/.spacemacs`
)
```
### Ensime
## Ensime
There is nothing to install for ENSIME to work but you have to create a
`.ensime` file at the root of your project.
[ENSIME][] provides IDE-like features, such as refactoring, incremental
compilation and project-wide type-checking.
This project can be created manually using the [template here][dotensime],
but it is recommended to use the [ENSIME sbt-plugin][sbt-plugin] if your
project uses [SBT][].
ENSIME requires a configuration file at the root of each Scala project. It
provides an SBT plugin to generate these files.
## Key bindings
### Installation
**TODO**
1. Configure the ENSIME sbt plugin by adding the following to
`~/.sbt/0.13/plugins/plugins.sbt`:
```scala
resolvers += Resolver.sonatypeRepo("snapshots")
addSbtPlugin("org.ensime" % "ensime-sbt" % "0.1.5-SNAPSHOT")
```
2. Run `sbt` at the shell to download and install the plugin.
See the [ENSIME quickstart][] guide for further information.
### Usage
1. Create a `.ensime` file at the root of your Scala project using `sbt
gen-ensime` at the shell.
2. Run `M-x ensime` within Emacs to start an ENSIME session.
Each Scala project uses a dedicated ENSIME session, so you only need to run `M-x
ensime` once per project. Any Scala files you create or visit within the project
will automatically use ENSIME for the remainder of your editing session.
## Scalastyle
[Scalastyle][] provides style-checking and linting. The Emacs functionality is
provided by Flycheck.
To use scalastyle,
1. Download the [scalastyle jar][] and put it somewhere sensible
2. Customise the `flycheck-scalastyle-jar` variable and set it to the path of
the jar.
See the [flycheck documentation][] for up-to-date configuration instructions.
[ENSIME quickstart]: https://github.com/ensime/ensime-server/wiki/Quick-Start-Guide#installing-the-ensime-sbt-plugin
[ENSIME]: https://github.com/ensime
[Scalastyle]: http://flycheck.readthedocs.org/en/latest/guide/languages.html#el.flycheck-checker.scala-scalastyle
[dotensime]: https://github.com/ensime/ensime-server/wiki/Example-Configuration-File
[sbt]: http://www.scala-sbt.org/
[flycheck documentation]: http://flycheck.readthedocs.org/en/latest/guide/languages.html#el.flycheck-checker.scala-scalastyle
[sbt-plugin]: https://github.com/ensime/ensime-server/wiki/Quick-Start-Guide#installing-the-ensime-sbt-plugin
[sbt]: http://www.scala-sbt.org/
[scalastyle jar]: https://oss.sonatype.org/content/repositories/releases/org/scalastyle/scalastyle_2.11/0.6.0/