Function: logview--parse-view-definitions

logview--parse-view-definitions is a natively compiled function defined in logview.el.

Signature

(logview--parse-view-definitions &optional WARN-ABOUT-GARBAGE)

Source Code

;; Defined in /nix/store/3zkn9hgpv447zb8nrg55d9x2ynmmrk40-emacs-packages-deps/share/emacs/site-lisp/elpa/logview-20260218.2013/logview.el
(defun logview--parse-view-definitions (&optional warn-about-garbage)
  (catch 'done
    (let (views
          pending-name
          pending-submode
          pending-index
          filters-from)
      (while t
        (if (or (eobp) (looking-at logview--view-header-regexp))
            (progn (when pending-name
                     (save-excursion
                       (skip-syntax-backward "-" filters-from)
                       (push `(:name    ,pending-name
                               :submode ,pending-submode
                               ,@(when pending-index `(:index ,pending-index))
                               :filters ,(buffer-substring-no-properties filters-from (point)))
                             views)))
                   (when (eobp)
                     (throw 'done (nreverse views)))
                   (setq pending-name    (match-string-no-properties 2)
                         pending-submode nil
                         pending-index   nil)
                   (while (progn (forward-line)
                                 (cond ((looking-at logview--view-submode-regexp)
                                        (setq pending-submode (match-string-no-properties 2)))
                                       ((looking-at logview--view-index-regexp)
                                        (setq pending-index (string-to-number (match-string-no-properties 2)))))))
                   (setq filters-from (point)))
          (when (and warn-about-garbage (null pending-name) (not (looking-at (rx (0+ blank) (opt "#" (0+ nonl)) eol))))
            (if (yes-or-no-p "Non-comment text before the first view will be discarded; continue? ")
                (setq warn-about-garbage nil)
              (keyboard-quit)))
          (forward-line))))))