@@ -62,6 +62,10 @@ object ScalafmtPlugin extends AutoPlugin {
6262 " Execute the scalafmtCheck task for all configurations in which it is enabled. " +
6363 " (By default this means the Compile and Test configurations.)"
6464 )
65+ val scalafmtDetailedError =
66+ settingKey[Boolean ](
67+ " Enables logging of detailed errors with stacktraces, disabled by default"
68+ )
6569 }
6670
6771 import autoImport ._
@@ -100,11 +104,12 @@ object ScalafmtPlugin extends AutoPlugin {
100104 config : Path ,
101105 log : Logger ,
102106 writer : OutputStreamWriter ,
103- resolvers : Seq [Resolver ]
107+ resolvers : Seq [Resolver ],
108+ detailedErrorEnabled : Boolean
104109 )(
105110 onFormat : (File , Input , Output ) => T
106111 ): Seq [Option [T ]] = {
107- val reporter = new ScalafmtSbtReporter (log, writer)
112+ val reporter = new ScalafmtSbtReporter (log, writer, detailedErrorEnabled )
108113 val repositories = resolvers.collect {
109114 case r : MavenRepository => r.root
110115 }
@@ -147,7 +152,8 @@ object ScalafmtPlugin extends AutoPlugin {
147152 config : Path ,
148153 log : Logger ,
149154 writer : OutputStreamWriter ,
150- resolvers : Seq [Resolver ]
155+ resolvers : Seq [Resolver ],
156+ detailedErrorEnabled : Boolean
151157 ): Unit = {
152158 trackSourcesAndConfig(cacheStoreFactory, sources, config) {
153159 (outDiff, configChanged, prev) =>
@@ -162,7 +168,14 @@ object ScalafmtPlugin extends AutoPlugin {
162168 }
163169 if (filesToFormat.nonEmpty) {
164170 log.info(s " Formatting ${filesToFormat.size} Scala sources... " )
165- formatSources(filesToFormat, config, log, writer, resolvers)
171+ formatSources(
172+ filesToFormat,
173+ config,
174+ log,
175+ writer,
176+ resolvers,
177+ detailedErrorEnabled
178+ )
166179 }
167180 ScalafmtAnalysis (Set .empty)
168181 }
@@ -173,10 +186,18 @@ object ScalafmtPlugin extends AutoPlugin {
173186 config : Path ,
174187 log : Logger ,
175188 writer : OutputStreamWriter ,
176- resolvers : Seq [Resolver ]
189+ resolvers : Seq [Resolver ],
190+ detailedErrorEnabled : Boolean
177191 ): Unit = {
178192 val cnt =
179- withFormattedSources(sources.toSeq, config, log, writer, resolvers)(
193+ withFormattedSources(
194+ sources.toSeq,
195+ config,
196+ log,
197+ writer,
198+ resolvers,
199+ detailedErrorEnabled
200+ )(
180201 (file, input, output) => {
181202 if (input != output) {
182203 IO .write(file, output)
@@ -199,7 +220,8 @@ object ScalafmtPlugin extends AutoPlugin {
199220 config : Path ,
200221 log : Logger ,
201222 writer : OutputStreamWriter ,
202- resolvers : Seq [Resolver ]
223+ resolvers : Seq [Resolver ],
224+ detailedErrorEnabled : Boolean
203225 ): ScalafmtAnalysis = {
204226 trackSourcesAndConfig(cacheStoreFactory, sources, config) {
205227 (outDiff, configChanged, prev) =>
@@ -213,7 +235,14 @@ object ScalafmtPlugin extends AutoPlugin {
213235 else prev.failedScalafmtCheck & outDiff.unmodified
214236 prevFailed foreach { warnBadFormat(_, log) }
215237 val result =
216- checkSources(filesToCheck.toSeq, config, log, writer, resolvers)
238+ checkSources(
239+ filesToCheck.toSeq,
240+ config,
241+ log,
242+ writer,
243+ resolvers,
244+ detailedErrorEnabled
245+ )
217246 prev.copy(
218247 failedScalafmtCheck = result.failedScalafmtCheck | prevFailed
219248 )
@@ -239,13 +268,21 @@ object ScalafmtPlugin extends AutoPlugin {
239268 config : Path ,
240269 log : Logger ,
241270 writer : OutputStreamWriter ,
242- resolvers : Seq [Resolver ]
271+ resolvers : Seq [Resolver ],
272+ detailedErrorEnabled : Boolean
243273 ): ScalafmtAnalysis = {
244274 if (sources.nonEmpty) {
245275 log.info(s " Checking ${sources.size} Scala sources... " )
246276 }
247277 val unformatted =
248- withFormattedSources(sources, config, log, writer, resolvers)(
278+ withFormattedSources(
279+ sources,
280+ config,
281+ log,
282+ writer,
283+ resolvers,
284+ detailedErrorEnabled
285+ )(
249286 (file, input, output) => {
250287 val diff = input != output
251288 if (diff) {
@@ -330,7 +367,8 @@ object ScalafmtPlugin extends AutoPlugin {
330367 scalaConfig.value,
331368 streams.value.log,
332369 outputStreamWriter(streams.value),
333- fullResolvers.value
370+ fullResolvers.value,
371+ scalafmtDetailedError.value
334372 )
335373 } tag (ScalafmtTagPack : _* )
336374
@@ -341,14 +379,16 @@ object ScalafmtPlugin extends AutoPlugin {
341379 sbtConfig.value,
342380 streams.value.log,
343381 outputStreamWriter(streams.value),
344- fullResolvers.value
382+ fullResolvers.value,
383+ scalafmtDetailedError.value
345384 )
346385 formatSources(
347386 metabuildSources.value.toSet,
348387 scalaConfig.value,
349388 streams.value.log,
350389 outputStreamWriter(streams.value),
351- fullResolvers.value
390+ fullResolvers.value,
391+ scalafmtDetailedError.value
352392 )
353393 } tag (ScalafmtTagPack : _* )
354394
@@ -360,7 +400,8 @@ object ScalafmtPlugin extends AutoPlugin {
360400 scalaConfig.value,
361401 streams.value.log,
362402 outputStreamWriter(streams.value),
363- fullResolvers.value
403+ fullResolvers.value,
404+ scalafmtDetailedError.value
364405 )
365406 trueOrBoom(analysis)
366407 } tag (ScalafmtTagPack : _* )
@@ -373,7 +414,8 @@ object ScalafmtPlugin extends AutoPlugin {
373414 sbtConfig.value,
374415 streams.value.log,
375416 outputStreamWriter(streams.value),
376- fullResolvers.value
417+ fullResolvers.value,
418+ scalafmtDetailedError.value
377419 )
378420 )
379421 trueOrBoom(
@@ -382,7 +424,8 @@ object ScalafmtPlugin extends AutoPlugin {
382424 scalaConfig.value,
383425 streams.value.log,
384426 outputStreamWriter(streams.value),
385- fullResolvers.value
427+ fullResolvers.value,
428+ scalafmtDetailedError.value
386429 )
387430 )
388431 } tag (ScalafmtTagPack : _* )
@@ -420,7 +463,8 @@ object ScalafmtPlugin extends AutoPlugin {
420463 scalaConfig.value,
421464 streams.value.log,
422465 outputStreamWriter(streams.value),
423- fullResolvers.value
466+ fullResolvers.value,
467+ scalafmtDetailedError.value
424468 )
425469 }
426470 )
@@ -446,7 +490,8 @@ object ScalafmtPlugin extends AutoPlugin {
446490
447491 override def globalSettings : Seq [Def .Setting [_]] =
448492 Seq (
449- scalafmtOnCompile := false
493+ scalafmtOnCompile := false ,
494+ scalafmtDetailedError := false
450495 )
451496
452497}
0 commit comments