ENhanced Scala Interaction Mode for text Editors, especially GNU Emacs.
ENSIME brings IDE-like features to your favourite text editor, such as:
- Show the
type
of the symbol under the cursor. - Contextual completion for
var
s,val
s anddef
s. - Add an import for the symbol under the cursor.
- Fast classpath search (types and members).
- Jump to source code or documentation.
- Browse packages and type hierarchies.
- Find all references to a symbol.
- Refactorings (rename, organize imports, extract method).
- REPL with stack trace highlighting.
- Errors and warnings in your code: red squigglies.
- Debugging
and many more.
This project is actively community maintained, and we are very pleased to see contributions from new members.
If you use this software you are already well placed, as a Scala developer, to make it even better.
You can help out by:
- Pick up some low hanging fruit
- Fixing a bug
- Helping with the current Milestone
- Sending an unsolicited pull request with a new feature
- Having a conversation on the ENSIME Google Group
- Telling your co-workers!
We are using some great technologies to automate our build and testing process:
- Kanban project planning from waffle.io
- Continuous Integration from travis-ci.org
- Coverage reports from coveralls.io coveralls.io
- Binary distribution from sonatype.org
- Emacs distributions from MELPA
Along with unit testing, we have automated coverage checks and code formatting as part of our build process. Pull requests will only be accepted if the build and tests are successful, and coverage has not decreased. Pull requests must be reviewed and should not be merged by the person who created the request (except for trivial changes and hotfixes).
We have branches for older versions of scala, which are merged regularly.
See our Quick Start Guide to learn how to install and start ENSIME.
ENSIME is released on a continuous "rolling release" basis every time a pull request is merged. This dramatically speeds up the development cycle and you are advised to always update your ENSIME before reporting any issues.
If you are still experiencing a problem with the latest version of ENSIME, before reporting an issue please:
- check the tickets flagged as FAQ.
- check the most recently updated tickets (others are probably talking about it already with workarounds).
- do a few keyword searches using the github search (top of the page) to see if anybody has reported this already.
Most of the server documentation is in the code itself. A readable version of the SWANK protocol is documented in the ENSIME User Manual (although best to always check the code.)
Older releases are bundled with the emacs plugin.