How to get all visible variables for a certain method in JDT
eclipse-jdt, eclipse-plugin
Solution
Actually, JDT can be used outside of a plug-in, i.e., it can be used in a stand-alone Java application.
The following code can return the variables you want:
public static void parse(char[] str) {
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(str);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
cu.accept(new ASTVisitor() {
public boolean visit(VariableDeclarationFragment var) {
System.out.println("variable: " + var.getName());
return false;
}
public boolean visit(MethodDeclaration md) {
if (md.getName().toString().equals("method_test2")) {
md.accept(new ASTVisitor() {
public boolean visit(VariableDeclarationFragment fd) {
System.out.println("in method: " + fd);
return false;
}
});
}
return false;
}
});
}
The output is:
variable: test1
variable: test2
in method: test5
in method: test6
Check out more examples at JDT tutorials.
Problem
I want to develop an Eclipse plug-in which get all visible variables for a specific method. For example: ``` public class testVariable { String test1; Object test2; void method_test1(){ int test3,test4; } void method_test2(){ int test5,test6; //get variable here!!!! } } ``` I just want to get visible variable is: `test1, test2,test5,test6` in method `method_test2`. What can I do?