private void updateCrumbsAsync() {
    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());
  }
private void updateCrumbsAsync()