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