in src/rider/main/kotlin/com/jetbrains/rider/plugins/dotnetdisassembler/AsmViewerHost.kt [112:130]
override fun extensionCreated(lifetime: Lifetime, session: ClientProjectSession, model: AsmViewerModel) {
logger.info("Creating protocol extension for project: ${session.project.name}")
val ui = AsmViewerHostUi.getInstance(session.project)
getInstance(session.project)
model.show.advise(lifetime) {
logger.debug("Show command received, activating tool window")
ui.activateToolwindow()
}
val state = AsmViewerState.getInstance(session.project)
SolutionLifecycleHost.getInstance(session.project).isBackendLoaded.advise(lifetime) { loaded ->
if (loaded) {
logger.info("Backend loaded, connecting visibility")
state.setStatus(AsmViewerStatus.WaitingForInput)
ui.activated.flowInto(lifetime, model.isVisible)
}
}
}