diff --git a/scalac-scoverage-plugin/src/main/scala/scoverage/report/CodeGrid.scala b/scalac-scoverage-plugin/src/main/scala/scoverage/report/CodeGrid.scala index 2b590b0f..e0284922 100644 --- a/scalac-scoverage-plugin/src/main/scala/scoverage/report/CodeGrid.scala +++ b/scalac-scoverage-plugin/src/main/scala/scoverage/report/CodeGrid.scala @@ -5,8 +5,13 @@ import _root_.scoverage.MeasuredFile import scala.io.Source /** @author Stephen Samuel */ -class CodeGrid(mFile: MeasuredFile) { +class CodeGrid(mFile: MeasuredFile, sourceEncoding: Option[String]) { + // for backward compatibility only + def this (mFile: MeasuredFile) { + this(mFile, None); + } + case class Cell(char: Char, var status: StatementStatus) private val lineBreak = System.getProperty("line.separator") @@ -60,7 +65,13 @@ class CodeGrid(mFile: MeasuredFile) { s"
$code
" } - private def source(mfile: MeasuredFile): String = Source.fromFile(mfile.source).mkString + private def source(mfile: MeasuredFile): String = { + val src = sourceEncoding match { + case Some(enc) => Source.fromFile(mfile.source, enc) + case None => Source.fromFile(mfile.source) + } + src.mkString + } private def spanStart(status: StatementStatus): String = s"" diff --git a/scalac-scoverage-plugin/src/main/scala/scoverage/report/ScoverageHtmlWriter.scala b/scalac-scoverage-plugin/src/main/scala/scoverage/report/ScoverageHtmlWriter.scala index f7858278..c88252da 100644 --- a/scalac-scoverage-plugin/src/main/scala/scoverage/report/ScoverageHtmlWriter.scala +++ b/scalac-scoverage-plugin/src/main/scala/scoverage/report/ScoverageHtmlWriter.scala @@ -8,8 +8,14 @@ import scoverage._ import scala.xml.Node /** @author Stephen Samuel */ -class ScoverageHtmlWriter(sourceDirectories: Seq[File], outputDir: File) extends BaseReportWriter(sourceDirectories, outputDir) { +class ScoverageHtmlWriter(sourceDirectories: Seq[File], outputDir: File, sourceEncoding: Option[String]) extends BaseReportWriter(sourceDirectories, outputDir) { + // for backward compatibility only + def this (sourceDirectories: Seq[File], outputDir: File) { + this(sourceDirectories, outputDir, None); + } + + // for backward compatibility only def this (sourceDirectory: File, outputDir: File) { this(Seq(sourceDirectory), outputDir); } @@ -75,7 +81,7 @@ class ScoverageHtmlWriter(sourceDirectories: Seq[File], outputDir: File) extends
- {xml.Unparsed(new CodeGrid(mfile).highlighted)} + {xml.Unparsed(new CodeGrid(mfile, sourceEncoding).highlighted)}
{new StatementWriter(mfile).output} diff --git a/version.sbt b/version.sbt index a1b7d187..7bc4f283 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version in ThisBuild := "1.1.1" \ No newline at end of file +version in ThisBuild := "1.2.0-SNAPSHOT" \ No newline at end of file