@Override
    public AnAction @NotNull [] getChildren(@Nullable AnActionEvent e) {
      if (e == null) return AnAction.EMPTY_ARRAY;

      if (myForcedDiffTool != null) {
        return AnAction.EMPTY_ARRAY;
      }

      DiffTool activeTool = e.getData(ACTIVE_DIFF_TOOL);
      DiffContext diffContext = e.getData(DiffDataKeys.DIFF_CONTEXT);
      DiffRequest diffRequest = e.getData(DiffDataKeys.DIFF_REQUEST);
      if (activeTool == null || diffContext == null || diffRequest == null) {
        return AnAction.EMPTY_ARRAY;
      }

      List<AnAction> actions = new ArrayList<>();
      for (DiffTool tool : filterFittedTools(getAllKnownTools(), diffContext, diffRequest)) {
        if (isSameToolOrSubstitutor(tool, activeTool, diffContext, diffRequest)) continue;
        actions.add(new DiffToolToggleAction(tool));
      }
      return actions.toArray(AnAction.EMPTY_ARRAY);
    }
@Override
    public AnAction @NotNull [] getChildren(@Nullable AnActionEvent e)