Skip to content

Commit 137392f

Browse files
committed
Allow configuration of scalaMajorVersion
1 parent 781eb68 commit 137392f

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

lib/src/main/java/com/diffplug/spotless/scala/ScalaFmtStep.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,23 +35,35 @@ public class ScalaFmtStep {
3535
private ScalaFmtStep() {}
3636

3737
private static final String DEFAULT_VERSION = "3.5.9";
38+
39+
private static final String DEFAULT_SCALA_MAJOR_VERSION = "2.13";
3840
static final String NAME = "scalafmt";
39-
static final String MAVEN_COORDINATE = "org.scalameta:scalafmt-core_2.13:";
41+
static final String MAVEN_COORDINATE = "org.scalameta:scalafmt-core_";
4042

4143
public static FormatterStep create(Provisioner provisioner) {
42-
return create(defaultVersion(), provisioner, null);
44+
return create(defaultVersion(), defaultScalaMajorVersion(), provisioner, null);
4345
}
4446

4547
public static FormatterStep create(String version, Provisioner provisioner, @Nullable File configFile) {
48+
return create(version, defaultScalaMajorVersion(), provisioner, configFile);
49+
}
50+
51+
public static FormatterStep create(String version, @Nullable String scalaMajorVersion, Provisioner provisioner, @Nullable File configFile) {
52+
String finalScalaMajorVersion = scalaMajorVersion == null ? DEFAULT_SCALA_MAJOR_VERSION : scalaMajorVersion;
53+
4654
return FormatterStep.createLazy(NAME,
47-
() -> new State(JarState.from(MAVEN_COORDINATE + version, provisioner), configFile),
55+
() -> new State(JarState.from(MAVEN_COORDINATE + finalScalaMajorVersion + ":" + version, provisioner), configFile),
4856
State::createFormat);
4957
}
5058

5159
public static String defaultVersion() {
5260
return DEFAULT_VERSION;
5361
}
5462

63+
public static String defaultScalaMajorVersion() {
64+
return DEFAULT_SCALA_MAJOR_VERSION;
65+
}
66+
5567
static final class State implements Serializable {
5668
private static final long serialVersionUID = 1L;
5769

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,29 @@ public ScalaFmtConfig scalafmt(String version) {
4848
public class ScalaFmtConfig {
4949
final String version;
5050
@Nullable
51+
String scalaMajorVersion;
52+
@Nullable
5153
Object configFile;
5254

5355
ScalaFmtConfig(String version) {
5456
this.version = Objects.requireNonNull(version);
55-
addStep(createStep());
5657
}
5758

58-
public void configFile(Object configFile) {
59+
public ScalaFmtConfig configFile(Object configFile) {
5960
this.configFile = Objects.requireNonNull(configFile);
6061
replaceStep(createStep());
62+
return this;
63+
}
64+
65+
public ScalaFmtConfig scalaMajorVersion(String scalaMajorVersion) {
66+
this.scalaMajorVersion = Objects.requireNonNull(scalaMajorVersion);
67+
replaceStep(createStep());
68+
return this;
6169
}
6270

6371
private FormatterStep createStep() {
6472
File resolvedConfigFile = configFile == null ? null : getProject().file(configFile);
65-
return ScalaFmtStep.create(version, provisioner(), resolvedConfigFile);
73+
return ScalaFmtStep.create(version, scalaMajorVersion, provisioner(), resolvedConfigFile);
6674
}
6775
}
6876

plugin-maven/src/main/java/com/diffplug/spotless/maven/scala/Scalafmt.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,14 @@ public class Scalafmt implements FormatterStepFactory {
3232
@Parameter
3333
private String version;
3434

35+
@Parameter
36+
private String scalaMajorVersion;
37+
3538
@Override
3639
public FormatterStep newFormatterStep(FormatterStepConfig config) {
3740
String scalafmtVersion = version != null ? version : ScalaFmtStep.defaultVersion();
41+
String scalafmtScalaMajorVersion = scalaMajorVersion != null ? scalaMajorVersion : ScalaFmtStep.defaultScalaMajorVersion();
3842
File configFile = config.getFileLocator().locateFile(file);
39-
return ScalaFmtStep.create(scalafmtVersion, config.getProvisioner(), configFile);
43+
return ScalaFmtStep.create(scalafmtVersion, scalafmtScalaMajorVersion, config.getProvisioner(), configFile);
4044
}
4145
}

0 commit comments

Comments
 (0)