diff options
Diffstat (limited to 'src/delombok/lombok')
-rw-r--r-- | src/delombok/lombok/delombok/Delombok.java | 15 | ||||
-rw-r--r-- | src/delombok/lombok/delombok/DelombokApp.java | 2 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/delombok/lombok/delombok/Delombok.java b/src/delombok/lombok/delombok/Delombok.java index 0d887cb9..f5372fbb 100644 --- a/src/delombok/lombok/delombok/Delombok.java +++ b/src/delombok/lombok/delombok/Delombok.java @@ -86,6 +86,7 @@ public class Delombok { private PrintStream feedback = System.err; private boolean verbose; private boolean noCopy; + private boolean onlyChanged; private boolean force = false; private String classpath, sourcepath, bootclasspath; private LinkedHashMap<File, File> fileToBase = new LinkedHashMap<File, File>(); @@ -145,6 +146,9 @@ public class Delombok { @Shorthand("n") private boolean nocopy; + @Description("Output only changed files (implies -n)") + private boolean onlyChanged; + private boolean help; } @@ -238,7 +242,8 @@ public class Delombok { } if (args.verbose) delombok.setVerbose(true); - if (args.nocopy) delombok.setNoCopy(true); + if (args.nocopy || args.onlyChanged) delombok.setNoCopy(true); + if (args.onlyChanged) delombok.setOnlyChanged(true); if (args.print) { delombok.setOutputToStandardOut(); } else { @@ -364,6 +369,10 @@ public class Delombok { this.noCopy = noCopy; } + public void setOnlyChanged(boolean onlyChanged) { + this.onlyChanged = onlyChanged; + } + public void setOutput(File dir) { if (dir.isFile() || (!dir.isDirectory() && dir.getName().endsWith(".java"))) throw new IllegalArgumentException( "DELOMBOK: delombok will only write to a directory. " + @@ -585,6 +594,10 @@ public class Delombok { FormatPreferences fps = new FormatPreferences(formatPrefs); for (JCCompilationUnit unit : roots) { DelombokResult result = new DelombokResult(catcher.getComments(unit), unit, force || options.isChanged(unit), fps); + if (onlyChanged && !result.isChanged() && !options.isChanged(unit)) { + if (verbose) feedback.printf("File: %s [%s]\n", unit.sourcefile.getName(), "unchanged (skipped)"); + continue; + } if (verbose) feedback.printf("File: %s [%s%s]\n", unit.sourcefile.getName(), result.isChanged() ? "delomboked" : "unchanged", force && !options.isChanged(unit) ? " (forced)" : ""); Writer rawWriter; if (presetWriter != null) rawWriter = createUnicodeEscapeWriter(presetWriter); diff --git a/src/delombok/lombok/delombok/DelombokApp.java b/src/delombok/lombok/delombok/DelombokApp.java index aa753fc8..2ba4c6ed 100644 --- a/src/delombok/lombok/delombok/DelombokApp.java +++ b/src/delombok/lombok/delombok/DelombokApp.java @@ -79,7 +79,7 @@ public class DelombokApp extends LombokApp { } } - System.err.printf("Can't find tools.jar. Rerun delombok as: java -cp lombok.jar%1$s%2$s lombok.core.Main delombok %3$s\n", + System.err.printf("Can't find tools.jar. Rerun delombok as: java -cp lombok.jar%1$s%2$s lombok.launch.Main delombok %3$s\n", File.pathSeparator, examplePath, sb.toString()); return null; } |