Skip to content

Commit 667eef9

Browse files
committed
Pass editor config and filenames correctly
1 parent 79e35c1 commit 667eef9

File tree

4 files changed

+68
-19
lines changed

4 files changed

+68
-19
lines changed

lib/src/ktlint/java/com/diffplug/spotless/glue/ktlint/KtlintFormatterFunc.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,6 @@ public String applyWithFile(String unix, File file) {
7373
if (editorConfigPath != null) {
7474
absoluteEditorConfigPath = editorConfigPath.getOnlyFile().getAbsolutePath();
7575
}
76-
return adapter.format(unix, file.getName(), isScript, useExperimental, absoluteEditorConfigPath, userData, editorConfigOverrideMap);
76+
return adapter.format(unix, file.getAbsolutePath(), isScript, useExperimental, absoluteEditorConfigPath, userData, editorConfigOverrideMap);
7777
}
7878
}

lib/src/main/java/com/diffplug/spotless/kotlin/KtLintStep.java

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import java.util.Objects;
2424
import java.util.TreeMap;
2525

26+
import javax.annotation.Nullable;
27+
2628
import com.diffplug.spotless.FileSignature;
2729
import com.diffplug.spotless.FormatterFunc;
2830
import com.diffplug.spotless.FormatterStep;
@@ -51,25 +53,50 @@ public static FormatterStep create(String version, Provisioner provisioner) {
5153

5254
public static FormatterStep create(String version, Provisioner provisioner, boolean useExperimental,
5355
Map<String, String> userData, Map<String, Object> editorConfigOverride) {
54-
return create(version, provisioner, false, useExperimental, userData, editorConfigOverride);
56+
return create(version, provisioner, false, useExperimental, null, userData, editorConfigOverride);
5557
}
5658

5759
public static FormatterStep createForScript(String version, Provisioner provisioner) {
58-
return create(version, provisioner, true, false, Collections.emptyMap(), Collections.emptyMap());
60+
return create(version, provisioner, true, false, null, Collections.emptyMap(), Collections.emptyMap());
5961
}
6062

61-
public static FormatterStep createForScript(String version, Provisioner provisioner, boolean useExperimental,
62-
FileSignature editorConfigPath, Map<String, String> userData, Map<String, Object> editorConfigOverride) {
63-
return create(version, provisioner, true, useExperimental, userData, editorConfigOverride);
63+
public static FormatterStep createForScript(String version,
64+
Provisioner provisioner,
65+
boolean useExperimental,
66+
@Nullable FileSignature editorConfigPath,
67+
Map<String, String> userData,
68+
Map<String, Object> editorConfigOverride) {
69+
return create(version,
70+
provisioner,
71+
true,
72+
useExperimental,
73+
editorConfigPath,
74+
userData,
75+
editorConfigOverride);
6476
}
6577

66-
private static FormatterStep create(String version, Provisioner provisioner, boolean isScript, boolean useExperimental,
67-
Map<String, String> userData, Map<String, Object> editorConfigOverride) {
68-
return create(version, provisioner, useExperimental, userData, editorConfigOverride);
78+
private static FormatterStep create(String version,
79+
Provisioner provisioner,
80+
boolean isScript,
81+
boolean useExperimental,
82+
Map<String, String> userData,
83+
Map<String, Object> editorConfigOverride) {
84+
return create(version,
85+
provisioner,
86+
useExperimental,
87+
isScript,
88+
null,
89+
userData,
90+
editorConfigOverride);
6991
}
7092

71-
public static FormatterStep create(String version, Provisioner provisioner, boolean isScript, boolean useExperimental,
72-
FileSignature editorConfig, Map<String, String> userData, Map<String, Object> editorConfigOverride) {
93+
public static FormatterStep create(String version,
94+
Provisioner provisioner,
95+
boolean isScript,
96+
boolean useExperimental,
97+
@Nullable FileSignature editorConfig,
98+
Map<String, String> userData,
99+
Map<String, Object> editorConfigOverride) {
73100
Objects.requireNonNull(version, "version");
74101
Objects.requireNonNull(provisioner, "provisioner");
75102
return FormatterStep.createLazy(NAME,
@@ -92,10 +119,16 @@ static final class State implements Serializable {
92119
private final TreeMap<String, String> userData;
93120
private final TreeMap<String, Object> editorConfigOverride;
94121
private final String version;
122+
@Nullable
95123
private final FileSignature editorConfigPath;
96124

97-
State(String version, Provisioner provisioner, boolean isScript, boolean useExperimental,
98-
FileSignature editorConfigPath, Map<String, String> userData, Map<String, Object> editorConfigOverride) throws IOException {
125+
State(String version,
126+
Provisioner provisioner,
127+
boolean isScript,
128+
boolean useExperimental,
129+
@Nullable FileSignature editorConfigPath,
130+
Map<String, String> userData,
131+
Map<String, Object> editorConfigOverride) throws IOException {
99132
this.version = version;
100133

101134
String coordinate;

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/KotlinExtension.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717

1818
import static com.diffplug.spotless.kotlin.KotlinConstants.LICENSE_HEADER_DELIMITER;
1919

20+
import java.io.File;
2021
import java.io.IOException;
2122
import java.util.Collections;
2223
import java.util.Map;
2324
import java.util.Objects;
2425
import java.util.function.Consumer;
2526

27+
import javax.annotation.Nullable;
2628
import javax.inject.Inject;
2729

2830
import org.gradle.api.GradleException;
@@ -58,24 +60,30 @@ public LicenseHeaderConfig licenseHeaderFile(Object licenseHeaderFile) {
5860
}
5961

6062
/** Adds the specified version of <a href="https://github.com/pinterest/ktlint">ktlint</a>. */
61-
public KotlinFormatExtension ktlint(String version) {
63+
public KotlinFormatExtension ktlint(String version) throws IOException {
6264
Objects.requireNonNull(version);
63-
return new KotlinFormatExtension(version, false, null, Collections.emptyMap(), Collections.emptyMap());
65+
FileSignature editorConfigPath = null;
66+
File defaultEditorConfig = getProject().getRootProject().file(".editorconfig");
67+
if (defaultEditorConfig.exists() && defaultEditorConfig.isFile()) {
68+
editorConfigPath = FileSignature.signAsList(defaultEditorConfig);
69+
}
70+
return new KotlinFormatExtension(version, false, editorConfigPath, Collections.emptyMap(), Collections.emptyMap());
6471
}
6572

66-
public KotlinFormatExtension ktlint() {
73+
public KotlinFormatExtension ktlint() throws IOException {
6774
return ktlint(KtLintStep.defaultVersion());
6875
}
6976

7077
public class KotlinFormatExtension {
7178

7279
private final String version;
7380
private boolean useExperimental;
81+
@Nullable
7482
private FileSignature editorConfigPath;
7583
private Map<String, String> userData;
7684
private Map<String, Object> editorConfigOverride;
7785

78-
KotlinFormatExtension(String version, boolean useExperimental, FileSignature editorConfigPath, Map<String, String> config,
86+
KotlinFormatExtension(String version, boolean useExperimental, @Nullable FileSignature editorConfigPath, Map<String, String> config,
7987
Map<String, Object> editorConfigOverride) {
8088
this.version = version;
8189
this.useExperimental = useExperimental;

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/KotlinGradleExtension.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.Objects;
2323
import java.util.function.Consumer;
2424

25+
import javax.annotation.Nullable;
2526
import javax.inject.Inject;
2627

2728
import com.diffplug.common.collect.ImmutableSortedMap;
@@ -47,7 +48,7 @@ public KotlinGradleExtension(SpotlessExtension spotless) {
4748
public KotlinFormatExtension ktlint(String version) throws IOException {
4849
Objects.requireNonNull(version, "version");
4950
FileSignature editorConfigPath = null;
50-
File defaultEditorConfig = getProject().getRootProject().file(".editorConfig");
51+
File defaultEditorConfig = getProject().getRootProject().file(".editorconfig");
5152
if (defaultEditorConfig.exists() && defaultEditorConfig.isFile()) {
5253
editorConfigPath = FileSignature.signAsList(defaultEditorConfig);
5354
}
@@ -62,6 +63,7 @@ public class KotlinFormatExtension {
6263

6364
private final String version;
6465
private boolean useExperimental;
66+
@Nullable
6567
private FileSignature editorConfigPath;
6668
private Map<String, String> userData;
6769
private Map<String, Object> editorConfigOverride;
@@ -110,7 +112,13 @@ public KotlinFormatExtension editorConfigOverride(Map<String, Object> editorConf
110112
}
111113

112114
private FormatterStep createStep() {
113-
return KtLintStep.createForScript(version, provisioner(), useExperimental, editorConfigPath, userData, editorConfigOverride);
115+
return KtLintStep.createForScript(
116+
version,
117+
provisioner(),
118+
useExperimental,
119+
editorConfigPath,
120+
userData,
121+
editorConfigOverride);
114122
}
115123
}
116124

0 commit comments

Comments
 (0)