public static StartMarkAction start(Editor editor, Project project, @NlsContexts.Command String commandName) throws AlreadyStartedException {
    final StartMarkAction existingMark = editor.getUserData(START_MARK_ACTION_KEY);
    if (existingMark != null) {
      throw new AlreadyStartedException(existingMark.myCommandName,
                                        existingMark.myDocument,
                                        existingMark.getAffectedDocuments());
    }
    final StartMarkAction markAction = new StartMarkAction(editor, commandName);
    UndoManager.getInstance(project).undoableActionPerformed(markAction);
    editor.putUserData(START_MARK_ACTION_KEY, markAction);
    return markAction;
  }
public static StartMarkAction start(Editor editor, Project project, @NlsContexts.Command String commandName)