2012-02-16 13:58:51 +01:00
|
|
|
package sbt
|
|
|
|
|
|
|
|
|
|
sealed trait SourcePosition
|
|
|
|
|
|
2012-02-25 18:01:07 +01:00
|
|
|
sealed trait FilePosition extends SourcePosition {
|
2012-02-16 13:58:51 +01:00
|
|
|
def path: String
|
|
|
|
|
def startLine: Int
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case object NoPosition extends SourcePosition
|
|
|
|
|
|
2012-02-25 18:01:07 +01:00
|
|
|
final case class LinePosition(path: String, startLine: Int) extends FilePosition
|
2012-02-16 13:58:51 +01:00
|
|
|
|
|
|
|
|
final case class LineRange(start: Int, end: Int) {
|
|
|
|
|
def shift(n: Int) = new LineRange(start + n, end + n)
|
|
|
|
|
}
|
|
|
|
|
|
2012-02-25 18:01:07 +01:00
|
|
|
final case class RangePosition(path: String, range: LineRange) extends FilePosition {
|
2012-02-16 13:58:51 +01:00
|
|
|
def startLine = range.start
|
|
|
|
|
}
|