Skip to content

Commit 7fdf1f8

Browse files
committed
fix
1 parent 2d609c3 commit 7fdf1f8

File tree

3 files changed

+33
-13
lines changed

3 files changed

+33
-13
lines changed

build.sbt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,9 @@ lazy val `sbt-dependency-analyzer` = (project in file("."))
6565
offline = true, // forbid the verifier from reaching the internet
6666
failureLevels = Set(FailureLevel.COMPATIBILITY_PROBLEMS, FailureLevel.COMPATIBILITY_WARNINGS)
6767
),
68-
autoRemoveOldCachedIntelliJSDK := true,
69-
Global / intellijAttachSources := true,
68+
ThisBuild / bundleScalaLibrary := true,
69+
ThisBuild / autoRemoveOldCachedIntelliJSDK := true,
70+
Global / intellijAttachSources := true,
7071
intellijPlugins ++= Seq("com.intellij.java", "com.intellij.java-i18n", "org.intellij.scala").map(_.toPlugin),
7172
Compile / unmanagedResourceDirectories += baseDirectory.value / "src" / "main" / "resources",
7273
Test / unmanagedResourceDirectories += baseDirectory.value / "src" / "test" / "resources",
@@ -87,7 +88,10 @@ lazy val `sbt-dependency-analyzer` = (project in file("."))
8788
kotlinVersion := ktVersion,
8889
Compile / unmanagedSourceDirectories += baseDirectory.value / "src" / "main" / "kotlin",
8990
packageLibraryMappings ++= Seq(
90-
"org.jetbrains.kotlin" % ".*" % ".*" -> None,
91-
"org.jetbrains" % ".*" % ".*" -> None
91+
"org.jetbrains.kotlin" % ".*" % ".*" -> None,
92+
"org.jetbrains" % ".*" % ".*" -> None,
93+
"org.scala-lang" % "scala-.*" % ".*" -> None,
94+
"org.scala-lang" % "scala3-.*" % ".*" -> None,
95+
"org.scala-lang.modules" % "scala-.*" % ".*" -> None
9296
)
9397
)

src/main/scala/bitlap/sbt/analyzer/action/SbtDependencyAnalyzerActionUtil.scala

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,21 @@ final case class ModifiableDependency(
2121

2222
object SbtDependencyAnalyzerActionUtil {
2323

24+
private def isScalaArtifact(coordinates: UnifiedCoordinates): Boolean = {
25+
coordinates.getArtifactId.endsWith("_3") || coordinates.getArtifactId.endsWith("_2.13") ||
26+
coordinates.getArtifactId.endsWith("_2.12") || coordinates.getArtifactId.endsWith("_2.11")
27+
}
28+
29+
private def getArtifactWithoutScalaVersion(coordinates: UnifiedCoordinates) = {
30+
val artifactName = coordinates.getArtifactId
31+
.stripSuffix("_3")
32+
.stripSuffix("_2.13")
33+
.stripSuffix("_2.12")
34+
.stripSuffix("_2.11")
35+
36+
artifactName
37+
}
38+
2439
def getModifiableDependency(e: AnActionEvent): ModifiableDependency =
2540
val project = e.getProject
2641
val dependency = e.getData(DependencyAnalyzerView.Companion.getDEPENDENCY)
@@ -34,22 +49,18 @@ object SbtDependencyAnalyzerActionUtil {
3449

3550
val candidateDeclaredDependencies = DependencyUtils
3651
.getDeclaredDependency(module)
37-
val declared = candidateDeclaredDependencies.find(dc =>
52+
val declaredDependency = candidateDeclaredDependencies.find(dc =>
3853
// hard code, see SbtDependencyUtils#getLibraryDependenciesOrPlacesFromPsi
3954
val artifactName =
40-
if (
41-
coordinates.getArtifactId.endsWith("_3") || coordinates.getArtifactId.endsWith("_2.13") ||
42-
coordinates.getArtifactId.endsWith("_2.12") || coordinates.getArtifactId.endsWith("_2.11")
43-
) coordinates.getArtifactId.split('_').head
44-
else coordinates.getArtifactId
55+
if (isScalaArtifact(coordinates)) getArtifactWithoutScalaVersion(coordinates) else coordinates.getArtifactId
4556
(dc.getCoordinates.getArtifactId == coordinates.getArtifactId ||
46-
dc.getCoordinates.getArtifactId == artifactName ||
57+
getArtifactWithoutScalaVersion(dc.getCoordinates) == artifactName ||
4758
// maybe a fixed artifact
4859
dc.getCoordinates.getVersion == artifactName) &&
4960
dc.getCoordinates.getGroupId == coordinates.getGroupId
5061
)
5162

52-
ModifiableDependency(module, coordinates, declared, candidateDeclaredDependencies, parentDependency)
63+
ModifiableDependency(module, coordinates, declaredDependency, candidateDeclaredDependencies, parentDependency)
5364
end getModifiableDependency
5465

5566
}

src/main/scala/bitlap/sbt/analyzer/util/packagesearch/SbtDependencyModifier.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ object SbtDependencyModifier extends ExternalDependencyModificator {
148148
if (targetedLibDepTuple == null) {
149149
throw AnalyzerCommandNotFoundException("Target dependency not found")
150150
}
151+
// dangerous, hard-coded
151152
targetedLibDepTuple._3.getParent match {
152153
case _: ScArgumentExprList =>
153154
inWriteCommandAction {
@@ -157,13 +158,17 @@ object SbtDependencyModifier extends ExternalDependencyModificator {
157158
inWriteCommandAction {
158159
infix.delete()
159160
}
161+
case infix: ScInfixExpr if infix.getChildren.length == 3 && infix.getChildren()(2).isInstanceOf[ScUnitExpr] =>
162+
inWriteCommandAction {
163+
infix.delete()
164+
}
160165
case infix: ScParenthesisedExpr if infix.parents.toList.exists(_.isInstanceOf[ScReferenceExpression]) =>
161166
val lastRef = infix.parents.toList.filter(_.isInstanceOf[ScReferenceExpression]).lastOption
162167
inWriteCommandAction {
163168
lastRef.foreach(_.parent.foreach(_.delete()))
164169
}
165170
case _ =>
166-
throw AnalyzerCommandNotFoundException("Target parent not found")
171+
throw AnalyzerCommandNotFoundException("This syntax is not supported at this time")
167172
}
168173
}
169174

0 commit comments

Comments
 (0)