This may be a mistake, but using the JDK in Elcipse 4.2.2 you need to create a working copy of ICompilationUnit to apply TextEdit to the file.
targetUnit.becomeWorkingCopy(new SubProgressMonitor(monitor, 1)); ... do work on the source file ... formatUnitSourceCode(targetUnit, new SubProgressMonitor(monitor, 1)); targetUnit.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
Formatting itself is performed as follows:
public static void formatUnitSourceCode(ICompilationUnit unit, IProgressMonitor monitor) throws JavaModelException { CodeFormatter formatter = ToolFactory.createCodeFormatter(null); ISourceRange range = unit.getSourceRange(); TextEdit formatEdit = formatter.format(CodeFormatter.K_COMPILATION_UNIT, unit.getSource(), range.getOffset(), range.getLength(), 0, null); if (formatEdit != null && formatEdit.hasChildren()) { unit.applyTextEdit(formatEdit, monitor); } else { monitor.done(); } }
source share