@@ -81,6 +81,7 @@ object ScoverageSbtPlugin extends AutoPlugin {
81
81
coverageOutputHTML.value,
82
82
coverageOutputDebug.value,
83
83
coverageOutputTeamCity.value,
84
+ sourceEncoding((scalacOptions in (Compile )).value),
84
85
log)
85
86
86
87
checkCoverage(cov, log, coverageMinimum.value, coverageFailOnMinimum.value)
@@ -105,6 +106,7 @@ object ScoverageSbtPlugin extends AutoPlugin {
105
106
coverageOutputHTML.value,
106
107
coverageOutputDebug.value,
107
108
coverageOutputTeamCity.value,
109
+ sourceEncoding((scalacOptions in (Compile )).value),
108
110
log)
109
111
val cfmt = cov.statementCoverageFormatted
110
112
log.info(s " Aggregation complete. Coverage was [ $cfmt] " )
@@ -157,6 +159,7 @@ object ScoverageSbtPlugin extends AutoPlugin {
157
159
coverageOutputHTML : Boolean ,
158
160
coverageDebug : Boolean ,
159
161
coverageOutputTeamCity : Boolean ,
162
+ coverageSourceEncoding : Option [String ],
160
163
log : Logger ): Unit = {
161
164
log.info(s " Generating scoverage reports... " )
162
165
@@ -180,7 +183,7 @@ object ScoverageSbtPlugin extends AutoPlugin {
180
183
181
184
if (coverageOutputHTML) {
182
185
log.info(s " Written HTML coverage report [ ${reportDir.getAbsolutePath}/index.html] " )
183
- new ScoverageHtmlWriter (compileSourceDirectories, reportDir).write(coverage)
186
+ new ScoverageHtmlWriter (compileSourceDirectories, reportDir, coverageSourceEncoding ).write(coverage)
184
187
}
185
188
if (coverageOutputTeamCity) {
186
189
log.info(" Writing coverage report to teamcity" )
@@ -259,4 +262,8 @@ object ScoverageSbtPlugin extends AutoPlugin {
259
262
260
263
log.info(s " All done. Coverage was [ $cfmt%] " )
261
264
}
265
+
266
+ private def sourceEncoding (scalacOptions : Seq [String ]): Option [String ] =
267
+ scalacOptions.sliding(2 ).collectFirst { case Seq (" -encoding" , encoding) => encoding }
268
+
262
269
}
0 commit comments