Skip to content

Commit 2d921ea

Browse files
committed
Merge pull request #149 from gslowikowski/source-encoding-2
Source encoding parametrization - fix for issue #134
2 parents 578da5a + 5e08d62 commit 2d921ea

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

scalac-scoverage-plugin/src/main/scala/scoverage/report/CodeGrid.scala

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@ import _root_.scoverage.MeasuredFile
55
import scala.io.Source
66

77
/** @author Stephen Samuel */
8-
class CodeGrid(mFile: MeasuredFile) {
8+
class CodeGrid(mFile: MeasuredFile, sourceEncoding: Option[String]) {
9+
10+
// for backward compatibility only
11+
def this (mFile: MeasuredFile) {
12+
this(mFile, None);
13+
}
914

1015
case class Cell(char: Char, var status: StatementStatus)
1116

@@ -60,7 +65,13 @@ class CodeGrid(mFile: MeasuredFile) {
6065
s"<pre style='font-size: 12pt; font-family: courier;'>$code</pre>"
6166
}
6267

63-
private def source(mfile: MeasuredFile): String = Source.fromFile(mfile.source).mkString
68+
private def source(mfile: MeasuredFile): String = {
69+
val src = sourceEncoding match {
70+
case Some(enc) => Source.fromFile(mfile.source, enc)
71+
case None => Source.fromFile(mfile.source)
72+
}
73+
src.mkString
74+
}
6475

6576
private def spanStart(status: StatementStatus): String = s"<span style='${cellStyle(status)}'>"
6677

scalac-scoverage-plugin/src/main/scala/scoverage/report/ScoverageHtmlWriter.scala

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,14 @@ import scoverage._
88
import scala.xml.Node
99

1010
/** @author Stephen Samuel */
11-
class ScoverageHtmlWriter(sourceDirectories: Seq[File], outputDir: File) extends BaseReportWriter(sourceDirectories, outputDir) {
11+
class ScoverageHtmlWriter(sourceDirectories: Seq[File], outputDir: File, sourceEncoding: Option[String]) extends BaseReportWriter(sourceDirectories, outputDir) {
1212

13+
// for backward compatibility only
14+
def this (sourceDirectories: Seq[File], outputDir: File) {
15+
this(sourceDirectories, outputDir, None);
16+
}
17+
18+
// for backward compatibility only
1319
def this (sourceDirectory: File, outputDir: File) {
1420
this(Seq(sourceDirectory), outputDir)
1521
}
@@ -75,7 +81,7 @@ class ScoverageHtmlWriter(sourceDirectories: Seq[File], outputDir: File) extends
7581
</ul>
7682
<div class="tab-content">
7783
<div class="tab-pane active" id="codegrid">
78-
{xml.Unparsed(new CodeGrid(mfile).highlighted)}
84+
{xml.Unparsed(new CodeGrid(mfile, sourceEncoding).highlighted)}
7985
</div>
8086
<div class="tab-pane" id="statementlist">
8187
{new StatementWriter(mfile).output}

0 commit comments

Comments
 (0)