Skip to content

Commit a75ee04

Browse files
Support more options from google formatter
- skipRemovingUnusedImports defaults to false - skipReflowingLongStrings defaults to true for backwards compatibility
1 parent e213b84 commit a75ee04

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

src/main/java/com/spotify/fmt/AbstractFMT.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ public abstract class AbstractFMT extends AbstractMojo {
8282
@Parameter(defaultValue = "false", property = "skipSortingImports")
8383
private boolean skipSortingImports = false;
8484

85+
@Parameter(defaultValue = "false", property = "skipRemovingUnusedImports")
86+
private boolean skipRemovingUnusedImports = false;
87+
88+
@Parameter(defaultValue = "true", property = "skipReflowingLongStrings")
89+
private boolean skipReflowingLongStrings = true;
90+
8591
@Parameter(defaultValue = "google", property = "style")
8692
private String style;
8793

@@ -121,6 +127,12 @@ public void execute() throws MojoFailureException {
121127
if (skipSortingImports) {
122128
getLog().info("Skipping sorting imports");
123129
}
130+
if (skipRemovingUnusedImports) {
131+
getLog().info("Skipping removing unused imports");
132+
}
133+
if (skipReflowingLongStrings) {
134+
getLog().info("Skipping reflowing long strings");
135+
}
124136
List<File> directoriesToFormat = new ArrayList<>();
125137
if (sourceDirectory.exists() && !skipSourceDirectory) {
126138
directoriesToFormat.add(sourceDirectory);
@@ -150,6 +162,8 @@ public void execute() throws MojoFailureException {
150162
.filesPathPattern(filesPathPattern)
151163
.verbose(verbose)
152164
.skipSortingImports(skipSortingImports)
165+
.skipRemovingUnusedImports(skipRemovingUnusedImports)
166+
.skipReflowingLongStrings(skipReflowingLongStrings)
153167
.writeReformattedFiles(shouldWriteReformattedFiles())
154168
.processingLabel(getProcessingLabel())
155169
.build();

src/main/java/com/spotify/fmt/Formatter.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
import com.google.googlejavaformat.java.JavaFormatterOptions;
3434
import com.google.googlejavaformat.java.JavaFormatterOptions.Style;
3535
import com.google.googlejavaformat.java.RemoveUnusedImports;
36+
import com.google.googlejavaformat.java.StringWrapper;
37+
3638
import java.io.File;
3739
import java.io.FileFilter;
3840
import java.io.IOException;
@@ -154,10 +156,15 @@ private boolean formatSourceFile(
154156
try {
155157
String input = source.read();
156158
String formatted = formatter.formatSource(input);
157-
formatted = RemoveUnusedImports.removeUnusedImports(formatted);
159+
if (!cfg.skipRemovingUnusedImports()) {
160+
formatted = RemoveUnusedImports.removeUnusedImports(formatted);
161+
}
158162
if (!cfg.skipSortingImports()) {
159163
formatted = ImportOrderer.reorderImports(formatted, style);
160164
}
165+
if (!cfg.skipReflowingLongStrings()) {
166+
formatted = StringWrapper.wrap(formatted, formatter);
167+
}
161168
if (!input.equals(formatted)) {
162169
if (cfg.writeReformattedFiles()) {
163170
CharSink sink = com.google.common.io.Files.asCharSink(file, Charsets.UTF_8);

src/main/java/com/spotify/fmt/FormattingConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ interface FormattingConfiguration extends Serializable {
4545
String filesPathPattern();
4646

4747
boolean skipSortingImports();
48+
49+
boolean skipRemovingUnusedImports();
50+
51+
boolean skipReflowingLongStrings();
4852

4953
boolean writeReformattedFiles();
5054

0 commit comments

Comments
 (0)