From f5e8afe7b8bae7ccfae38ac2152878d675c24ed2 Mon Sep 17 00:00:00 2001 From: Tomasz Godzik Date: Sat, 9 Mar 2024 22:23:56 +0100 Subject: [PATCH] chore: Adjust to changes in Scalafix --- .jvmopts | 2 +- .scalafix3.conf | 1 + .scalafmt.conf | 2 ++ .../internal/metals/ScalafixProvider.scala | 6 +++-- .../ScalaPresentationCompiler.scala | 6 ++--- .../pc/printer/RefinedDotcPrinter.scala | 6 ++--- .../meta/internal/pc/MetalsSealedDesc.scala | 4 +-- .../meta/internal/pc/MetalsSignatures.scala | 4 +-- .../codeactions/OrganizeImportsLspSuite.scala | 26 ++++++++++++------- 9 files changed, 34 insertions(+), 23 deletions(-) diff --git a/.jvmopts b/.jvmopts index 8e6c7e08685..e1ee079356e 100644 --- a/.jvmopts +++ b/.jvmopts @@ -1,6 +1,6 @@ -Xss4m -Xms1G --Xmx2G +-Xmx3G -XX:ReservedCodeCacheSize=1024m -XX:+TieredCompilation -Dfile.encoding=UTF-8 diff --git a/.scalafix3.conf b/.scalafix3.conf index 632539e2234..24d6b64c9bd 100644 --- a/.scalafix3.conf +++ b/.scalafix3.conf @@ -11,3 +11,4 @@ OrganizeImports.groups = [ "scala.meta." "*" ] +OrganizeImports.targetDialect = StandardLayout diff --git a/.scalafmt.conf b/.scalafmt.conf index d57dc0c2d4e..7158d4caf20 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -21,6 +21,8 @@ project.excludeFilters = [ "tests/unit/src/test/resources" "tests/input/src/main/scala" "mtags/src/main/scala-2.11/scala/tools/nsc/symtab/classfile/ClassfileParser.scala" + "mtags/src/main/scala-3-wrapper" + "mtags/src/main/scala-3." ] fileOverride { diff --git a/metals/src/main/scala/scala/meta/internal/metals/ScalafixProvider.scala b/metals/src/main/scala/scala/meta/internal/metals/ScalafixProvider.scala index 6be82a0b030..f090f0834d0 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/ScalafixProvider.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/ScalafixProvider.scala @@ -271,6 +271,7 @@ case class ScalafixProvider( | OrganizeImports |] |OrganizeImports.removeUnused = false + |OrganizeImports.targetDialect = Scala3 | |""".stripMargin ) @@ -376,6 +377,7 @@ case class ScalafixProvider( val classpath = (targetRoot.toList ++ scalaTarget.fullClasspath).asJava + val isSource3 = scalaTarget.scalac.getOptions().contains("-Xsource:3") for { api <- getScalafix(scalaBinaryVersion) urlClassLoaderWithExternalRule <- getRuleClassLoader( @@ -389,7 +391,7 @@ case class ScalafixProvider( if (scalaBinaryVersion == "2.13") list.add("-Wunused:imports") else list.add("-Ywarn-unused-import") - if (!isScala3 && scalaTarget.scalac.getOptions().contains("-Xsource:3")) + if (!isScala3 && isSource3) list.add("-Xsource:3") // We always compile with synthetics:on but scalafix will fail if we don't set it here @@ -402,7 +404,7 @@ case class ScalafixProvider( .withScalaVersion(scalaVersion) .withClasspath(classpath) .withToolClasspath(urlClassLoaderWithExternalRule) - .withConfig(scalafixConf(isScala3).asJava) + .withConfig(scalafixConf(isScala3 || isSource3).asJava) .withRules(rules.asJava) .withPaths(List(diskFilePath.toNIO).asJava) .withSourceroot(sourceroot.toNIO) diff --git a/mtags/src/main/scala-3-wrapper/ScalaPresentationCompiler.scala b/mtags/src/main/scala-3-wrapper/ScalaPresentationCompiler.scala index 2627aea449e..51eac872a8b 100644 --- a/mtags/src/main/scala-3-wrapper/ScalaPresentationCompiler.scala +++ b/mtags/src/main/scala-3-wrapper/ScalaPresentationCompiler.scala @@ -5,11 +5,11 @@ import java.nio.file.Path import java.util.concurrent.CompletableFuture import java.util.concurrent.ExecutorService import java.util.concurrent.ScheduledExecutorService -import java.{util as ju} +import java.{util => ju} import scala.concurrent.ExecutionContext import scala.concurrent.ExecutionContextExecutor -import scala.jdk.CollectionConverters.* +import scala.jdk.CollectionConverters._ import scala.meta.internal.metals.ReportLevel import scala.meta.pc.AutoImportsResult @@ -24,7 +24,7 @@ import scala.meta.pc.RangeParams import scala.meta.pc.SymbolSearch import scala.meta.pc.VirtualFileParams -import dotty.tools.pc.{ScalaPresentationCompiler as DottyPresentationCompiler} +import dotty.tools.pc.{ScalaPresentationCompiler => DottyPresentationCompiler} import org.eclipse.lsp4j.CompletionItem import org.eclipse.lsp4j.CompletionList import org.eclipse.lsp4j.Diagnostic diff --git a/mtags/src/main/scala-3.3.3/scala/meta/internal/pc/printer/RefinedDotcPrinter.scala b/mtags/src/main/scala-3.3.3/scala/meta/internal/pc/printer/RefinedDotcPrinter.scala index 866fd2987a0..3281c027579 100644 --- a/mtags/src/main/scala-3.3.3/scala/meta/internal/pc/printer/RefinedDotcPrinter.scala +++ b/mtags/src/main/scala-3.3.3/scala/meta/internal/pc/printer/RefinedDotcPrinter.scala @@ -1,9 +1,9 @@ package scala.meta.internal.pc.printer import dotty.tools.dotc.core.Contexts.Context -import dotty.tools.dotc.core.Flags.* -import dotty.tools.dotc.core.StdNames.* -import dotty.tools.dotc.core.Types.* +import dotty.tools.dotc.core.Flags._ +import dotty.tools.dotc.core.StdNames._ +import dotty.tools.dotc.core.Types._ import dotty.tools.dotc.printing.RefinedPrinter import dotty.tools.dotc.printing.Texts.Text diff --git a/mtags/src/main/scala-3.3/scala/meta/internal/pc/MetalsSealedDesc.scala b/mtags/src/main/scala-3.3/scala/meta/internal/pc/MetalsSealedDesc.scala index d416e0e859d..539a7865ad2 100644 --- a/mtags/src/main/scala-3.3/scala/meta/internal/pc/MetalsSealedDesc.scala +++ b/mtags/src/main/scala-3.3/scala/meta/internal/pc/MetalsSealedDesc.scala @@ -1,8 +1,8 @@ package scala.meta.internal.pc import dotty.tools.dotc.core.Contexts.Context -import dotty.tools.dotc.core.Flags.* -import dotty.tools.dotc.core.StdNames.* +import dotty.tools.dotc.core.Flags._ +import dotty.tools.dotc.core.StdNames._ import dotty.tools.dotc.core.Symbols.Symbol object MetalsSealedDesc: diff --git a/mtags/src/main/scala-3.3/scala/meta/internal/pc/MetalsSignatures.scala b/mtags/src/main/scala-3.3/scala/meta/internal/pc/MetalsSignatures.scala index cfbba4edbf4..78c86878db6 100644 --- a/mtags/src/main/scala-3.3/scala/meta/internal/pc/MetalsSignatures.scala +++ b/mtags/src/main/scala-3.3/scala/meta/internal/pc/MetalsSignatures.scala @@ -1,8 +1,8 @@ package scala.meta.internal.pc import dotty.tools.dotc.ast.tpd -import dotty.tools.dotc.core.Contexts.* -import dotty.tools.dotc.core.Denotations.* +import dotty.tools.dotc.core.Contexts._ +import dotty.tools.dotc.core.Denotations._ import dotty.tools.dotc.util.Signatures import dotty.tools.dotc.util.Signatures.Signature import dotty.tools.dotc.util.SourcePosition diff --git a/tests/unit/src/test/scala/tests/codeactions/OrganizeImportsLspSuite.scala b/tests/unit/src/test/scala/tests/codeactions/OrganizeImportsLspSuite.scala index f792e797e9f..d778eed7b77 100644 --- a/tests/unit/src/test/scala/tests/codeactions/OrganizeImportsLspSuite.scala +++ b/tests/unit/src/test/scala/tests/codeactions/OrganizeImportsLspSuite.scala @@ -212,23 +212,29 @@ class OrganizeImportsLspSuite |import scala.concurrent.duration.* |import scala.concurrent.{Future<<>> as ScalaFuture} |import scala.concurrent.ExecutionContext.global + |import scala.concurrent.ExecutionContext | |object A { + | implicit val ec: ExecutionContext = global | val d = Duration(10, MICROSECONDS) | val k = ScalaFuture.successful(1) + | ScalaFuture{ println("Hello!") } |} |""".stripMargin, s"${SourceOrganizeImports.title}", - """ - |package a - |import scala.concurrent.duration.* - |import scala.concurrent.{Future as ScalaFuture} - | - |object A { - | val d = Duration(10, MICROSECONDS) - | val k = ScalaFuture.successful(1) - |} - |""".stripMargin, + """|package a + |import scala.concurrent.ExecutionContext + |import scala.concurrent.ExecutionContext.global + |import scala.concurrent.Future as ScalaFuture + |import scala.concurrent.duration.* + | + |object A { + | implicit val ec: ExecutionContext = global + | val d = Duration(10, MICROSECONDS) + | val k = ScalaFuture.successful(1) + | ScalaFuture{ println("Hello!") } + |} + |""".stripMargin, kind = List(sourceKind), scalacOptions = scalacOption ++ List("-Xsource:3"), )