GitHub recently released version 1.0 of their Atom editor. This post gives a rough overview of its Scala support.
Basic features such as Scala syntax highlighting are provided by the language-scala plugin.
Some work on worksheets as found in e.g. Eclipse has been done in the scala-worksheet-plus plugin, but this is still missing major features and not very useful at this time.
Navigation and completion
Atom supports basic ‘Go to Declaration’ (ctrl-alt-down) and ‘Search symbol’ (cmd-shift-r) support by way of the default ctags-based symbols-view.
While there are multiple sbt plugins for generating ctags, the easiest seems to be to have Ensime download the sources (more on that below) and invoke ctags manually: put this configuration in your home directory and run the ‘ctags’ command from your project root.
This is useful for searching for symbols, but limited for finding declarations: for example, when checking the declaration for Success, ctags doesn’t know whether this is scala.util.Success, akka.actor.Status.Success, spray.http.StatusCodes.Success or some other 3rd-party or local symbol with that name.
This is where the Ensime plugin comes in.
Read more →