Skip to content

Commit

Permalink
Use guaranteed binary and source compatibility between releases of Sc…
Browse files Browse the repository at this point in the history
…alafmt
  • Loading branch information
Joan Goyeau committed Jul 7, 2018
1 parent 4979069 commit 1704067
Showing 1 changed file with 5 additions and 18 deletions.
23 changes: 5 additions & 18 deletions lib/src/main/java/com/diffplug/spotless/scala/ScalaFmtStep.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,29 +90,16 @@ FormatterFunc createFormat() throws Exception {
} else {
File file = configSignature.getOnlyFile();

Class<?> optionCls = classLoader.loadClass("scala.Option");
Class<?> configCls = classLoader.loadClass("org.scalafmt.config.Config");
Class<?> configCls = classLoader.loadClass("org.scalafmt.Scalafmt");

Object either;

try {
// scalafmt >= v0.7.0-RC1
Method fromHocon = configCls.getMethod("fromHoconString", String.class, optionCls);
Object fromHoconEmptyPath = configCls.getMethod("fromHoconString$default$2").invoke(null);
Method fromHocon = configCls.getMethod("fromHoconString", String.class);

String configStr = new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8);
String configStr = new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8);

Object configured = fromHocon.invoke(null, configStr, fromHoconEmptyPath);
either = invokeNoArg(configured, "toEither");
} catch (NoSuchMethodException e) {
// In case of a NoSuchMethodException try old configuration API
// scalafmt <= v0.6.8
Method fromHocon = configCls.getMethod("fromHocon", String.class, optionCls);
Object fromHoconEmptyPath = configCls.getMethod("fromHocon$default$2").invoke(null);

String configStr = new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8);
either = fromHocon.invoke(null, configStr, fromHoconEmptyPath);
}
Object configured = fromHocon.invoke(null, configStr);
either = invokeNoArg(configured, "toEither");

config = invokeNoArg(invokeNoArg(either, "right"), "get");
}
Expand Down

0 comments on commit 1704067

Please sign in to comment.