Skip to content

Commit

Permalink
Align Java Eclipse formatter gradle interface with greclipse/scala as…
Browse files Browse the repository at this point in the history
… discussed in #94.
  • Loading branch information
fvgh authored and jbduncan committed May 5, 2017
1 parent e3360f5 commit 7aded96
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 7 deletions.
2 changes: 1 addition & 1 deletion plugin-gradle/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ spotless {
removeUnusedImports() // removes any unused imports
eclipseFormatFile 'spotless.eclipseformat.xml' // XML file dumped out by the Eclipse formatter
eclipse().configFile 'spotless.eclipseformat.xml' // XML file dumped out by the Eclipse formatter
// If you have Eclipse preference or property files, you can use them too.
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
*/
package com.diffplug.gradle.spotless;

import static com.diffplug.gradle.spotless.PluginGradlePreconditions.requireElementsNonNull;

import java.util.List;
import java.util.Objects;

Expand All @@ -24,6 +26,8 @@
import org.gradle.api.plugins.JavaPluginConvention;
import org.gradle.api.tasks.SourceSet;

import com.diffplug.common.base.StringPrinter;
import com.diffplug.spotless.FormatterStep;
import com.diffplug.spotless.SerializableFileFilter;
import com.diffplug.spotless.extra.java.EclipseFormatterStep;
import com.diffplug.spotless.generic.LicenseHeaderStep;
Expand Down Expand Up @@ -59,17 +63,23 @@ public void importOrderFile(Object importOrderFile) {
addStep(ImportOrderStep.createFromFile(getProject().file(importOrderFile)));
}

/** Use {@link #eclipse()} instead */
@Deprecated
public void eclipseFormatFile(Object eclipseFormatFile) {
eclipseFormatFile(EclipseFormatterStep.defaultVersion(), eclipseFormatFile);
}

/** Use {@link #eclipse(String)} instead */
@Deprecated
public void eclipseFormatFile(String eclipseVersion, Object eclipseFormatFile) {
Objects.requireNonNull(eclipseVersion, "eclipseVersion");
Objects.requireNonNull(eclipseFormatFile, "eclipseFormatFile");
Project project = getProject();
addStep(EclipseFormatterStep.create(eclipseVersion,
project.files(eclipseFormatFile).getFiles(),
GradleProvisioner.fromProject(project)));
getProject().getLogger().warn(
StringPrinter.buildStringFromLines(
"'eclipseFormatFile [version] <file>' is deprecated.",
"Use 'eclipse([version]).configFile(<file>)' instead.",
"For details see https://github.com/diffplug/spotless/tree/master/plugin-gradle#applying-to-java-source"));
eclipse(eclipseVersion).configFile(eclipseFormatFile);
}

/** Removes any unused imports. */
Expand All @@ -93,6 +103,37 @@ public void googleJavaFormat(String version) {
addStep(GoogleJavaFormatStep.create(version, GradleProvisioner.fromProject(getProject())));
}

public EclipseConfig eclipse() {
return eclipse(EclipseFormatterStep.defaultVersion());
}

public EclipseConfig eclipse(String version) {
return new EclipseConfig(version);
}

public class EclipseConfig {
final String version;
Object[] configFiles;

EclipseConfig(String version) {
configFiles = new Object[0];
this.version = Objects.requireNonNull(version);
addStep(createStep());
}

public void configFile(Object... configFiles) {
this.configFiles = requireElementsNonNull(configFiles);
replaceStep(createStep());
}

private FormatterStep createStep() {
Project project = getProject();
return EclipseFormatterStep.create(version,
project.files(configFiles).getFiles(),
GradleProvisioner.fromProject(project));
}
}

/** If the user hasn't specified the files yet, we'll assume he/she means all of the java files. */
@Override
protected void setupTask(SpotlessTask task) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ private static void runTasksManually(Type type) throws Exception {
java.target("**/*.java");
java.licenseHeaderFile("spotless.license.java");
java.importOrderFile("spotless.importorder");
java.eclipseFormatFile("spotless.eclipseformat.xml");
java.eclipse().configFile("spotless.eclipseformat.xml");
java.trimTrailingWhitespace();
java.customLazy("Lambda fix", () -> raw -> {
if (!raw.contains("public class SelfTest ")) {
Expand Down
2 changes: 1 addition & 1 deletion spotlessSelf.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spotless {
bumpThisNumberIfACustomStepChanges(1)
licenseHeaderFile 'spotless.license'
importOrderFile 'spotless.importorder'
eclipseFormatFile 'spotless.eclipseformat.xml'
eclipse().configFile 'spotless.eclipseformat.xml'
trimTrailingWhitespace()
removeUnusedImports()
}
Expand Down

0 comments on commit 7aded96

Please sign in to comment.