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
* 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()