Writing a new refactoring plugin for Eclipse?

Is there any good documentation on implementing new refactorings in Eclipse? Specifically, I'd like to access the AST for a Java class, make some non-trivial changes, and save the result back to the source file.

So far, the only documentation I've found is (1) the source code for the existing refactorings and (2) a few articles on the LTK and Java AST:

Are there any other articles or tutorials that I should read?


Solution 1:

I found the eclipse.org article the most helpful to get me started. To be honest you're probably best off debugging some of the Eclipse refactorings to get a real feel for how they work.

A good place to get started debugging the code is to set breakpoints on org.eclipse.jdt.core.dom.rewrite.ASTRewrite, particularly the rewriteAST() method, then trigger some refactorings.

Here are a few you might find useful. Are you looking for anything in particular or a general sense of how to process the AST?

  • http://www.ibm.com/developerworks/opensource/library/os-ast/
  • http://blog.sahits.ch/?p=228
  • http://www.vogella.de/articles/EclipseJDT/article.html

Solution 2:

You can take a look at Lombok Project. It seems they have Eclipse plugin.

It does some AST manipulations - e.q. getters/setters. Could be helpful for you too.