From 3aa2f9f898ce8c783c7750bc2ee221402edaefa4 Mon Sep 17 00:00:00 2001 From: jupblb Date: Wed, 3 Jun 2026 21:36:24 +0200 Subject: [PATCH] Share LocalSymbolsCache and options POJO across plugins --- .../semanticdb_javac/GlobalSymbolsCache.java | 5 ++-- .../semanticdb_javac/LocalSymbolsCache.java | 25 ---------------- .../SemanticdbJavacOptions.java | 19 ++++-------- .../SemanticdbSignatures.java | 6 ++-- .../SemanticdbTaskListener.java | 9 +++++- .../semanticdb_javac/SemanticdbTrees.java | 5 ++-- .../SemanticdbTypeVisitor.java | 6 ++-- .../semanticdb_javac/SemanticdbVisitor.java | 5 ++-- .../AnalyzerFirExtensionRegistrar.kt | 6 ++-- .../AnalyzerParamsProvider.kt | 9 ++++-- .../semanticdb_kotlinc/AnalyzerRegistrar.kt | 14 +++++---- .../semanticdb_kotlinc/SymbolsCache.kt | 24 ++++----------- .../semanticdb_kotlinc/test/Utils.kt | 3 +- .../semanticdb/LocalSymbolsCache.java | 30 +++++++++++++++++++ .../semanticdb}/NoRelativePathMode.java | 2 +- .../semanticdb/SemanticdbOptions.java | 12 ++++++++ .../sourcegraph/semanticdb}/UriScheme.java | 2 +- 17 files changed, 101 insertions(+), 81 deletions(-) delete mode 100644 semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/LocalSymbolsCache.java create mode 100644 semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/LocalSymbolsCache.java rename {semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac => semanticdb-shared/src/main/java/com/sourcegraph/semanticdb}/NoRelativePathMode.java (97%) create mode 100644 semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/SemanticdbOptions.java rename {semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac => semanticdb-shared/src/main/java/com/sourcegraph/semanticdb}/UriScheme.java (52%) diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/GlobalSymbolsCache.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/GlobalSymbolsCache.java index f819b3ddc..ef26b7fd2 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/GlobalSymbolsCache.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/GlobalSymbolsCache.java @@ -1,5 +1,6 @@ package com.sourcegraph.semanticdb_javac; +import com.sourcegraph.semanticdb.LocalSymbolsCache; import com.sourcegraph.semanticdb.SemanticdbSymbols; import javax.lang.model.element.Element; @@ -25,7 +26,7 @@ public GlobalSymbolsCache(SemanticdbJavacOptions options) { this.options = options; } - public String semanticdbSymbol(Element sym, LocalSymbolsCache locals) { + public String semanticdbSymbol(Element sym, LocalSymbolsCache locals) { String result = globals.get(sym); if (result != null) return result; String localResult = locals.get(sym); @@ -37,7 +38,7 @@ public String semanticdbSymbol(Element sym, LocalSymbolsCache locals) { return result; } - private String uncachedSemanticdbSymbol(Element sym, LocalSymbolsCache locals) { + private String uncachedSemanticdbSymbol(Element sym, LocalSymbolsCache locals) { if (sym == null) return SemanticdbSymbols.ROOT_PACKAGE; if (sym instanceof PackageElement) { diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/LocalSymbolsCache.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/LocalSymbolsCache.java deleted file mode 100644 index f28dd4189..000000000 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/LocalSymbolsCache.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.sourcegraph.semanticdb_javac; - -import com.sourcegraph.semanticdb.SemanticdbSymbols; - -import javax.lang.model.element.Element; - -import java.util.IdentityHashMap; - -/** Cache of SemanticDB symbols that are local to a single file. */ -public final class LocalSymbolsCache { - - private final IdentityHashMap symbols = new IdentityHashMap<>(); - private int localsCounter = -1; - - public String get(Element sym) { - return symbols.get(sym); - } - - public String put(Element sym) { - localsCounter++; - String result = SemanticdbSymbols.local(localsCounter); - symbols.put(sym, result); - return result; - } -} diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbJavacOptions.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbJavacOptions.java index 75387d4ff..e16ad980b 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbJavacOptions.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbJavacOptions.java @@ -1,5 +1,9 @@ package com.sourcegraph.semanticdb_javac; +import com.sourcegraph.semanticdb.NoRelativePathMode; +import com.sourcegraph.semanticdb.SemanticdbOptions; +import com.sourcegraph.semanticdb.UriScheme; + import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.lang.reflect.Method; @@ -16,24 +20,13 @@ import static javax.tools.StandardLocation.SOURCE_OUTPUT; /** Settings that can be configured alongside the -Xplugin compiler option. */ -public class SemanticdbJavacOptions { - - /** The directory to place META-INF and its .semanticdb files */ - public Path targetroot; +public class SemanticdbJavacOptions extends SemanticdbOptions { - public Path sourceroot; - public boolean includeText = false; public boolean verboseEnabled = false; - public final ArrayList errors; + public final ArrayList errors = new ArrayList<>(); public boolean alreadyReportedErrors = false; - public UriScheme uriScheme = UriScheme.DEFAULT; - public NoRelativePathMode noRelativePath = NoRelativePathMode.INDEX_ANYWAY; public Path generatedTargetRoot; - public SemanticdbJavacOptions() { - errors = new ArrayList<>(); - } - public static String missingRequiredDirectoryOption(String option) { return String.format( "missing argument '-%s'. To fix this problem, update the Java compiler option " diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbSignatures.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbSignatures.java index 884d2b743..b49cac78f 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbSignatures.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbSignatures.java @@ -1,5 +1,6 @@ package com.sourcegraph.semanticdb_javac; +import com.sourcegraph.semanticdb.LocalSymbolsCache; import com.sourcegraph.semanticdb.Semanticdb; import com.sourcegraph.semanticdb.Semanticdb.*; @@ -20,10 +21,11 @@ public final class SemanticdbSignatures { private final GlobalSymbolsCache cache; - private final LocalSymbolsCache locals; + private final LocalSymbolsCache locals; private final Types types; - public SemanticdbSignatures(GlobalSymbolsCache cache, LocalSymbolsCache locals, Types types) { + public SemanticdbSignatures( + GlobalSymbolsCache cache, LocalSymbolsCache locals, Types types) { this.cache = cache; this.locals = locals; this.types = types; diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTaskListener.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTaskListener.java index a1625376d..c134dffad 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTaskListener.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTaskListener.java @@ -1,9 +1,13 @@ package com.sourcegraph.semanticdb_javac; +import com.sourcegraph.semanticdb.LocalSymbolsCache; +import com.sourcegraph.semanticdb.NoRelativePathMode; import com.sourcegraph.semanticdb.Semanticdb; import com.sourcegraph.semanticdb.SemanticdbDocumentBuilder; import com.sourcegraph.semanticdb.SemanticdbPaths; +import com.sourcegraph.semanticdb.SemanticdbSymbols; import com.sourcegraph.semanticdb.SemanticdbWriter; +import com.sourcegraph.semanticdb.UriScheme; import com.sun.source.util.JavacTask; import com.sun.source.util.TaskEvent; @@ -12,6 +16,7 @@ import javax.lang.model.util.Elements; import javax.lang.model.util.Types; +import javax.lang.model.element.Element; import javax.tools.JavaFileObject; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -21,6 +26,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.HashMap; +import java.util.IdentityHashMap; import java.util.Map; import java.util.Optional; @@ -152,7 +158,8 @@ private void writeSemanticdb(TaskEvent event, Path output, Semanticdb.TextDocume private static final class PerSourceState { final SemanticdbDocumentBuilder documentBuilder = new SemanticdbDocumentBuilder(); - final LocalSymbolsCache locals = new LocalSymbolsCache(); + final LocalSymbolsCache locals = + new LocalSymbolsCache<>(new IdentityHashMap<>(), SemanticdbSymbols::local); } public static Path absolutePathFromUri(SemanticdbJavacOptions options, JavaFileObject file) { diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTrees.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTrees.java index 63ec3eb09..e143c4596 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTrees.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTrees.java @@ -1,5 +1,6 @@ package com.sourcegraph.semanticdb_javac; +import com.sourcegraph.semanticdb.LocalSymbolsCache; import com.sourcegraph.semanticdb.Semanticdb; import com.sun.source.tree.*; @@ -22,7 +23,7 @@ public class SemanticdbTrees { public SemanticdbTrees( GlobalSymbolsCache globals, - LocalSymbolsCache locals, + LocalSymbolsCache locals, String semanticdbUri, Types types, Trees trees, @@ -37,7 +38,7 @@ public SemanticdbTrees( } private final GlobalSymbolsCache globals; - private final LocalSymbolsCache locals; + private final LocalSymbolsCache locals; private final String semanticdbUri; private final Types types; private final Trees trees; diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTypeVisitor.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTypeVisitor.java index c7c3e64d4..ba458ab9d 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTypeVisitor.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTypeVisitor.java @@ -1,5 +1,6 @@ package com.sourcegraph.semanticdb_javac; +import com.sourcegraph.semanticdb.LocalSymbolsCache; import com.sourcegraph.semanticdb.Semanticdb; import javax.lang.model.element.Element; @@ -25,10 +26,11 @@ class SemanticdbTypeVisitor extends SimpleTypeVisitor8 { static final String ARRAY_SYMBOL = "scala/Array#"; private final GlobalSymbolsCache cache; - private final LocalSymbolsCache locals; + private final LocalSymbolsCache locals; private final Types types; - SemanticdbTypeVisitor(GlobalSymbolsCache cache, LocalSymbolsCache locals, Types types) { + SemanticdbTypeVisitor( + GlobalSymbolsCache cache, LocalSymbolsCache locals, Types types) { this.cache = cache; this.locals = locals; this.types = types; diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java index f06c8ddec..093c3a733 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java @@ -1,5 +1,6 @@ package com.sourcegraph.semanticdb_javac; +import com.sourcegraph.semanticdb.LocalSymbolsCache; import com.sourcegraph.semanticdb.Semanticdb; import com.sourcegraph.semanticdb.SemanticdbDocumentBuilder; @@ -64,7 +65,7 @@ public class SemanticdbVisitor extends TreePathScanner { private final GlobalSymbolsCache globals; - private final LocalSymbolsCache locals; + private final LocalSymbolsCache locals; private final Types types; private final Trees trees; private final CompilationUnitTree compUnitTree; @@ -78,7 +79,7 @@ public class SemanticdbVisitor extends TreePathScanner { public SemanticdbVisitor( GlobalSymbolsCache globals, - LocalSymbolsCache locals, + LocalSymbolsCache locals, CompilationUnitTree compUnitTree, SemanticdbJavacOptions options, Types types, diff --git a/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerFirExtensionRegistrar.kt b/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerFirExtensionRegistrar.kt index ec6bdf8b0..b31a10aae 100644 --- a/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerFirExtensionRegistrar.kt +++ b/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerFirExtensionRegistrar.kt @@ -1,13 +1,13 @@ package com.sourcegraph.semanticdb_kotlinc -import java.nio.file.Path +import com.sourcegraph.semanticdb.SemanticdbOptions import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar class AnalyzerFirExtensionRegistrar( - private val sourceroot: Path, + private val options: SemanticdbOptions, ) : FirExtensionRegistrar() { override fun ExtensionRegistrarContext.configurePlugin() { - +AnalyzerParamsProvider.getFactory(sourceroot) + +AnalyzerParamsProvider.getFactory(options) +::AnalyzerCheckers } } diff --git a/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerParamsProvider.kt b/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerParamsProvider.kt index f87fde4bb..d0e539bdd 100644 --- a/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerParamsProvider.kt +++ b/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerParamsProvider.kt @@ -1,5 +1,6 @@ package com.sourcegraph.semanticdb_kotlinc +import com.sourcegraph.semanticdb.SemanticdbOptions import java.nio.file.Path import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.extensions.FirExtensionSessionComponent @@ -7,11 +8,13 @@ import org.jetbrains.kotlin.fir.extensions.FirExtensionSessionComponent.Factory open class AnalyzerParamsProvider( session: FirSession, - val sourceroot: Path, + val options: SemanticdbOptions, ) : FirExtensionSessionComponent(session) { + val sourceroot: Path get() = options.sourceroot + companion object { - fun getFactory(sourceroot: Path): Factory { - return Factory { AnalyzerParamsProvider(it, sourceroot) } + fun getFactory(options: SemanticdbOptions): Factory { + return Factory { AnalyzerParamsProvider(it, options) } } } } diff --git a/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerRegistrar.kt b/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerRegistrar.kt index 212e64069..9f33ca704 100644 --- a/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerRegistrar.kt +++ b/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerRegistrar.kt @@ -1,6 +1,7 @@ package com.sourcegraph.semanticdb_kotlinc import com.sourcegraph.semanticdb.Semanticdb +import com.sourcegraph.semanticdb.SemanticdbOptions import kotlin.contracts.ExperimentalContracts import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension @@ -14,13 +15,16 @@ import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarAdapter class AnalyzerRegistrar(private val callback: (Semanticdb.TextDocument) -> Unit = {}) : CompilerPluginRegistrar() { override fun ExtensionStorage.registerExtensions(configuration: CompilerConfiguration) { - FirExtensionRegistrarAdapter.registerExtension( - AnalyzerFirExtensionRegistrar(sourceroot = configuration[KEY_SOURCES]!!) - ) + val options = + SemanticdbOptions().apply { + sourceroot = configuration[KEY_SOURCES]!! + targetroot = configuration[KEY_TARGET]!! + } + FirExtensionRegistrarAdapter.registerExtension(AnalyzerFirExtensionRegistrar(options)) IrGenerationExtension.registerExtension( PostAnalysisExtension( - sourceRoot = configuration[KEY_SOURCES]!!, - targetRoot = configuration[KEY_TARGET]!!, + sourceRoot = options.sourceroot, + targetRoot = options.targetroot, callback = callback)) } diff --git a/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/SymbolsCache.kt b/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/SymbolsCache.kt index 0c02279fb..c3f5c6ed3 100644 --- a/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/SymbolsCache.kt +++ b/semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/SymbolsCache.kt @@ -1,5 +1,6 @@ package com.sourcegraph.semanticdb_kotlinc +import com.sourcegraph.semanticdb.LocalSymbolsCache as SharedLocalSymbolsCache import com.sourcegraph.semanticdb_kotlinc.SemanticdbSymbolDescriptor.Kind import java.lang.System.err import kotlin.contracts.ExperimentalContracts @@ -210,26 +211,13 @@ class GlobalSymbolsCache(testing: Boolean = false) : Iterable { override fun iterator(): Iterator = globals.values.iterator() } -class LocalSymbolsCache : Iterable { - private val symbols = HashMap, Symbol>() - private var localsCounter = 0 +typealias LocalSymbolsCache = SharedLocalSymbolsCache, Symbol> - val iterator: Iterable, Symbol>> - get() = symbols.asIterable() +@Suppress("FunctionName") +fun LocalSymbolsCache(): LocalSymbolsCache = + SharedLocalSymbolsCache(HashMap()) { Symbol.createLocal(it) } - val size: Int - get() = symbols.size - - operator fun get(symbol: FirBasedSymbol<*>): Symbol? = symbols[symbol] - - operator fun plus(symbol: FirBasedSymbol<*>): Symbol { - val result = Symbol.createLocal(localsCounter++) - symbols[symbol] = result - return result - } - - override fun iterator(): Iterator = symbols.values.iterator() -} +operator fun LocalSymbolsCache.plus(symbol: FirBasedSymbol<*>): Symbol = put(symbol) @ExperimentalContracts class SymbolsCache(private val globals: GlobalSymbolsCache, private val locals: LocalSymbolsCache) { diff --git a/semanticdb-kotlinc/src/test/kotlin/com/sourcegraph/semanticdb_kotlinc/test/Utils.kt b/semanticdb-kotlinc/src/test/kotlin/com/sourcegraph/semanticdb_kotlinc/test/Utils.kt index f41bfd7d7..84b9b82ce 100644 --- a/semanticdb-kotlinc/src/test/kotlin/com/sourcegraph/semanticdb_kotlinc/test/Utils.kt +++ b/semanticdb-kotlinc/src/test/kotlin/com/sourcegraph/semanticdb_kotlinc/test/Utils.kt @@ -1,6 +1,7 @@ package com.sourcegraph.semanticdb_kotlinc.test import com.sourcegraph.semanticdb.Semanticdb +import com.sourcegraph.semanticdb.SemanticdbOptions import com.sourcegraph.semanticdb_kotlinc.* import com.sourcegraph.semanticdb_kotlinc.AnalyzerCheckers.Companion.visitors @@ -162,7 +163,7 @@ class TestAnalyzerParamsProvider( var globals: GlobalSymbolsCache, var locals: LocalSymbolsCache, sourceroot: Path, -) : AnalyzerParamsProvider(session, sourceroot) { +) : AnalyzerParamsProvider(session, SemanticdbOptions().apply { this.sourceroot = sourceroot }) { companion object { fun getFactory( globals: GlobalSymbolsCache, diff --git a/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/LocalSymbolsCache.java b/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/LocalSymbolsCache.java new file mode 100644 index 000000000..ee958752d --- /dev/null +++ b/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/LocalSymbolsCache.java @@ -0,0 +1,30 @@ +package com.sourcegraph.semanticdb; + +import java.util.Map; +import java.util.function.IntFunction; + +/** Per-file cache mapping compiler symbols to monotonically numbered SemanticDB local symbols. */ +public final class LocalSymbolsCache { + private final Map symbols; + private final IntFunction factory; + private int counter = 0; + + public LocalSymbolsCache(Map backing, IntFunction factory) { + this.symbols = backing; + this.factory = factory; + } + + public V get(K key) { + return symbols.get(key); + } + + public V put(K key) { + V value = factory.apply(counter++); + symbols.put(key, value); + return value; + } + + public int getSize() { + return symbols.size(); + } +} diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/NoRelativePathMode.java b/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/NoRelativePathMode.java similarity index 97% rename from semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/NoRelativePathMode.java rename to semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/NoRelativePathMode.java index da4d8dfd1..4e6341be3 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/NoRelativePathMode.java +++ b/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/NoRelativePathMode.java @@ -1,4 +1,4 @@ -package com.sourcegraph.semanticdb_javac; +package com.sourcegraph.semanticdb; import java.util.Arrays; import java.util.stream.Collectors; diff --git a/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/SemanticdbOptions.java b/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/SemanticdbOptions.java new file mode 100644 index 000000000..a59aa978c --- /dev/null +++ b/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/SemanticdbOptions.java @@ -0,0 +1,12 @@ +package com.sourcegraph.semanticdb; + +import java.nio.file.Path; + +/** Settings shared between all SemanticDB-emitting compiler plugins. */ +public class SemanticdbOptions { + public Path sourceroot; + public Path targetroot; + public boolean includeText = false; + public NoRelativePathMode noRelativePath = NoRelativePathMode.INDEX_ANYWAY; + public UriScheme uriScheme = UriScheme.DEFAULT; +} diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/UriScheme.java b/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/UriScheme.java similarity index 52% rename from semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/UriScheme.java rename to semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/UriScheme.java index 5977760d1..992e227ff 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/UriScheme.java +++ b/semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/UriScheme.java @@ -1,4 +1,4 @@ -package com.sourcegraph.semanticdb_javac; +package com.sourcegraph.semanticdb; public enum UriScheme { DEFAULT,