From e6b677278bc9d8489102ae8e4e9c5a03a53ccf0d Mon Sep 17 00:00:00 2001 From: Tomasz Godzik Date: Wed, 13 Dec 2023 16:39:04 +0100 Subject: [PATCH] improvement: Support script files Previously, scripts would not be supported. Now, they should be correctly picked up by Scalafix. I also tested it in Metals with the organzie imports rule. --- .../main/scala/scalafix/internal/v1/Args.scala | 2 +- .../internal/config/ScalafixConfig.scala | 3 +++ .../scalafix/tests/cli/CliSyntacticSuite.scala | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/scalafix-cli/src/main/scala/scalafix/internal/v1/Args.scala b/scalafix-cli/src/main/scala/scalafix/internal/v1/Args.scala index c53e65316..bc7a919b9 100644 --- a/scalafix-cli/src/main/scala/scalafix/internal/v1/Args.scala +++ b/scalafix-cli/src/main/scala/scalafix/internal/v1/Args.scala @@ -444,7 +444,7 @@ case class Args( object Args extends TPrintImplicits { val baseMatcher: PathMatcher = - FileSystems.getDefault.getPathMatcher("glob:**.{scala,sbt}") + FileSystems.getDefault.getPathMatcher("glob:**.{scala,sbt,sc}") val runtimeScalaVersion: ScalaVersion = ScalaVersion .from(scala.util.Properties.versionNumberString) // can be empty .toOption diff --git a/scalafix-core/src/main/scala/scalafix/internal/config/ScalafixConfig.scala b/scalafix-core/src/main/scala/scalafix/internal/config/ScalafixConfig.scala index c925b8fd7..791ee17dd 100644 --- a/scalafix-core/src/main/scala/scalafix/internal/config/ScalafixConfig.scala +++ b/scalafix-core/src/main/scala/scalafix/internal/config/ScalafixConfig.scala @@ -22,6 +22,9 @@ case class ScalafixConfig( def dialectForFile(path: String): Dialect = if (path.endsWith(".sbt")) DefaultSbtDialect + else if (path.endsWith(".sc")) + dialect + .withAllowToplevelTerms(true) else dialect val reader: ConfDecoder[ScalafixConfig] = diff --git a/scalafix-tests/integration/src/test/scala-2/scalafix/tests/cli/CliSyntacticSuite.scala b/scalafix-tests/integration/src/test/scala-2/scalafix/tests/cli/CliSyntacticSuite.scala index 30eb5e273..44fbab98a 100644 --- a/scalafix-tests/integration/src/test/scala-2/scalafix/tests/cli/CliSyntacticSuite.scala +++ b/scalafix-tests/integration/src/test/scala-2/scalafix/tests/cli/CliSyntacticSuite.scala @@ -310,6 +310,24 @@ class CliSyntacticSuite extends BaseCliSuite { expectedExit = ExitStatus.Ok ) + check( + name = "fix script files", + originalLayout = s"""|/a.sc + |def foo { println(1) } + |lazy val bar = project + |""".stripMargin, + args = Array( + "-r", + "ProcedureSyntax", + "a.sc" + ), + expectedLayout = s"""|/a.sc + |def foo: Unit = { println(1) } + |lazy val bar = project + |""".stripMargin, + expectedExit = ExitStatus.Ok + ) + check( name = "deprecated name emits warning", originalLayout = s"""|/a.scala