commit 04c2af68751f50eaed7904c47754829b53eb1c1c from: ale date: Fri Jul 24 09:47:32 2026 UTC Remove default parameter in GotVcsLogProvider to fix reflective instantiation issue commit - c20235ebf75e6aca44381b87eab66aa3efee8961 commit + 04c2af68751f50eaed7904c47754829b53eb1c1c blob - 45474126d5663012a92c7f3d2ca1c74445f182c6 blob + 421cc67980c2ee122d14bf5e4d19ec764e5d36d1 --- src/main/kotlin/dev/nezzontli/gotvcs/log/GotVcsLogProvider.kt +++ src/main/kotlin/dev/nezzontli/gotvcs/log/GotVcsLogProvider.kt @@ -27,11 +27,18 @@ import java.util.concurrent.ConcurrentHashMap * index/cache beyond GotCommandLineWrapper's in-memory commit cache) -- same * philosophy as the rest of this plugin: no daemon, no persisted state. */ -class GotVcsLogProvider( - private val project: Project, - private val commandLine: GotCommandLineWrapper = GotCommandLineWrapper(), -) : VcsLogProvider { +class GotVcsLogProvider(private val project: Project) : VcsLogProvider { + // A default-valued second constructor parameter here (as this used to + // have, before needing `project` for the refresh notifier) makes Kotlin + // emit a single constructor with a synthetic $default bridge, which the + // platform's reflective EP instantiation doesn't recognize as "a + // (Project) constructor" -- it silently failed to construct this class + // at all, which is why the whole Log tab disappeared. Every other + // extension point in this plugin avoids this by taking only `project` + // and constructing its own GotCommandLineWrapper as a plain field. + private val commandLine = GotCommandLineWrapper() + override val supportedVcs: VcsKey = GotVcs.getKey() override val referenceManager: VcsLogRefManager = GotVcsLogRefManager()