```override val root = tabpane { ... // tab...
# tornadofx
a
Copy code
override val root = tabpane {
       ... // tabstuff 
        codeArea.multiPlainChanges()
                .successionEnds(Duration.ofMillis(500))
                .supplyTask(controller::computeHighlightingAsync)
                .awaitLatest(codeArea.multiPlainChanges())
                .filterMap { t ->
                    return if (t.isSuccess) {
                            codeArea.multiPlainChanges()
                                    .successionEnds(Duration.ofMillis(500))
                                    .supplyTask(controller::computeHighlightingAsync)
                                    .awaitLatest(codeArea.multiPlainChanges())
                                    .filterMap { Optional.of(t.get()) }
                        } else {
                            t.failure.printStackTrace()
                            codeArea.multiPlainChanges()
                                    .successionEnds(Duration.ofMillis(500))
                                    .supplyTask(controller::computeHighlightingAsync)
                                    .awaitLatest(codeArea.multiPlainChanges())
                                    .filterMap { Optional.empty<NotebookSpace>() }
                        }
                }.subscribe(controller::applyHighlighting)
    }