Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,359 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scalafmt

Build Status Build status Join the chat at https://gitter.im/olafurpg/scalafmt Latest version

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-benchmarks.sh.
  • 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.

Tutorial

If you'd like to find out how to work on scalafmt, see this tutorial.

Team

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

An up-to-date list of contributors is available here: https://github.com/scalameta/scalafmt/graphs/contributors

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

Acknowledgements

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

Releases

Packages

Contributors

Languages