spotless icon indicating copy to clipboard operation
spotless copied to clipboard

Give option for detailed linting errors

Open sebastian-peter opened this issue 9 months ago • 1 comments

After upgrading to version 7, spotless just kept crashing when linting Scala in spotlessCheck/Apply, with a cryptic error message:

There were 411 lint error(s), they must be fixed or suppressed.
  src/main/scala/edu/ie3/simona/actor/ActorUtil.scala:LINE_UNDEFINED scalafmt(java.lang.reflect.InvocationTargetException) java.lang.reflect.InvocationTargetException (...)
[...]

(CI run here)

Turns out the cause of our problem was that the scalafmt version was not set to the exact one required (3.8.1) in .scalafmt.conf. It took me some time to figure this out, so maybe there's a way to make the error logging more verbose. Giving an option to print the stack traces of linting errors would be great, for example (my apologies if this option exists already, I have not found it).

sebastian-peter avatar Mar 24 '25 15:03 sebastian-peter

You're absolutely right, this is an important feature. Right now detailed is always set to false, we need to add a command line flag which can set it to true.

https://github.com/diffplug/spotless/blob/822b52da39d36dcd53cc61bbec27bc49d14f44e8/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessCheck.java#L78-L82

We should make this change too

-There were 411 lint error(s), they must be fixed or suppressed.
+There were 411 lint error(s), they must be fixed or suppressed. Rerun with `--lint-detail` for more info.

Thoughts on the flag name? PR's welcome, I'm not gonna get around to implementing this anytime soon.

nedtwigg avatar Mar 24 '25 17:03 nedtwigg