branch: scratch/logview commit 94e63fc6dd150456884a54ca834e9ced7ac443e5 Author: Stefan Monnier <monn...@iro.umontreal.ca> Commit: Stefan Monnier <monn...@iro.umontreal.ca>
(logview-filter-edit-mode): Use font-lock (logview-filter-edit-font-lock-keywords): New var. (logview-filter-edit--font-lock-region): Adjust calling convention. --- logview.el | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/logview.el b/logview.el index 0c328a9cd8..6217dcd231 100644 --- a/logview.el +++ b/logview.el @@ -4305,12 +4305,12 @@ This list is preserved across Emacs session in (define-key map (kbd (car binding)) (cadr binding))) map)) +(defvar logview-filter-edit-font-lock-keywords + '(logview-filter-edit--font-lock-region)) + (define-derived-mode logview-filter-edit-mode nil "Logview Filters" "Major mode for editing filters of a Logview buffer." - (logview-filter-edit--font-lock-region (point-min) (point-max)) - ;; FIXME: Use `font-lock-defaults' as in the main buffer. Not very important, as filter - ;; buffers are usually not large. - (add-hook 'after-change-functions #'logview-filter-edit--font-lock-region t t) + (setq-local font-lock-defaults '(logview-filter-edit-font-lock-keywords t)) (add-hook 'after-change-functions #'logview-filter-edit--schedule-preview t t)) (defun logview-filter-edit-save () @@ -4400,13 +4400,12 @@ only edits after it get discarded." t))) (set-buffer-modified-p nil)) -(defun logview-filter-edit--font-lock-region (region-begin region-end &optional _old-length) +(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 - (goto-char region-begin) (forward-line 0) ;; Never try to parse from the middle of a multiline filter. (while (and (not (bobp)) @@ -4467,7 +4466,9 @@ only edits after it get discarded." t)))) t))) (put-text-property begin end 'face 'error)) - (< (point) region-end)))))))) + (< (point) region-end))))))) + ;; Tell font-lock that it's not worth calling us back for "further matches". + nil) (defun logview-filter-edit--schedule-preview (&rest _ignored) (unless (or logview-filter-edit--preview-timer (eq logview-filter-edit--mode 'views))