From a5f0a744f0646b3c4360f45388939d6af56b80de Mon Sep 17 00:00:00 2001 From: Katarzyna Marek Date: Fri, 8 Mar 2024 17:39:36 +0100 Subject: [PATCH 1/3] bugfix: fix worksheets with `3.4.0` --- .../src/main/scala/scala/meta/internal/metals/Embedded.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/metals/src/main/scala/scala/meta/internal/metals/Embedded.scala b/metals/src/main/scala/scala/meta/internal/metals/Embedded.scala index 87a1fe8b5e1..b94b0a0cf83 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/Embedded.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/Embedded.scala @@ -150,7 +150,8 @@ final class Embedded( pathString.contains("mdoc") || pathString.contains("scalameta") || pathString.contains("metaconfig") || - pathString.contains("diffutils") + pathString.contains("diffutils") || + pathString.contains("scala-sbt") } val urls = runtimeClasspath.iterator.map(_.toUri().toURL()).toArray new URLClassLoader(urls, parent) From aa79ecc82d73a2cd21adddf26ca013a99eef9b83 Mon Sep 17 00:00:00 2001 From: Katarzyna Marek Date: Mon, 11 Mar 2024 14:26:31 +0100 Subject: [PATCH 2/3] add tests to scala 3 next worksheets --- .../feature/WorksheetCrossLspSuite.scala | 27 +++++++++++++++++++ .../scala/tests/BaseWorksheetLspSuite.scala | 8 +++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/tests/slow/src/test/scala/tests/feature/WorksheetCrossLspSuite.scala b/tests/slow/src/test/scala/tests/feature/WorksheetCrossLspSuite.scala index 6062bb91e01..822c8eaa0f7 100644 --- a/tests/slow/src/test/scala/tests/feature/WorksheetCrossLspSuite.scala +++ b/tests/slow/src/test/scala/tests/feature/WorksheetCrossLspSuite.scala @@ -1,8 +1,11 @@ package tests.feature +import scala.meta.internal.metals.MetalsEnrichments._ import scala.meta.internal.metals.{BuildInfo => V} import scala.meta.internal.semver.SemVer +import coursierapi.Complete + class Worksheet211LspSuite extends tests.BaseWorksheetLspSuite(V.scala211) class Worksheet3LspSuite extends tests.BaseWorksheetLspSuite(V.scala3) { @@ -25,4 +28,28 @@ class LatestWorksheet3LspSuite """given str: String = """"" } +class Worksheet3NextSuite + extends tests.BaseWorksheetLspSuite(Worksheet3NextSuite.scala3Next) { + override def versionSpecificCodeToValidate: String = + """given str: String = """"" +} + +object Worksheet3NextSuite { + def scala3Next: String = + Complete + .create() + .withInput("org.scala-lang:scala3-compiler_3:") + .complete() + .getCompletions() + .asScala + .toList + .reverse + .collectFirst { version => + SemVer.Version.fromString(version) match { + case SemVer.Version(_, _, _, None, None, None) => version + } + } + .get +} + class Worksheet212LspSuite extends tests.BaseWorksheetLspSuite(V.scala212) diff --git a/tests/unit/src/main/scala/tests/BaseWorksheetLspSuite.scala b/tests/unit/src/main/scala/tests/BaseWorksheetLspSuite.scala index f12425229f9..828f079aa33 100644 --- a/tests/unit/src/main/scala/tests/BaseWorksheetLspSuite.scala +++ b/tests/unit/src/main/scala/tests/BaseWorksheetLspSuite.scala @@ -10,6 +10,7 @@ import scala.meta.internal.metals.clients.language.MetalsSlowTaskResult import scala.meta.internal.metals.codeactions.CreateNewSymbol import scala.meta.internal.metals.codeactions.ImportMissingSymbol import scala.meta.internal.metals.{BuildInfo => V} +import scala.meta.internal.semver.SemVer abstract class BaseWorksheetLspSuite( scalaVersion: String @@ -855,7 +856,12 @@ abstract class BaseWorksheetLspSuite( _ = assertNoDiff(noCompletions, "") } yield () } - if (ScalaVersions.isScala3Version(scalaVersion)) + if ( + ScalaVersions.isScala3Version(scalaVersion) && !SemVer.isLaterVersion( + V.scala3, + scalaVersion, + ) + ) test("import-missing-symbol") { cleanWorkspace() val path = "a/src/main/scala/foo/Main.worksheet.sc" From e6ff4bc89f1d140bed04e59cb6200f7539d830a3 Mon Sep 17 00:00:00 2001 From: Katarzyna Marek Date: Tue, 12 Mar 2024 17:42:08 +0100 Subject: [PATCH 3/3] ignore worksheet import only for `3.4.0` --- .../unit/src/main/scala/tests/BaseWorksheetLspSuite.scala | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/tests/unit/src/main/scala/tests/BaseWorksheetLspSuite.scala b/tests/unit/src/main/scala/tests/BaseWorksheetLspSuite.scala index 828f079aa33..77e3b96e681 100644 --- a/tests/unit/src/main/scala/tests/BaseWorksheetLspSuite.scala +++ b/tests/unit/src/main/scala/tests/BaseWorksheetLspSuite.scala @@ -10,7 +10,6 @@ import scala.meta.internal.metals.clients.language.MetalsSlowTaskResult import scala.meta.internal.metals.codeactions.CreateNewSymbol import scala.meta.internal.metals.codeactions.ImportMissingSymbol import scala.meta.internal.metals.{BuildInfo => V} -import scala.meta.internal.semver.SemVer abstract class BaseWorksheetLspSuite( scalaVersion: String @@ -856,12 +855,7 @@ abstract class BaseWorksheetLspSuite( _ = assertNoDiff(noCompletions, "") } yield () } - if ( - ScalaVersions.isScala3Version(scalaVersion) && !SemVer.isLaterVersion( - V.scala3, - scalaVersion, - ) - ) + if (ScalaVersions.isScala3Version(scalaVersion) && scalaVersion != "3.4.0") test("import-missing-symbol") { cleanWorkspace() val path = "a/src/main/scala/foo/Main.worksheet.sc"