Assert.isTrue(false);
JavaPlugin.log(exception);
	public void format() {		super.format();		Assert.isLegal(fIndentations.size() > 0);		Assert.isLegal(fPartitions.size() > 0);		Assert.isLegal(fPositions.size() > 0);		final int[] positions= (int[])fPositions.removeFirst();				final TypedPosition partition= (TypedPosition)fPartitions.removeFirst();		final Map preferences= getPreferences();		final IDocument document= getViewer().getDocument();		int indent= 0;		// not needed with the new API, but still in discussion..		//final String indentation= (String)fIndentations.removeFirst();		//if (indentation != null) {		//	indent= Strings.computeIndent(indentation, CodeFormatterUtil.getTabWidth());		//}		try {			//TODO rewrite using the edit API (CodeFormatterUtil.format2)						// reshape the partition to get around some peculiarities of the formatter			Position toFormat= new Position(partition.offset, partition.length);			stripLeadingWS(document, toFormat);			stripTrailingWS(document, toFormat, partition);						IDocument formattedDoc= new Document(CodeFormatterUtil.format(CodeFormatter.K_COMPILATION_UNIT, document.get(), toFormat.offset, toFormat.length, indent, positions, TextUtilities.getDefaultLineDelimiter(document), preferences));						int leadingEmptyLines= document.getNumberOfLines(partition.offset, toFormat.offset - partition.offset) - 1; // getNumberOfLines is one-based			int trailingEmptyLines= document.getNumberOfLines(toFormat.offset + toFormat.length, partition.offset + partition.length - (toFormat.offset + toFormat.length)) - 1;			int from= getLeadingWSOffset(leadingEmptyLines, formattedDoc);			int to= getTrailingWSOffset(trailingEmptyLines, formattedDoc);			String formatted= formattedDoc.get(from, to - from);			final String raw= document.get(partition.getOffset(), partition.getLength());			if (formatted != null && !formatted.equals(raw))				document.replace(partition.getOffset(), partition.getLength(), formatted);		} catch (BadLocationException exception) {			// Can not happen			Assert.isTrue(false);		}	}