private void addIndicatorNewMessagesAsBuildOutput(@Nls String msg) {
        Stack<@NlsContexts.ProgressText String> textStack = getTextStack();
        if (!textStack.isEmpty() && msg.equals(textStack.peek())) {
          textStack.pop();
          return;
        }
        if (isEmptyOrSpaces(msg) || msg.equals(lastMessage)) return;
        lastMessage = msg;

        int start = msg.indexOf("[");
        if (start >= 1) {
          int end = msg.indexOf(']', start + 1);
          if (end != -1) {
            String buildTargetNameCandidate = msg.substring(start + 1, end);
            Set<String> targets = mySeenMessages.computeIfAbsent(buildTargetNameCandidate, unused -> new HashSet<>());
            boolean isSeenMessage = !targets.add(msg.substring(0, start));
            if (isSeenMessage) return;
          }
        }
        myConsolePrinter.print(msg, MessageEvent.Kind.SIMPLE);
      }
private void addIndicatorNewMessagesAsBuildOutput(@Nls String msg)