aboutsummaryrefslogtreecommitdiff
path: root/src/delombok/lombok
diff options
context:
space:
mode:
Diffstat (limited to 'src/delombok/lombok')
-rw-r--r--src/delombok/lombok/delombok/Delombok.java15
-rw-r--r--src/delombok/lombok/delombok/DelombokApp.java2
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;
}