Function: logview-filter-edit--font-lock-region

logview-filter-edit--font-lock-region is a natively compiled function defined in logview.el.

Signature

(logview-filter-edit--font-lock-region REGION-END)

Source Code

;; Defined in /nix/store/3zkn9hgpv447zb8nrg55d9x2ynmmrk40-emacs-packages-deps/share/emacs/site-lisp/elpa/logview-20260218.2013/logview.el
(defun logview-filter-edit--font-lock-region (region-end)
  (save-excursion
    (save-match-data
      ;; Not even in a Logview mode buffer, not using `std'.
      (logview--temporarily-widening
        (with-silent-modifications
          (forward-line 0)
          ;; Never try to parse from the middle of a multiline filter.
          (while (and (not (bobp))
                      (looking-at "\\.\\. "))
            (forward-line -1))
          (logview--iterate-filter-buffer-lines
           (lambda (type line-begin begin end)
             (unless (pcase type
                       (`nil
                        (when (eq logview-filter-edit--mode 'views)
                          (save-excursion
                            (goto-char line-begin)
                            (cond ((looking-at logview--view-header-regexp)
                                   (put-text-property (match-beginning 1) (match-end 1) 'face 'font-lock-keyword-face)
                                   (put-text-property (match-beginning 2) (match-end 2) 'face 'font-lock-function-name-face)
                                   t)
                                  ((looking-at logview--view-submode-regexp)
                                   (put-text-property (match-beginning 1) (match-end 1) 'face 'font-lock-keyword-face)
                                   (let ((submode-name (match-string-no-properties 2)))
                                     (put-text-property (match-beginning 2) (match-end 2) 'face (if (or (assoc submode-name logview-std-submodes)
                                                                                                        (assoc submode-name logview-additional-submodes))
                                                                                                    'font-lock-variable-name-face
                                                                                                  'error)))
                                   t)
                                  ((looking-at logview--view-index-regexp)
                                   (put-text-property (match-beginning 1) (match-end 1) 'face 'font-lock-keyword-face)
                                   (put-text-property (match-beginning 2) (match-end 2) 'face 'font-lock-constant-face)
                                   t)))))
                       ("#"
                        (put-text-property begin end 'face 'font-lock-comment-face)
                        t)
                       (""
                        (put-text-property begin end 'face nil)
                        t)
                       ((or "lv" "LV")
                        (when (memq logview-filter-edit--mode '(main-filters views))
                          (put-text-property line-begin begin 'face 'logview-edit-filters-type-prefix)
                          (let ((level-string (buffer-substring-no-properties begin end))
                                (known-levels (with-current-buffer logview-filter-edit--parent-buffer
                                                logview--submode-level-data)))
                            (while (and level-string known-levels)
                              (if (string= (caar known-levels) level-string)
                                  (setq level-string nil)
                                (setq known-levels (cdr known-levels))))
                            (put-text-property begin end 'face (if level-string 'error nil)))
                          t))
                       (_
                        (when (or (memq logview-filter-edit--mode '(main-filters views)) (member type '("t+" "t-")))
                          (let* ((valid (logview--valid-regexp-p (logview--filter-regexp begin end))))
                            (goto-char begin)
                            (while (let ((from (point)))
                                     (put-text-property (- from 3) from 'face 'logview-edit-filters-type-prefix)
                                     (forward-line)
                                     (put-text-property from (if (bolp) (logview--character-back (point)) (point))
                                                        'face (unless valid 'error))
                                     (when (< (point) end)
                                       (forward-char 3)
                                       t))))
                          t)))
               (put-text-property begin end 'face 'error))
             (< (point) region-end)))))))
  ;; Tell font-lock that it's not worth calling us back for "further matches".
  nil)