aboutsummaryrefslogtreecommitdiff
path: root/sbt-bridge
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2017-03-14 14:28:43 +0100
committerGuillaume Martres <smarter@ubuntu.com>2017-03-14 14:28:44 +0100
commit330de0410ce5be5b54482bf00578771cf821af24 (patch)
tree329db30af452e4805a91f0b21d8a077c69a6ee4e /sbt-bridge
parente84d7791a2a96808afec252e8808efb31c8ea874 (diff)
downloaddotty-330de0410ce5be5b54482bf00578771cf821af24.tar.gz
dotty-330de0410ce5be5b54482bf00578771cf821af24.tar.bz2
dotty-330de0410ce5be5b54482bf00578771cf821af24.zip
sbt-bridge: Fix lineContent, pointer, pointerSpace
These changes were done to imitate how these fields are set in https://github.com/sbt/sbt/blob/0.13/compile/interface/src/main/scala/xsbt/DelegatingReporter.scala The main issue this fixes is sbt displaying the ^ pointer way too far, because the number of spaces was set from the beginning of the file instead of the beginning of the line.
Diffstat (limited to 'sbt-bridge')
-rw-r--r--sbt-bridge/src/xsbt/DelegatingReporter.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/sbt-bridge/src/xsbt/DelegatingReporter.scala b/sbt-bridge/src/xsbt/DelegatingReporter.scala
index 4d6462550..e637ddcf3 100644
--- a/sbt-bridge/src/xsbt/DelegatingReporter.scala
+++ b/sbt-bridge/src/xsbt/DelegatingReporter.scala
@@ -35,10 +35,12 @@ final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter
val sourceFile: Maybe[java.io.File] = maybe(Option(src.file.file))
val sourcePath: Maybe[String] = maybe(Option(src.file.path))
val line: Maybe[Integer] = Maybe.just(pos.line)
- val lineContent: String = pos.lineContent
+ val lineContent: String = pos.lineContent.stripLineEnd
val offset: Maybe[Integer] = Maybe.just(pos.point)
- val pointer: Maybe[Integer] = Maybe.just(pos.point)
- val pointerSpace: Maybe[String] = Maybe.just(" " * pos.point)
+ val pointer: Maybe[Integer] = Maybe.just(pos.point - src.startOfLine(pos.point))
+ val pointerSpace: Maybe[String] = Maybe.just(
+ ((lineContent: Seq[Char]).take(pointer.get).map { case '\t' => '\t'; case x => ' ' }).mkString
+ )
}
} else
noPosition