private void updateHint() {
    myLookup.checkValid();
    if (myHintButton.isVisible()) {
      myHintButton.setVisible(false);
    }

    LookupElement item = myLookup.getCurrentItem();
    if (item != null && item.isValid()) {
      ReadAction.nonBlocking(() -> myLookup.getActionsFor(item))
        .expireWhen(() -> !item.isValid() || myHintAlarm.isDisposed())
        .finishOnUiThread(myModalityState, actions -> {
          if (!actions.isEmpty()) {
            myHintAlarm.addRequest(() -> {
              if (ShowHideIntentionIconLookupAction.shouldShowLookupHint() &&
                  !((CompletionExtender)myList.getExpandableItemsHandler()).isShowing() &&
                  !myProcessIcon.isVisible()) {
                myHintButton.setVisible(true);
              }
            }, 500, myModalityState);
          }
        })
        .submit(AppExecutorUtil.getAppExecutorService());
    }
  }
private void updateHint()