Tuesday, February 26, 2013

Scala IDE Revisited

In a prior post I had described how to set up an emacs based Scala development environment. I gave up on IntelliJ's editor after a while and have returned to emacs. Finger memories die hard. I now use emacs and IntelliJ based on the development phase I'm in. emacs wins when there's lots of editing and less exploration. Code completion, debugging, and navigation to sources for external libraries seems much simpler in IntelliJ.

I've made a few changes in how I use emacs for Scala.

  1. You don't need to use gradlew from the gradle-ensime plugin. I have been generating .ensime files with gradle 1.3.
  2. I have picked up minimap-mode, which gives an overview sidebar for navigating the buffer. The problem is that the minimap is tied to the buffer, so opening a different buffer doesn't update the minimap.
  3. I have installed some more themes. How did I ever do without solarized-dark?
Ensime is still a source of frustration, but has a ton of goodies.
  1. Autocomplete doesn't work reliably.
  2. It disconnects from the background server randomly.
This arrangement is so far working well for me. I hope eclipse catches up with available gradle support for scala. The emacs+ scheme extension for eclipse is awesome. That extension made emacs usable. But now that I've started using emacs again full time for development, I'm not sure if I'd go back.