All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scalafix.rule.ScalafixRules.scala Maven / Gradle / Ivy

package scalafix
package rule

import scalafix.internal.rule._
import scalafix.internal.config._

object ScalafixRules {
  val syntax: List[Rule] = List(
    ProcedureSyntax,
    DottyVolatileLazyVal,
    RemoveXmlLiterals,
    NoValInForComprehension,
    NoFinalize,
    DottyKeywords,
    DottyVarArgPattern,
    DisableSyntax(),
    LeakingImplicitClassVal
  )
  def semantic(index: SemanticdbIndex): List[Rule] = List(
    NoInfer(index, NoInferConfig.default),
    ExplicitResultTypes(index),
    RemoveUnusedImports(index),
    RemoveUnusedTerms(index),
    NoAutoTupling(index),
    Disable(index, DisableConfig.default),
    MissingFinal(index)
  )
  def all(index: SemanticdbIndex): List[Rule] =
    syntax ++ semantic(index)
  def name2rule(index: SemanticdbIndex): Map[String, Rule] =
    all(index).flatMap(x => x.allNames.map(_ -> x)).toMap
  lazy val syntaxName2rule: Map[String, Rule] =
    syntax.flatMap(x => x.allNames.map(_ -> x)).toMap
  lazy val syntacticNames: List[String] = syntaxName2rule.keys.toList
  lazy val semanticNames: List[String] =
    semantic(SemanticdbIndex.empty).flatMap(_.allNames)
  def allNames: List[String] = syntacticNames ++ semanticNames

  lazy val syntacticNamesDescriptions: List[(String, String)] =
    syntaxName2rule.toList.map { case (name, rule) => (name, rule.description) }
  lazy val semanticNamesDescriptions: List[(String, String)] =
    semantic(SemanticdbIndex.empty).flatMap(rule =>
      rule.allNames.map(name => (name, rule.description)))
  def allNamesDescriptions: List[(String, String)] =
    syntacticNamesDescriptions ++ semanticNamesDescriptions

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy