void setCalculating(boolean calculating) {
    if (calculating) {
      myProcessIcon.resume();
    }
    else {
      myProcessIcon.suspend();
    }
    EdtScheduledExecutorService.getInstance().schedule(() -> {
      if (myLookup.isLookupDisposed()) {
        return;
      }
      if (calculating && myHintButton.isVisible()) {
        myHintButton.setVisible(false);
      }
      myProcessIcon.setVisible(calculating);

      ApplicationManager.getApplication().invokeLater(() -> {
        if (!calculating && !myLookup.isLookupDisposed()) {
          updateHint();
        }
      }, myModalityState);
    }, myModalityState, 100, TimeUnit.MILLISECONDS);
  }
void setCalculating(boolean calculating)