This repo is now a fork of --->
Clone or download
Pull request Compare This branch is 1 commit ahead, 447 commits behind scalameta:master.
olafurpg Fix version number in website.
After replacing + with - in scalameta#1082 then the website started showing the
full version.
Latest commit 12ed28a Dec 1, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Generalise and structure the issue template (scalameta#766) Mar 3, 2017
bin Fix travis configuration Aug 11, 2017
project Bump plugins' versions Oct 21, 2017
readme Format Oct 20, 2017
scalafmt-benchmarks/src Disable vertical alignment. Jul 9, 2017
scalafmt-cli/src/main/scala/org/scalafmt/cli Use the encoding option when writing files, too. Sep 22, 2017
scalafmt-core Setting renaming Nov 24, 2017
scalafmt-intellij-plugin Bump IJ version Sep 24, 2017
scalafmt-intellij Upgrade intellij plugin to 1.2.0 pre-release. Aug 11, 2017
scalafmt-sbt-tests/src/sbt-test/scalafmt-sbt/helloworld Update to sbt 1.0.0 Aug 11, 2017
scalafmt-sbt/src/main/scala/org/scalafmt/sbt Update to sbt 1.0.0 Aug 11, 2017
scalafmt-tests/src Setting renaming Nov 24, 2017
.drone.yml Add more details to 0.7 changelog Apr 23, 2017
.drone.yml.sig Add more details to 0.7 changelog Apr 23, 2017
.gitignore [WIP] Port to Scala.js (scalameta#898) Apr 23, 2017
.jvmopts Re-enable appveyor (scalameta#986) Jun 18, 2017
.sbtopts Add Java 6 compatibility, fixes scalameta#112. Mar 9, 2016
.scalafmt.conf Disable vertical alignment. Jul 9, 2017
.travis.yml Fix travis configuration Aug 11, 2017 Clarify how to run scalafmt on the codebase Jul 9, 2017 Apache licence Mar 3, 2016
appveyor.yml Stick appveyor sbt version to 0.13 Aug 11, 2017
build.sbt Fix version number in website. Dec 1, 2017 Point to a correct project on scaladex Oct 28, 2017
sbt Put sbt back in root Mar 16, 2017
scalafmt Upgrade scalafmt binary Nov 9, 2017
scalafmt.ps1 fix for jvmopts and enabling no-stderr by default if possible (scalam… Jul 1, 2017


Build Status Build status Join the chat at Latest version

User documentation

Head over to the user docs for instructions on how to install scalafmt.

Quick help

  • sbt compile on a clean machine will fail to compile the scalafmt-intellij project.
    • if you plan to develop the intellij plugin, run downloadIdea first to fetch the IntelliJ SDK (~600mb).
    • or, run sbt test or sbt core/compile (specific project).
  • Run all unit tests: sbt test
  • Run only formatting tests: tests/testOnly *FormatTests.
  • Write new formatting test: read this doc.
  • Build docs: sbt readme/run will create the docs, which you can open with open readme/target/scalatex/index.html. Docs are built with Scalatex.
  • Hack on IntelliJ plugin: see this doc.
  • Hack on SBT plugin: run sbt scripted.
  • Run jmh benchmarks: ./bin/
  • Run formatter on millions of lines of code: tests/test:runMain org.scalafmt.ScalafmtProps (slow, and requires a lot of memory/cpu)
  • Debug performance: after each test run in FormatTests, a flamegraph report like this one is generated in target/index.html. I usually keep a browser tab open at localhost:3000/target/index.html along with this background process: browser-sync start --server --files "target/*.html". See Browsersync.
  • intellij/compile:compileIncremental failed? Run downloadIdea to download custom IntelliJ plugin. The download may take a while.


The current maintainers (people who can merge pull requests) are:

An up-to-date list of contributors is available here:

We strive to offer a welcoming environment to learn, teach and contribute.


JProfiler generously supports scalafmt with its full-featured Java Profiler.