src/Tools/jEdit/src/token_markup.scala
changeset 58750 1b4b005d73c1
parent 58749 83b0f633190e
child 58802 3cc68ec558b0
--- a/src/Tools/jEdit/src/token_markup.scala	Tue Oct 21 17:49:51 2014 +0200
+++ b/src/Tools/jEdit/src/token_markup.scala	Tue Oct 21 19:20:48 2014 +0200
@@ -225,26 +225,32 @@
   }
 
   def line_token_iterator(
-      syntax: Outer_Syntax, buffer: JEditBuffer, start_line: Int): Iterator[(Token, Text.Range)] =
+      syntax: Outer_Syntax,
+      buffer: JEditBuffer,
+      start_line: Int,
+      end_line: Int): Iterator[Text.Info[Token]] =
     for {
-      line <- ((start_line max 0) until buffer.getLineCount).iterator
+      line <- Range(start_line max 0, end_line min buffer.getLineCount).iterator
       tokens <- try_line_tokens(syntax, buffer, line).iterator
       starts =
         tokens.iterator.scanLeft(buffer.getLineStartOffset(line))(
           (i, tok) => i + tok.source.length)
-      (tok, i) <- tokens.iterator zip starts
-    } yield (tok, Text.Range(i, i + tok.source.length))
+      (i, tok) <- starts zip tokens.iterator
+    } yield Text.Info(Text.Range(i, i + tok.source.length), tok)
 
   def line_token_reverse_iterator(
-      syntax: Outer_Syntax, buffer: JEditBuffer, start_line: Int): Iterator[(Token, Text.Range)] =
+      syntax: Outer_Syntax,
+      buffer: JEditBuffer,
+      start_line: Int,
+      end_line: Int): Iterator[Text.Info[Token]] =
     for {
-      line <- Range.inclusive(start_line min (buffer.getLineCount - 1), 0, -1).iterator
+      line <- Range(start_line min (buffer.getLineCount - 1), end_line max -1, -1).iterator
       tokens <- try_line_tokens(syntax, buffer, line).iterator
       stops =
         tokens.reverseIterator.scanLeft(buffer.getLineEndOffset(line) min buffer.getLength)(
           (i, tok) => i - tok.source.length)
-      (tok, i) <- tokens.reverseIterator zip stops
-    } yield (tok, Text.Range(i - tok.source.length, i))
+      (i, tok) <- stops zip tokens.reverseIterator
+    } yield Text.Info(Text.Range(i - tok.source.length, i), tok)
 
 
   /* token marker */