Eclipse: Java Enum auto-completion of switch case
Solution 1:
It has been in Eclipse for ages. It's admittedly only a bit hard to find. First start with
switch (myEnum) {
}
At that point, your cursor would usually be inside the statement block {}
. You need to put your cusror back to the line with the switch
keyword and press Ctrl+1 and choose Add missing case statements. This way it will insert any possible case
.
You'd intuitively expect this option to be available inside the statement block {}
as well, but no.
Update: since Eclipse Kepler (or perhaps already Juno, but it's so instable that I never really used it), this option is finally available via Ctrl+1 inside the statement block as well.
Solution 2:
I don't know if it's possible to do this as a template, because the template would have to know which enum type you were using. But you could write a little script to print out the statement for you, and then just copy its output into your source file.
public class SwitchWriter {
public static void printSwitchStatement(String varName, Class<?> E) {
System.out.format("switch(%s) {\n", varName);
for (Object o : E.getEnumConstants()) {
System.out.format("case %s:\n // TODO: Auto-generated switch statement stub\n break;\n", o);
}
System.out.println("default:\n // TODO: Auto-generated switch statement stub\n}");
}
}
Output of SwitchWriter.printSwitchStatement("action", java.awt.Desktop.Action.class)
:
switch(action) {
case OPEN:
// TODO: Auto-generated switch statement stub
break;
case EDIT:
// TODO: Auto-generated switch statement stub
break;
case PRINT:
// TODO: Auto-generated switch statement stub
break;
case MAIL:
// TODO: Auto-generated switch statement stub
break;
case BROWSE:
// TODO: Auto-generated switch statement stub
break;
default:
// TODO: Auto-generated switch statement stub
}