Skip to content

Commit d54f51b

Browse files
authored
Merge pull request #481 from bjaglin/scala3-local-rules
test/document how local rules can be written against Scala 3
2 parents 3de37a3 + fd0f76f commit d54f51b

File tree

13 files changed

+79
-47
lines changed

13 files changed

+79
-47
lines changed

src/sbt-test/sbt-scalafix/local-rules/build.sbt

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/sbt-test/sbt-scalafix/local-rules/test

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import _root_.scalafix.sbt.{BuildInfo => Versions}
2+
3+
inThisBuild(
4+
List(
5+
scalafixDependencies := List(
6+
// CollectHead
7+
"com.github.xuwei-k" %% "scalafix-rules" % "0.6.5"
8+
),
9+
resolvers += Resolver.sonatypeRepo("snapshots"),
10+
// out of sync with scalafix.sbt.BuildInfo.scala213 on purpose
11+
scalaVersion := "2.13.11",
12+
Compat.allowUnsafeScalaLibUpgrade := true
13+
)
14+
)
15+
16+
// LocalSyntacticRule
17+
val rules = project
18+
.disablePlugins(ScalafixPlugin)
19+
.settings(
20+
libraryDependencies +=
21+
("ch.epfl.scala" %% "scalafix-core" % Versions.scalafixVersion)
22+
.cross(CrossVersion.for3Use2_13),
23+
libraryDependencies += "joda-time" % "joda-time" % "2.10.6"
24+
)
25+
26+
val service = project
27+
.dependsOn(rules % ScalafixConfig)
28+
.settings(
29+
// SyntacticRule
30+
libraryDependencies +=
31+
("ch.epfl.scala" %% "example-scalafix-rule" % "3.0.0")
32+
.cross(CrossVersion.for3Use2_13) % ScalafixConfig
33+
)
34+
35+
// SameProjectSyntacticRule
36+
val sameproject = project
37+
.settings(
38+
libraryDependencies +=
39+
("ch.epfl.scala" %% "scalafix-core" % Versions.scalafixVersion)
40+
.cross(CrossVersion.for3Use2_13) % ScalafixConfig,
41+
// Since sbt 1.10.x (https://github.com/sbt/sbt/pull/7480), scala3-library is not automatically added
42+
// to non-standard configurations, but is needed by the Scala 3 compiler, so it must be added explicitly
43+
// if no dependency brings it implicitly, which is the case here because the only dependency is for3Use2_13.
44+
libraryDependencies ++= {
45+
if (scalaBinaryVersion.value == "3")
46+
Seq(
47+
"org.scala-lang" %% "scala3-library" % scalaVersion.value % ScalafixConfig
48+
)
49+
else
50+
Nil
51+
}
52+
)

src/sbt-test/sbt-scalafix/local-rules/project/Compat.scala renamed to src/sbt-test/skip-sbt1.4/local-rules/project/Compat.scala

File renamed without changes.

src/sbt-test/sbt-scalafix/local-rules/project/plugins.sbt renamed to src/sbt-test/skip-sbt1.4/local-rules/project/plugins.sbt

File renamed without changes.

src/sbt-test/sbt-scalafix/local-rules/rules/src/main/resources/META-INF/services/scalafix.v1.Rule renamed to src/sbt-test/skip-sbt1.4/local-rules/rules/src/main/resources/META-INF/services/scalafix.v1.Rule

File renamed without changes.

src/sbt-test/sbt-scalafix/local-rules/rules/src/test/scala/local/Boom.scala renamed to src/sbt-test/skip-sbt1.4/local-rules/rules/src/main/scala/local/Syntactic.scala

File renamed without changes.

src/sbt-test/sbt-scalafix/local-rules/rules/src/main/scala/local/NoOp.scala renamed to src/sbt-test/skip-sbt1.4/local-rules/rules/src/test/scala/local/NoOp.scala

File renamed without changes.

src/sbt-test/sbt-scalafix/local-rules/sameproject/src/main/scala/Main.scala renamed to src/sbt-test/skip-sbt1.4/local-rules/sameproject/src/main/scala/Main.scala

File renamed without changes.

src/sbt-test/sbt-scalafix/local-rules/sameproject/src/scalafix/resources/META-INF/services/scalafix.v1.Rule renamed to src/sbt-test/skip-sbt1.4/local-rules/sameproject/src/scalafix/resources/META-INF/services/scalafix.v1.Rule

File renamed without changes.

0 commit comments

Comments
 (0)