This project is an integration of Sublime Text Editor 2 with Ensime for Scala development
Python Shell
Switch branches/tags
Nothing to show
Pull request Compare This branch is 1 commit behind michaelpnash:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Default (Linux).sublime-keymap
Default (OSX).sublime-keymap
Default (Windows).sublime-keymap

Sublime Ensime

This project provides an integration with ensime and Sublime Text Editor 2. Sublime as an outstanding API so it should be possible to get all of ensime's features in Sublime Text Editor 2.

What's working?

The plugin is able to communicate with an ensime server and it should also be able to do reformat source. For some reason it seems that the java server doesn't get killed when you close the sublime application. There is NO support yet for the subprojects in an .ensime file.

  • Reformat source
  • Organize imports
  • highlighting syntax errors, shows message in status bar
  • Type inspection, needs a delay and cancellable queue currently accessible via context menu

How to install?

  1. Install the package itself:

    a. If you use Package Control, add repository and install package sublime-ensime.

    b. Otherwise, in your Sublime Text Packages dir (you can find it by Preferences -> Browse Packages),

    git clone sublime-ensime
  2. Install Ensime.

    a. In Unix (including Mac OS X), cd into the just created sublime-ensime directory and run


    b. In Windows, just download the version of Ensime listed in the ./install-ensime-server file from It will contain a directory with the same name as Ensime version. Extract it into the just created sublime-ensime directory and rename to server.

  3. (Re)start Sublime Text editor.

Once you're in a project that has a .ensime file in the root folder, you can start a server from the file context menu. Or run:

window.run_command("ensime_server", { "start": True})

What's planned?

To implement all the features of ensime.


I'd like to use the information we get back from ensime to provide semantic highlighting.