code: public static void renderWrappedText(StringBuilder sb, int width, int nextLineTabStop, String text) {
          int pos = OptionUtils.findWrapPos(text, width, 0);
          if (pos == -1) {
              sb.append(OptionUtils.rtrim(text));
              return;
          }
          sb.append(OptionUtils.rtrim(text.substring(0, pos))).append(NEW_LINE);
          if (nextLineTabStop >= width) {
              // stops infinite loop happening
              nextLineTabStop = 1;
          }
          // all following lines must be padded with nextLineTabStop space characters
          String padding = OptionUtils.createPadding(nextLineTabStop);
          String line = text;
          while (true) {
              line = padding + line.substring(pos).trim();
              pos = OptionUtils.findWrapPos(line, width, 0);
              if (pos == -1) {
                  sb.append(line);
                  return;
              }
              if (line.length() > width && pos == nextLineTabStop - 1) {
                  pos = width;
              }
              sb.append(OptionUtils.rtrim(line.substring(0, pos))).append(NEW_LINE);
          }
      }
docs: Render the specified text and return the rendered Options
  in a StringBuilder.
  
  @param sb the StringBuilder to place the rendered text into
  @param width the number of characters to display per line
  @param nextLineTabStop the position on the next line for the first tab
  @param text the text to be rendered