@Override
  @RequiresEdt
  public void update(@NotNull CachedIntentions cachedIntentions, boolean actionsChanged) {
    Editor editor = cachedIntentions.getEditor();
    if (editor == null) {
      return;
    }
    if (!ApplicationManager.getApplication().isUnitTestMode() && !editor.getContentComponent().hasFocus()) {
      return;
    }
    if (!actionsChanged) {
      return;
    }

    Project project = cachedIntentions.getProject();

    LogicalPosition caretPos = editor.getCaretModel().getLogicalPosition();
    Rectangle visibleArea = editor.getScrollingModel().getVisibleArea();
    Point xy = editor.logicalPositionToXY(caretPos);

    hide();
    if (!HintManager.getInstance().hasShownHintsThatWillHideByOtherHint(false)
        && visibleArea.contains(xy)
        && !editor.isViewer()
        && editor.getSettings().isShowIntentionBulb()
        && editor.getCaretModel().getCaretCount() == 1
        && cachedIntentions.showBulb()
        // do not show bulb when the user explicitly ESCaped it away
        && !DaemonCodeAnalyzerEx.getInstanceEx(project).isEscapeJustPressed()) {
      myLastIntentionHint = IntentionHintComponent.showIntentionHint(project, cachedIntentions.getFile(), editor, false, cachedIntentions);
    }
  }
@Override
  @RequiresEdt
  public void update(@NotNull CachedIntentions cachedIntentions, boolean actionsChanged)