Sublime Text 3 plugin to invoke scalafmt, a code formatter for Scala.
-
scalafmt (1.5.1): https://github.com/scalameta/scalafmt/tree/v1.5.1
-
coursier (1.1.0): https://github.com/coursier/coursier
-
nailgun client (0.9.1): https://github.com/facebook/nailgun/tree/nailgun-all-0.9.1
Create scalafmt_ng binary somewhere in your PATH, for instance in /usr/local/bin:
coursier bootstrap --standalone com.geirsson:scalafmt-cli_2.12:1.5.1 \
-r bintray:scalameta/maven -o /usr/local/bin/scalafmt_ng \
-f --main com.martiansoftware.nailgun.NGServer
Make sure you use the same version of nailgun in the client ng and the one packaged in com.geirsson:scalafmt-cli.
Place a file .scalafmt.conf in your project folder. The file is searched from the folder containing the scala file to format down to the project root. When .scalafmt.conf is found in the directory tree, automatic formatting will be enabled on save.
The formatting can also be invoked from the sublime commands when the active file is recognized as a scala source file.
See https://scalameta.org/scalafmt/docs/configuration.html
The nailgun daemon is started the first time a formatting is requested. This can take a bit of time depending the machine and workload.
Once the daemon is running, next formatting task should execute faster.
The daemon is automatically shutdown when the plugin is reloaded, uninstalled or the editor is closed.