Insert Blank Lines to Source Code By Using Eclipse JDT

This code example is for showing how to insert a blank line to Java source code by using eclipse JDT. The approach is similar with adding a statement or comment to source code, especially adding a comment.

It will insert a blank line before the first statement in the following code:

public class test {
	 * @param args
	public static void main(String[] args) {

After inserting a blank line, the code becomes like the following. Note there is a blank line before the first statement.

public class test {
	 * @param args
	public static void main(String[] args) {

Steps for using the code example:
1. Create an eclipse Plug-in project. If you don’t know how to create a plug-in project, see “how to create a plug-in project tutorial“.
2. Copy the following method to your code.
3. Run your plug-in project, and create a java project named “testAddBlank” in the popup eclipse instance.
4. click the menu item that triggers the action.

//add a blank line before a statement
private void AddBlankLine() throws MalformedTreeException, BadLocationException, CoreException {
	IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("testAddBlank");
	IJavaProject javaProject = JavaCore.create(project);
	IPackageFragment package1 = javaProject.getPackageFragments()[0];
	//get first compilation unit
	ICompilationUnit unit = package1.getCompilationUnits()[0];
	// parse compilation unit
	CompilationUnit astRoot = parse(unit);
	//create a ASTRewrite
	AST ast = astRoot.getAST();
	ASTRewrite rewriter = ASTRewrite.create(ast);
	//for getting insertion position
	TypeDeclaration typeDecl = (TypeDeclaration) astRoot.types().get(0);
	MethodDeclaration methodDecl = typeDecl.getMethods()[0];
	Block block = methodDecl.getBody();
	ListRewrite listRewrite = rewriter.getListRewrite(block, Block.STATEMENTS_PROPERTY);
	//notice here, we just create a string placeholder, and string is simply as empty
	Statement placeHolder = (Statement) rewriter.createStringPlaceholder("", ASTNode.EMPTY_STATEMENT);
	listRewrite.insertFirst(placeHolder, null);
	TextEdit edits = rewriter.rewriteAST();
	// apply the text edits to the compilation unit
	Document document = new Document(unit.getSource());
	// this is the code for adding statements

The parse method.

private static CompilationUnit parse(ICompilationUnit unit) {
	ASTParser parser = ASTParser.newParser(AST.JLS3);
	return (CompilationUnit) parser.createAST(null); // parse

Leave a Comment