/** * 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); } } } }