11import scala .util .Properties .isJavaAtLeast
22
33val scala2 = " 2.12.21"
4- val scala3 = if (isJavaAtLeast( " 17 " )) " 3.8.3" else " 3.7.4 "
4+ val scala3 = " 3.8.3"
55
66addCommandAlias(" test2" , s " ++ $scala2 plugin/scripted " )
77addCommandAlias(" test3" , s " ++ $scala3 plugin/scripted " )
@@ -55,6 +55,8 @@ val scalafmtVersion = "3.10.7"
5555onLoadMessage :=
5656 s " Welcome to sbt-scalafmt ${version.value} (scalafmt $scalafmtVersion) "
5757
58+ def isScala3 = Def .setting(scalaBinaryVersion.value == " 3" )
59+
5860lazy val plugin = project.enablePlugins(SbtPlugin , ScriptedPlugin ).settings(
5961 moduleName := " sbt-scalafmt" ,
6062 libraryDependencies ++= List (
@@ -69,19 +71,15 @@ lazy val plugin = project.enablePlugins(SbtPlugin, ScriptedPlugin).settings(
6971 // For compat reasons we have this in here to ensure we are testing against 1.2.8
7072 // We honestly probably don't need to, so if this ever causes issues, rip it out.
7173 pluginCrossBuild / sbtVersion := {
72- scalaBinaryVersion.value match {
73- case " 2.12" => if (isJavaAtLeast(" 17" )) " 1.9.0" else " 1.2.8"
74- case _ => if (isJavaAtLeast(" 17" )) " 2.0.0-RC10" else " 2.0.0-RC6"
75- }
74+ if (! isScala3.value) if (isJavaAtLeast(" 17" )) " 1.9.0" else " 1.2.8"
75+ else if (! isJavaAtLeast(" 17" )) sys.error(" Scala 3 requires JDK 17+" )
76+ else " 2.0.0-RC10"
7677 },
7778 conflictWarning := {
78- scalaBinaryVersion.value match {
79- case " 3" => ConflictWarning (" warn" , Level .Warn , false )
80- case _ => conflictWarning.value
81- }
79+ if (! isScala3.value) conflictWarning.value
80+ else ConflictWarning (" warn" , Level .Warn , failOnConflict = false )
8281 },
83- scalacOptions ++=
84- { if (scalaVersion.value.startsWith(" 3.8." )) Nil else Seq (" -release:8" ) },
82+ scalacOptions += { if (isScala3.value) " -release:17" else " -release:8" },
8583)
8684
8785// For some reason, it doesn't work if this is defined in globalSettings in PublishPlugin.
0 commit comments