Skip to content

Commit

Permalink
add scalafixCallback
Browse files Browse the repository at this point in the history
  • Loading branch information
xuwei-k committed Jan 23, 2024
1 parent c2777cf commit a6f4113
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 4 deletions.
20 changes: 18 additions & 2 deletions src/main/scala/scalafix/internal/sbt/ScalafixInterface.scala
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,28 @@ object ScalafixInterface {
ScalafixInterface
] = new BlockingCache

private[scalafix] val defaultLogger: Logger = ConsoleLogger(System.out)

def fromToolClasspath(
scalafixBinaryScalaVersion: String,
scalafixDependencies: Seq[ModuleID],
scalafixCustomResolvers: Seq[Repository],
logger: Logger = defaultLogger
): () => ScalafixInterface =
fromToolClasspath(
scalafixBinaryScalaVersion = scalafixBinaryScalaVersion,
scalafixDependencies = scalafixDependencies,
scalafixCustomResolvers = scalafixCustomResolvers,
logger = logger,
callback = new ScalafixLogger(logger)
)

def fromToolClasspath(
scalafixBinaryScalaVersion: String,
scalafixDependencies: Seq[ModuleID],
scalafixCustomResolvers: Seq[Repository],
logger: Logger = ConsoleLogger(System.out)
logger: Logger,
callback: ScalafixMainCallback
): () => ScalafixInterface =
new LazyValue({ () =>
fromToolClasspathMemo.getOrElseUpdate(
Expand All @@ -145,7 +162,6 @@ object ScalafixInterface {
"Scala 2.11 is no longer supported. Please downgrade to the final version supporting " +
"it: sbt-scalafix 0.10.4."
)
val callback = new ScalafixLogger(logger)
val scalafixArguments = ScalafixAPI
.fetchAndClassloadInstance(
scalafixBinaryScalaVersion,
Expand Down
11 changes: 9 additions & 2 deletions src/main/scala/scalafix/sbt/ScalafixPlugin.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import sbt.Keys._
import sbt._
import sbt.internal.sbtscalafix.JLineAccess
import sbt.plugins.JvmPlugin
import scalafix.interfaces.ScalafixError
import scalafix.interfaces.{ScalafixError, ScalafixMainCallback}
import scalafix.internal.sbt.Arg.ToolClasspath
import scalafix.internal.sbt._

Expand Down Expand Up @@ -75,6 +75,10 @@ object ScalafixPlugin extends AutoPlugin {
"Optional location to .scalafix.conf file to specify which scalafix rules should run. " +
"Defaults to the build base directory if a .scalafix.conf file exists."
)

val scalafixCallback: SettingKey[ScalafixMainCallback] =
settingKey[ScalafixMainCallback]("")

val scalafixSemanticdb: ModuleID =
scalafixSemanticdb(BuildInfo.scalametaVersion)
def scalafixSemanticdb(scalametaVersion: String): ModuleID =
Expand Down Expand Up @@ -158,10 +162,13 @@ object ScalafixPlugin extends AutoPlugin {
SettingKey[Boolean]("bspEnabled") := false
)
),
scalafixCallback := new ScalafixLogger(ScalafixInterface.defaultLogger),
scalafixInterfaceProvider := ScalafixInterface.fromToolClasspath(
scalafixScalaBinaryVersion.value,
scalafixDependencies = scalafixDependencies.value,
scalafixCustomResolvers = scalafixResolvers.value
scalafixCustomResolvers = scalafixResolvers.value,
logger = ScalafixInterface.defaultLogger,
callback = scalafixCallback.value
),
update := {
object SemanticdbScalac {
Expand Down

0 comments on commit a6f4113

Please sign in to comment.