location: add pstart and pend
[nit.git] / src / location.nit
index e392ff0..26b6fa1 100644 (file)
@@ -64,14 +64,20 @@ class Location
                _column_end = column_e
        end
 
+       # The index in the start character in the source
+       fun pstart: Int do return file.line_starts[line_start-1] + column_start-1
+
+       # The index on the end character in the source
+       fun pend: Int do return file.line_starts[line_end-1] + column_end-1
+
        # The verbatim associated text in the source-file
        fun text: String
        do
                var res = self.text_cache
                if res != null then return res
                var l = self
-               var pstart = l.file.line_starts[l.line_start-1] + l.column_start-1
-               var pend = l.file.line_starts[l.line_end-1] + l.column_end-1
+               var pstart = self.pstart
+               var pend = self.pend
                res = l.file.string.substring(pstart, pend-pstart+1)
                self.text_cache = res
                return res
@@ -153,10 +159,10 @@ class Location
        end
 
        # Return the associated line with the location highlihted with color and a carret under the starting position
-       # `color' must be and terminal escape sequence used as "{escape}[{color}m;"
-       # "0;31" for red
-       # "1;31" for bright red
-       # "0;32" for green
+       # `color` must be and terminal escape sequence used as `"{escape}[{color}m;"`
+       # * `"0;31"` for red
+       # * `"1;31"` for bright red
+       # * `"0;32"` for green
        fun colored_line(color: String): String
        do
                var esc = 27.ascii