          (when (= (mod ,counter ,interval) 0)
            (accept-process-output)
            (sit-for 0))))))
+
+(defun ovirt-log-analyzer-visible-p (point)
+  (not (eq (get-char-property point 'invisible) 'yes)))
 
 (defun ovirt-log-analyzer-file-reference ()
   (let ((file-reference (get-text-property (point) 'ovirt-log-analyzer-file-reference)))

     ("Error or warning.*$" 0 font-lock-warning-face keep)
     ("^\\(.*\\)|.*|.*Task(duration=" 1 font-lock-warning-face keep)
     ("^.*|\\(.*\\)|.*Unique" 1 font-lock-warning-face keep)
     ("Task.*|.*$" 0 font-lock-preprocessor-face keep))))

(defvar ovirt-log-analyzer-mode-map
  (let ((map (make-sparse-keymap)))

  (let ((point (funcall search-function (point) 'face)))
    (while (and point
                (< point (point-max))
                (or (not (eq (get-text-property point 'face) 'font-lock-variable-name-face))
                    (not (ovirt-log-analyzer-visible-p point))))
      (setq point (funcall search-function point 'face nil (funcall limit-function))))
    (if (and point
             (< point (point-max)))
