highlight: add flag `include_whole_lines`
authorJean Privat <jean@pryen.org>
Sat, 17 Oct 2015 02:34:24 +0000 (22:34 -0400)
committerJean Privat <jean@pryen.org>
Sat, 17 Oct 2015 14:03:59 +0000 (10:03 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/highlight.nit

index d2be8d8..424824f 100644 (file)
@@ -59,6 +59,14 @@ class HighlightVisitor
        # Default: false.
        var include_loose_tokens = false is writable
 
+       # When highlighting a node, the first and the last lines are fully included.
+       #
+       # If the highlighted node starts (or ends) in the middle of a line,
+       # this flags forces the whole line to be highlighted.
+       #
+       # Default: false
+       var include_whole_lines = false is writable
+
        # The entry-point of the highlighting.
        # Will fill `html` with the generated HTML content.
        fun enter_visit(n: ANode)
@@ -84,6 +92,11 @@ class HighlightVisitor
                        if l.next_looses.not_empty then l = l.next_looses.last
                end
 
+               if include_whole_lines then
+                       f = f.first_real_token_in_line
+                       l = l.last_real_token_in_line
+               end
+
                htmlize(f, l)
        end