From 330de0410ce5be5b54482bf00578771cf821af24 Mon Sep 17 00:00:00 2001 From: Guillaume Martres Date: Tue, 14 Mar 2017 14:28:43 +0100 Subject: 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. --- sbt-bridge/src/xsbt/DelegatingReporter.scala | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'sbt-bridge') 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 -- cgit v1.2.3