@RequiresEdt
  void setOrRefreshErrorStripeRenderer(@NotNull EditorMarkupModel editorMarkupModel, @NotNull PsiFile file) {
    if (!editorMarkupModel.isErrorStripeVisible()) {
      return;
    }
    ErrorStripeRenderer renderer = editorMarkupModel.getErrorStripeRenderer();
    if (renderer instanceof TrafficLightRenderer tlr) {
      EditorMarkupModelImpl markupModelImpl = (EditorMarkupModelImpl) editorMarkupModel;
      tlr.refresh(markupModelImpl);
      markupModelImpl.repaintTrafficLightIcon();
      if (tlr.isValid()) {
        return;
      }
    }

    ModalityState modality = ModalityState.defaultModalityState();
    TrafficLightRenderer.setTrafficLightOnEditor(myProject, editorMarkupModel, modality, () -> {
      Editor editor = editorMarkupModel.getEditor();
      if (ReadAction.compute(() -> editor.isDisposed() || !file.isValid() ||
                                   !DaemonCodeAnalyzer.getInstance(myProject).isHighlightingAvailable(file))) {
        return null;
      }
      return createRenderer(editor, file);
    });
  }
@RequiresEdt
  void setOrRefreshErrorStripeRenderer(@NotNull EditorMarkupModel editorMarkupModel, @NotNull PsiFile file)