Пример #1
0
  /**
   * default formatting. Everything is aligned, one indent level above the nearest enclosing opening
   * element, if any
   */
  protected void formatDefault(TypedPosition region, StringBuffer buffer)
      throws BadLocationException {
    LineWalker lineWalker = new LineWalker(fDocument, region, fPositions);
    boolean alreadyKept = false;
    while (lineWalker.hasMoreLines()) {
      LineInfo info = lineWalker.nextLine();

      if (info.isEmpty()) {
        info.setWriteOffset(writeEmpty(buffer));
        fLineInfos.add(info);
      } else {
        String line = info.trimData();

        if (line.length() > 0) {
          int off = writeLine(info.data, fInitialIndent, fIndentLevel, buffer);

          info.setWriteOffset(off);
          fLineInfos.add(info);
        } else if (fPreferences.preserveBlankLines() && !alreadyKept) {
          int off = writeLine("", fInitialIndent, fIndentLevel, buffer);
          info.setWriteOffset(off);
          fLineInfos.add(info);
          //                    buffer.append(fLineDelimiter);
          alreadyKept = true;
        } else {
          int off = writeEmpty(buffer);
          info.setWriteOffset(off);
          fLineInfos.add(info);
        }
      }
    }
  }