project/ScalafixSupport.scala (32 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one or more * license agreements; and to You under the Apache License, version 2.0: * * https://www.apache.org/licenses/LICENSE-2.0 * * This file is part of the Apache Pekko project, which was derived from Akka. */ /* * Copyright (C) 2018-2022 Lightbend Inc. <https://www.lightbend.com> */ import sbt._ import Keys._ trait ScalafixSupport { private val ignoreConfigFileName: String = ".scalafix.conf" private val descriptor: String = "scalafix" protected def ignore(configKey: ConfigKey): Def.Setting[Task[Seq[File]]] = { import scalafix.sbt.ScalafixPlugin.autoImport._ configKey / scalafix / unmanagedSources := { val ignoreSupport = new ProjectFileIgnoreSupport((ThisBuild / baseDirectory).value / ignoreConfigFileName, descriptor) (configKey / scalafix / unmanagedSources).value.filterNot(file => ignoreSupport.isIgnoredByFileOrPackages(file)) } } def addProjectCommandsIfAbsent(alias: String, value: String): Def.Setting[Seq[Command]] = { commands := { val currentCommands = commands.value.flatMap(_.nameOption).toSet val isPresent = currentCommands(alias) if (isPresent) commands.value else commands.value :+ BasicCommands.newAlias(name = alias, value = value) } } def updateProjectCommands(alias: String, value: String): Def.Setting[Seq[Command]] = { commands := { commands.value.filterNot(_.nameOption.contains("alias")) :+ BasicCommands.newAlias(name = alias, value = value) } } } object ScalafixSupport { def fixTestScope: Boolean = System.getProperty("pekko.scalafix.fixTestScope", "false").toBoolean }