• Stars
    star
    1,396
  • Rank 32,282 (Top 0.7 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created over 8 years ago
  • Updated 11 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Code formatter for Scala

scalafmt

Build Status Build status Join the discord chat Latest version

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

Quick help

  • sbt compile 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: See instructions on the site or locally at ./docs/contributing-website.md.
  • 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.

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.

More Repositories

1

metals

Scala language server with rich IDE features 🚀
Scala
2,017
star
2

scalameta

Library to read, analyze, transform and generate Scala programs
Scala
1,086
star
3

nvim-metals

A Metals plugin for Neovim
Lua
415
star
4

munit

Scala testing library with actionable errors and extensible APIs
Scala
406
star
5

mdoc

Typechecked markdown documentation for Scala
Scala
384
star
6

metals-vscode

Visual Studio Code extension for Metals
TypeScript
290
star
7

sbt-native-image

Plugin to generate native-image binaries with sbt
Scala
238
star
8

sbt-scalafmt

sbt plugin for Scalafmt
Scala
178
star
9

coc-metals

Deprecated in favor of scalameta/nvim-metals
TypeScript
166
star
10

metabrowse

Static site generator for code search with IDE features for Scala
Scala
104
star
11

tutorial

Scalameta tutorial
JavaScript
72
star
12

scalagen

WIP - Scalameta powered code generation
Scala
39
star
13

metaconfig

Small library for reading configuration into case classes
Scala
38
star
14

metals-feature-requests

Issue tracker for Metals feature requests
37
star
15

svm-subs

GraalVM native-image substitutions for Scala
Java
25
star
16

metals-eclipse

Eclipse Scala LSP plugin for Metals (WIP)
Scala
22
star
17

lsp4s

Scala implementation for JSON-RPC and Language Server Protocol
Scala
19
star
18

moped

Scala
19
star
19

metals-gitpod-sample

Scala
18
star
20

metals-sublime

Sublime Text package for Metals, a language server for Scala
Python
16
star
21

sbt-semantic-example

DEPRECATED - minimal template to play with the Scalameta semantic API
Scala
15
star
22

fastpass

Command-line tool to export a Pants build to Bloop
Scala
10
star
23

metals-languageclient

Language client library for Node.js Metals clients
TypeScript
9
star
24

mill-scala-seed.g8

A Giter8 template for a sample Scala project using the Mill build tool.
Shell
8
star
25

trees

Scalameta syntax tree definitions
Scala
7
star
26

semanticdb-sbt

Compiler plugin to build Semantic DB for sbt 0.13.
Scala
4
star
27

gradle-scala-seed.g8

A Giter8 template for a sample Scala project using the Gradle build tool!
Scala
3
star
28

lsp-example

Minimal example to get started with implementing a language server in Scala
TypeScript
2
star
29

scalameta.github.io

Scalameta website. No PRs here, this repo contains generated artifacts from https://github.com/scalameta/tutorial
HTML
2
star
30

maven-scala-seed.g8

A Giter8 template for a sample Scala project using the Maven build tool!
Scala
1
star