A Scalafix rule is a small program that can analyze your source code, report messages and sometimes automatically fix problems. The following rules come pre-installed with Scalafix. The “Semantic” column indicates whether the rule requires compilation before running. Non-semantic rules can run directly from the command line interface without compilation.

DisableLinter that reports an error on a configurable set of symbols.
DisableSyntaxLinter that reports an error on a configurable set of keywords and syntax.
DottyKeywordsRewrite that replaces enum and inline with `enum` and `inline` for compatibility with Dotty
DottyVarArgPatternRewrite to convert :_* vararg pattern syntax to @ syntax supported in Dotty.
DottyVolatileLazyValRewrite all lazy vals to Dotty's volatile ones for safe publishing (default semantics of pre-Dotty Scala)
ExplicitResultTypesRewrite that inserts explicit type annotations for def/val/var
LeakingImplicitClassValAdd private access modifier to val parameters of implicit value classes in order to prevent public access
MissingFinalRule that checks for or adds final modifier in the corresponding places
NoAutoTuplingRewrite that inserts explicit tuples for adapted argument lists for compatibility with -Yno-adapted-args
NoInferLinter for types that the Scala compiler cannot infer.
NoValInForComprehensionRewrite that removes redundant val inside for-comprehensions
ProcedureSyntaxRewrite that inserts explicit : Unit = for soon-to-be-deprecated procedure syntax def foo { ... }
RemoveUnusedImportsRewrite that removes unused imports reported by the compiler under -Xwarn-unused-import.
RemoveUnusedTermsRewrite that removes unused locals/privates by -Ywarn-unused:locals/privates
RemoveXmlLiteralsRewrite that converts xml literals into interpolators for use with densh/scala-xml-quote
Sbt1Rewrite to convert sbt 0.12 deprecated operators like <++= into sbt 0.13 :=/.value syntax

To learn how to extend Scalafix with custom rules, see Rule Authors.

Planned rules

See here.