aboutsummaryrefslogtreecommitdiff
path: root/sbt-bridge/src/xsbt/DelegatingReporter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'sbt-bridge/src/xsbt/DelegatingReporter.scala')
-rw-r--r--sbt-bridge/src/xsbt/DelegatingReporter.scala19
1 files changed, 12 insertions, 7 deletions
diff --git a/sbt-bridge/src/xsbt/DelegatingReporter.scala b/sbt-bridge/src/xsbt/DelegatingReporter.scala
index 770d6b2c7..e704a29c9 100644
--- a/sbt-bridge/src/xsbt/DelegatingReporter.scala
+++ b/sbt-bridge/src/xsbt/DelegatingReporter.scala
@@ -28,13 +28,13 @@ final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter
}
val position = new Position {
- def line: Maybe[Integer] = Maybe.nothing()
- def lineContent: String = ""
- def offset: Maybe[Integer] = Maybe.nothing()
- def pointer: Maybe[Integer] = Maybe.nothing()
- def pointerSpace: Maybe[String] = Maybe.nothing()
- def sourceFile: Maybe[java.io.File] = Maybe.nothing()
- def sourcePath: Maybe[String] = Maybe.nothing()
+ def line: Maybe[Integer] = Maybe.just(cont.pos.line)
+ def lineContent: String = cont.pos.lineContent
+ def offset: Maybe[Integer] = Maybe.just(cont.pos.point)
+ def pointer: Maybe[Integer] = Maybe.just(cont.pos.point)
+ def pointerSpace: Maybe[String] = Maybe.just(" " * cont.pos.point)
+ def sourceFile: Maybe[java.io.File] = maybe(Option(cont.pos.source.file.file))
+ def sourcePath: Maybe[String] = maybe(Option(cont.pos.source.file.file).map(_.getPath))
}
val sb = new StringBuilder()
@@ -45,4 +45,9 @@ final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter
delegate.log(position, sb.toString(), severity)
}
+
+ private[this] def maybe[T](opt: Option[T]): Maybe[T] = opt match {
+ case None => Maybe.nothing[T]
+ case Some(s) => Maybe.just[T](s)
+ }
}