@Override
  public void doExecute(@NotNull final Editor editor, Caret caret, final DataContext dataContext) {
    assert caret == null : "Invocation of 'copy' operation for specific caret is not supported";
    Project project = editor.getProject();
    PsiFile file = project == null ? null : PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
    if (file == null) {
      if (myOriginalAction != null) {
        myOriginalAction.execute(editor, null, dataContext);
      }
      return;
    }

    CopyAction.copyToClipboard(editor, dataContext, this);
  }
@Override
  public void doExecute(@NotNull final Editor editor, Caret caret, final DataContext dataContext)