16 def get_offset(pos: T): Option[Int] = Markup.get_int(Markup.OFFSET, pos) |
16 def get_offset(pos: T): Option[Int] = Markup.get_int(Markup.OFFSET, pos) |
17 def get_end_line(pos: T): Option[Int] = Markup.get_int(Markup.END_LINE, pos) |
17 def get_end_line(pos: T): Option[Int] = Markup.get_int(Markup.END_LINE, pos) |
18 def get_end_column(pos: T): Option[Int] = Markup.get_int(Markup.END_COLUMN, pos) |
18 def get_end_column(pos: T): Option[Int] = Markup.get_int(Markup.END_COLUMN, pos) |
19 def get_end_offset(pos: T): Option[Int] = Markup.get_int(Markup.END_OFFSET, pos) |
19 def get_end_offset(pos: T): Option[Int] = Markup.get_int(Markup.END_OFFSET, pos) |
20 def get_file(pos: T): Option[String] = Markup.get_string(Markup.FILE, pos) |
20 def get_file(pos: T): Option[String] = Markup.get_string(Markup.FILE, pos) |
21 def get_id(pos: T): Option[String] = Markup.get_string(Markup.ID, pos) |
21 def get_id(pos: T): Option[Long] = Markup.get_long(Markup.ID, pos) |
22 |
22 |
23 def get_range(pos: T): Option[(Int, Int)] = |
23 def get_range(pos: T): Option[(Int, Int)] = |
24 (get_offset(pos), get_end_offset(pos)) match { |
24 (get_offset(pos), get_end_offset(pos)) match { |
25 case (Some(begin), Some(end)) => Some(begin, end) |
25 case (Some(begin), Some(end)) => Some(begin, end) |
26 case (Some(begin), None) => Some(begin, begin + 1) |
26 case (Some(begin), None) => Some(begin, begin + 1) |
27 case (None, _) => None |
27 case (None, _) => None |
28 } |
28 } |
29 |
29 |
30 object Id { def unapply(pos: T): Option[String] = get_id(pos) } |
30 object Id { def unapply(pos: T): Option[Long] = get_id(pos) } |
31 object Range { def unapply(pos: T): Option[(Int, Int)] = get_range(pos) } |
31 object Range { def unapply(pos: T): Option[(Int, Int)] = get_range(pos) } |
32 } |
32 } |