Skip to content

Commit 1a391dc

Browse files
committed
Extract SemanticdbSymbols to shared module
Move the proto-free symbol-encoding helper to a new semanticdb-shared module so semanticdb-java and semanticdb-kotlinc can both depend on it. The Kotlin Symbol value class and SemanticdbSymbolDescriptor data class now delegate descriptor encoding to the shared Java implementation instead of duplicating it.
1 parent 4e9abcc commit 1a391dc

14 files changed

Lines changed: 68 additions & 37 deletions

File tree

build.sbt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,17 @@ commands +=
7272
"scalafixAll --check" :: "publishLocal" :: s
7373
}
7474

75+
// Shared, proto-free utility code consumed by both the Java and Kotlin
76+
// SemanticDB compiler plugins. Kept intentionally small so each plugin's
77+
// fat-jar pays only for the encoding helpers, not for the full Java proto
78+
// schema.
79+
lazy val semanticdbShared = project
80+
.in(file("semanticdb-shared"))
81+
.settings(
82+
moduleName := "semanticdb-shared",
83+
javaOnlySettings
84+
)
85+
7586
lazy val semanticdb = project
7687
.in(file("semanticdb-java"))
7788
.settings(
@@ -80,6 +91,7 @@ lazy val semanticdb = project
8091
(Compile / PB.targets) :=
8192
Seq(PB.gens.java(V.protobuf) -> (Compile / sourceManaged).value)
8293
)
94+
.dependsOn(semanticdbShared)
8395

8496
lazy val agent = project
8597
.in(file("semanticdb-agent"))
@@ -431,6 +443,7 @@ lazy val semanticdbKotlinc = project
431443
Attributed.blank(dir)
432444
}
433445
)
446+
.dependsOn(semanticdbShared)
434447

435448
// `semanticdbKotlincMinimized` mirrors the (still-present) Gradle build at
436449
// semanticdb-kotlinc/minimized/build.gradle.kts. It compiles a small set of

scip-java/src/main/scala/com/sourcegraph/scip_java/ScipSymbol.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.sourcegraph.scip_java
22

33
import com.sourcegraph.scip_semanticdb.SymbolDescriptor
4-
import com.sourcegraph.semanticdb_javac.SemanticdbSymbols
4+
import com.sourcegraph.semanticdb.SemanticdbSymbols
55

66
sealed abstract class ScipSymbol {}
77
final case class LocalScipSymbol(identifier: String) extends ScipSymbol

scip-semanticdb/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ java_library(
2121
":all_java_proto",
2222
"//semanticdb-java",
2323
"//semanticdb-java/src/main/protobuf:semanticdb_java_proto",
24+
"//semanticdb-shared",
2425
"@maven//:com_google_code_findbugs_jsr305",
2526
"@maven//:com_google_protobuf_protobuf_java",
2627
"@maven//:com_google_protobuf_protobuf_java_util",

scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdb.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.sourcegraph.semanticdb_javac.Semanticdb;
55
import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolOccurrence;
66
import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolOccurrence.Role;
7-
import com.sourcegraph.semanticdb_javac.SemanticdbSymbols;
7+
import com.sourcegraph.semanticdb.SemanticdbSymbols;
88
import org.scip_code.scip.Document;
99
import org.scip_code.scip.Index;
1010
import org.scip_code.scip.Metadata;

scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SignatureFormatter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolInformation.Property;
44
import com.sourcegraph.semanticdb_javac.Semanticdb.*;
55

6-
import com.sourcegraph.semanticdb_javac.SemanticdbSymbols;
6+
import com.sourcegraph.semanticdb.SemanticdbSymbols;
77

88
import java.util.*;
99
import java.util.concurrent.atomic.AtomicInteger;

scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolDescriptor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.sourcegraph.scip_semanticdb;
22

3-
import com.sourcegraph.semanticdb_javac.SemanticdbSymbols;
4-
import com.sourcegraph.semanticdb_javac.SemanticdbSymbols.Descriptor;
5-
import com.sourcegraph.semanticdb_javac.SemanticdbSymbols.Descriptor.Kind;
3+
import com.sourcegraph.semanticdb.SemanticdbSymbols;
4+
import com.sourcegraph.semanticdb.SemanticdbSymbols.Descriptor;
5+
import com.sourcegraph.semanticdb.SemanticdbSymbols.Descriptor.Kind;
66
import java.util.Optional;
77

88
public class SymbolDescriptor {

semanticdb-javac/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@ java_library(
3333
deps = [
3434
"//semanticdb-java",
3535
"//semanticdb-java/src/main/protobuf:semanticdb_java_proto",
36+
"//semanticdb-shared",
3637
],
3738
)

semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/GlobalSymbolsCache.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.sourcegraph.semanticdb_javac;
22

3+
import com.sourcegraph.semanticdb.SemanticdbSymbols;
4+
35
import javax.lang.model.element.Element;
46
import javax.lang.model.element.ExecutableElement;
57
import javax.lang.model.element.TypeElement;

semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/LocalSymbolsCache.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.sourcegraph.semanticdb_javac;
22

3+
import com.sourcegraph.semanticdb.SemanticdbSymbols;
4+
35
import javax.lang.model.element.Element;
46

57
import java.util.IdentityHashMap;

semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.sourcegraph.semanticdb_javac;
22

3+
import com.sourcegraph.semanticdb.SemanticdbSymbols;
4+
35
import com.sun.source.util.SourcePositions;
46
import com.sun.source.util.Trees;
57
import com.sun.source.util.TreePathScanner;

0 commit comments

Comments
 (0)