Skip to content

jrhamilton/ensime-server

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ENSIME

Bountysource Build Status Stories in Ready

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 vars, vals and defs.
  • 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.

Contributions

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:

We are using some great technologies to automate our build and testing process:

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.

Quick Start

There are a two ways to install the ENSIME server:

  1. Install ensime-emacs and it will do it for you automatically.
  2. Build from source: fork this repo, clone locally and sbt publishLocal. You might need to clear out your ~/.ivy2/cache/org.ensime to ensure that your local builds are used by emacs.

The latter is also the recommended approach when developing ENSIME itself.

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:

Further Information

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.

About

ENhanced Scala Interaction Mode for text Editors (especially Emacs) Server Component

Resources

License

Stars

Watchers

Forks

Packages

No packages published