public void appendANSI()

in src/org/jetbrains/plugins/ipnb/editor/panels/code/IpnbErrorPanel.java [62:115]


    public void appendANSI(String string) {
      int position = 0;
      int index;
      int mIndex;
      String substring;
      boolean continueSearch;
      String addString = remaining + string;
      remaining = "";

      if (addString.length() > 0) {
        if (handleCarriageReturn(addString)) {
          return;
        }
        index = addString.indexOf("\u001B");
        if (index == -1) {
          append(currentColor, addString);
          return;
        }

        if (index > 0) {
          substring = addString.substring(0, index);
          append(currentColor, substring);
          position = index;
        }
        continueSearch = true;
        while (continueSearch) {
          mIndex = addString.indexOf("m", position);
          if (mIndex < 0) {
            remaining = addString.substring(position);
            continueSearch = false;
            continue;
          }
          else {
            substring = addString.substring(position, mIndex + 1);
            //noinspection AssignmentToStaticFieldFromInstanceMethod
            currentColor = getANSIColor(substring);
          }
          position = mIndex + 1;

          index = addString.indexOf("\u001B", position);

          if (index == -1) {
            substring = addString.substring(position);
            append(currentColor, substring);
            continueSearch = false;
            continue;
          }

          substring = addString.substring(position, index);
          position = index;
          append(currentColor, substring);
        }
      }
    }