void () { if (myEditor == null || myEditor.isDisposed()) return; int offset = myEditor.getCaretModel().getOffset(); ReadAction .nonBlocking(() -> computeCrumbs(offset)) .withDocumentsCommitted(myProject) .expireWith(this) .coalesceBy(this) .finishOnUiThread(ModalityState.any(), crumbs -> applyCrumbs(crumbs)) .submit(NonUrgentExecutor.getInstance()); }