From 4840b91e41329cd1221e6224142af9ae13fd7606 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 7 Oct 2022 12:25:09 -0400 Subject: [PATCH] Remove aliases of `with-silent-modifications` There were many reinventions of `with-silent-modifications` (tho many of them weren't reinventions but copy&paste of code from font-lock, IIUC). Now that those don't even need to let-bind `inhibit-point-motion-hooks` they're really just obsolete. * lisp/font-lock.el (save-buffer-state): Delete macro. (font-lock-unfontify-region, font-lock-default-fontify-region): Use `with-silent-modifications` instead. (font-lock-after-change-function, font-lock-fontify-block): Don't let-bind `inhibit-point-motion-hooks`. * lisp/htmlfontify.el (hfy-save-buffer-state): Delete macro. (hfy-mark-trailing-whitespace, hfy-unmark-trailing-whitespace): Use `with-silent-modifications` instead. * lisp/jit-lock.el (with-buffer-prepared-for-jit-lock): Delete macro. (jit-lock--debug-fontify, jit-lock-refontify, jit-lock-function) (jit-lock-fontify-now, jit-lock-force-redisplay) (jit-lock-deferred-fontify, jit-lock-context-fontify) (jit-lock-after-change): Use `with-silent-modifications` instead. * lisp/progmodes/antlr-mode.el (save-buffer-state-x): Delete macro. (antlr-hide-actions): Use `with-silent-modifications` instead. * lisp/progmodes/hideshow.el (hs-life-goes-on): Don't let-bind `inhibit-point-motion-hooks`. --- lisp/font-lock.el | 20 ++++---------------- lisp/htmlfontify.el | 24 ++---------------------- lisp/jit-lock.el | 26 ++++++++------------------ lisp/progmodes/antlr-mode.el | 10 +--------- lisp/progmodes/hideshow.el | 32 +++++++++++++++----------------- 5 files changed, 30 insertions(+), 82 deletions(-) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index b6f4150964d..d132de3a322 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -633,16 +633,6 @@ Major/minor modes can set this variable if they know which option applies.") ;; Font Lock mode. -(eval-when-compile - ;; - ;; We use this to preserve or protect things when modifying text properties. - (defmacro save-buffer-state (&rest body) - "Bind variables according to VARLIST and eval BODY restoring buffer state." - (declare (indent 0) (debug t)) - `(let ((inhibit-point-motion-hooks t)) - (with-silent-modifications - ,@body)))) - (defvar-local font-lock-set-defaults nil) ; Whether we have set up defaults. (defun font-lock-specified-p (mode) @@ -1002,7 +992,7 @@ This works by calling `font-lock-fontify-region-function'." (defun font-lock-unfontify-region (beg end) "Unfontify the text between BEG and END. This works by calling `font-lock-unfontify-region-function'." - (save-buffer-state + (with-silent-modifications (funcall font-lock-unfontify-region-function beg end))) (defvar font-lock-flush-function #'font-lock-after-change-function @@ -1152,7 +1142,7 @@ Put first the functions more likely to cause a change and cheaper to compute.") "Fontify the text between BEG and END. If LOUDLY is non-nil, print status messages while fontifying. This function is the default `font-lock-fontify-region-function'." - (save-buffer-state + (with-silent-modifications ;; Use the fontification syntax table, if any. (with-syntax-table (or font-lock-syntax-table (syntax-table)) ;; Extend the region to fontify so that it starts and ends at @@ -1211,8 +1201,7 @@ This function is the default `font-lock-unfontify-region-function'." ;; Called when any modification is made to buffer text. (defun font-lock-after-change-function (beg end &optional old-len) (save-excursion - (let ((inhibit-point-motion-hooks t) - (inhibit-quit t) + (let ((inhibit-quit t) (region (if font-lock-extend-after-change-region-function (funcall font-lock-extend-after-change-region-function beg end old-len)))) @@ -1307,8 +1296,7 @@ no ARG is given and `font-lock-mark-block-function' is nil. If `font-lock-mark-block-function' non-nil and no ARG is given, it is used to delimit the region to fontify." (interactive "P") - (let ((inhibit-point-motion-hooks t) - deactivate-mark) + (let (deactivate-mark) ;; Make sure we have the right `font-lock-keywords' etc. (if (not font-lock-mode) (font-lock-set-defaults)) (save-mark-and-excursion diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el index b1fdbd2c4a3..34092b1417e 100644 --- a/lisp/htmlfontify.el +++ b/lisp/htmlfontify.el @@ -1539,33 +1539,13 @@ See also `hfy-html-enkludge-buffer'." (if (get-text-property (match-beginning 0) 'hfy-quoteme) (replace-match (hfy-html-quote (match-string 1))) )) )) -;; Borrowed from font-lock.el -(defmacro hfy-save-buffer-state (varlist &rest body) - "Bind variables according to VARLIST and eval BODY restoring buffer state. -Do not record undo information during evaluation of BODY." - (declare (indent 1) (debug let)) - (let ((modified (make-symbol "modified"))) - `(let* ,(append varlist - `((,modified (buffer-modified-p)) - (buffer-undo-list t) - (inhibit-read-only t) - (inhibit-point-motion-hooks t) - (inhibit-modification-hooks t) - deactivate-mark - buffer-file-name - buffer-file-truename)) - (progn - ,@body) - (unless ,modified - (restore-buffer-modified-p nil))))) - (defun hfy-mark-trailing-whitespace () "Tag trailing whitespace with a hfy property if it is currently highlighted." (when show-trailing-whitespace (let ((inhibit-read-only t)) (save-excursion (goto-char (point-min)) - (hfy-save-buffer-state nil + (with-silent-modifications (while (re-search-forward "[ \t]+$" nil t) (put-text-property (match-beginning 0) (match-end 0) 'hfy-show-trailing-whitespace t))))))) @@ -1573,7 +1553,7 @@ Do not record undo information during evaluation of BODY." (defun hfy-unmark-trailing-whitespace () "Undo the effect of `hfy-mark-trailing-whitespace'." (when show-trailing-whitespace - (hfy-save-buffer-state nil + (with-silent-modifications (remove-text-properties (point-min) (point-max) '(hfy-show-trailing-whitespace nil))))) diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index 6ef46ad60b7..ed7a3dbba34 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -27,16 +27,6 @@ ;;; Code: - -(eval-when-compile - (defmacro with-buffer-prepared-for-jit-lock (&rest body) - "Execute BODY in current buffer, overriding several variables. -Preserves the `buffer-modified-p' state of the current buffer." - (declare (debug t)) - `(let ((inhibit-point-motion-hooks t)) - (with-silent-modifications - ,@body)))) - ;;; Customization. (defgroup jit-lock nil @@ -328,7 +318,7 @@ like `debug-on-error' and Edebug can be used." (when (buffer-live-p buffer) (with-current-buffer buffer ;; (message "Jit-Debug %s" (buffer-name)) - (with-buffer-prepared-for-jit-lock + (with-silent-modifications (let ((pos (point-min))) (while (progn @@ -365,7 +355,7 @@ Only applies to the current buffer." (defun jit-lock-refontify (&optional beg end) "Force refontification of the region BEG..END (default whole buffer)." - (with-buffer-prepared-for-jit-lock + (with-silent-modifications (save-restriction (widen) (put-text-property (or beg (point-min)) (or end (point-max)) @@ -392,7 +382,7 @@ is active." (push (current-buffer) jit-lock-defer-buffers)) ;; Mark the area as defer-fontified so that the redisplay engine ;; is happy and so that the idle timer can find the places to fontify. - (with-buffer-prepared-for-jit-lock + (with-silent-modifications (put-text-property start (next-single-property-change start 'fontified nil @@ -426,7 +416,7 @@ is active." (defun jit-lock-fontify-now (&optional start end) "Fontify current buffer from START to END. Defaults to the whole buffer. END can be out of bounds." - (with-buffer-prepared-for-jit-lock + (with-silent-modifications (save-excursion (unless start (setq start (point-min))) (setq end (if end (min end (point-max)) (point-max))) @@ -502,7 +492,7 @@ Defaults to the whole buffer. END can be out of bounds." This applies to the buffer associated with marker START." (when (marker-buffer start) (with-current-buffer (marker-buffer start) - (with-buffer-prepared-for-jit-lock + (with-silent-modifications (when (> end (point-max)) (setq end (point-max) start (min start end))) (when (< start (point-min)) @@ -616,7 +606,7 @@ non-nil in a repeated invocation of this function." (when (buffer-live-p buffer) (with-current-buffer buffer ;; (message "Jit-Defer %s" (buffer-name)) - (with-buffer-prepared-for-jit-lock + (with-silent-modifications (let ((pos (point-min))) (while (progn @@ -664,7 +654,7 @@ non-nil in a repeated invocation of this function." jit-lock-context-unfontify-pos 'jit-lock-defer-multiline) (point-min)))) - (with-buffer-prepared-for-jit-lock + (with-silent-modifications ;; Force contextual refontification. (remove-text-properties jit-lock-context-unfontify-pos (point-max) @@ -695,7 +685,7 @@ will take place when text is fontified stealthily." (when (and jit-lock-mode (not memory-full)) (let ((jit-lock-start start) (jit-lock-end end)) - (with-buffer-prepared-for-jit-lock + (with-silent-modifications (run-hook-with-args 'jit-lock-after-change-extend-region-functions start end old-len) ;; Make sure we change at least one char (in case of deletions). diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index 5002a3bbfae..733deebdf53 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el @@ -83,14 +83,6 @@ (require 'easymenu)) (require 'cc-mode) -;; More compile-time-macros -(eval-when-compile - (defmacro save-buffer-state-x (&rest body) ; similar to EMACS/lazy-lock.el - (declare (debug t) (indent 0)) - `(let ((inhibit-point-motion-hooks t)) - (with-silent-modifications - ,@body)))) - (defvar outline-level) (defvar imenu-use-markers) (defvar imenu-create-index-function) @@ -1320,7 +1312,7 @@ actions if ARG is 0 or negative. See `antlr-action-visibility'. Display a message unless optional argument SILENT is non-nil." (interactive "p") - (save-buffer-state-x + (with-silent-modifications (if (> arg 0) (let ((regexp (if (= arg 1) "[]}]" "}")) (diff (and antlr-action-visibility diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index 2a1b6d6b7bb..6de079f05a6 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el @@ -3,7 +3,7 @@ ;; Copyright (C) 1994-2022 Free Software Foundation, Inc. ;; Author: Thien-Thi Nguyen -;; Dan Nicolaescu +;; Dan Nicolaescu ;; Keywords: C C++ java lisp tools editing comments blocks hiding outlines ;; Maintainer-Version: 5.65.2.2 ;; Time-of-Day-Author-Most-Likely-to-be-Recalcitrant: early morning @@ -256,7 +256,7 @@ This has effect only if `search-invisible' is set to `open'." ;;;###autoload (defvar hs-special-modes-alist - (mapcar 'purecopy + (mapcar #'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) @@ -351,17 +351,17 @@ Use the command `hs-minor-mode' to toggle or set this variable.") (defvar hs-minor-mode-map (let ((map (make-sparse-keymap))) ;; These bindings roughly imitate those used by Outline mode. - (define-key map "\C-c@\C-h" 'hs-hide-block) - (define-key map "\C-c@\C-s" 'hs-show-block) - (define-key map "\C-c@\C-\M-h" 'hs-hide-all) - (define-key map "\C-c@\C-\M-s" 'hs-show-all) - (define-key map "\C-c@\C-l" 'hs-hide-level) - (define-key map "\C-c@\C-c" 'hs-toggle-hiding) - (define-key map "\C-c@\C-a" 'hs-show-all) - (define-key map "\C-c@\C-t" 'hs-hide-all) - (define-key map "\C-c@\C-d" 'hs-hide-block) - (define-key map "\C-c@\C-e" 'hs-toggle-hiding) - (define-key map [(shift mouse-2)] 'hs-toggle-hiding) + (define-key map "\C-c@\C-h" #'hs-hide-block) + (define-key map "\C-c@\C-s" #'hs-show-block) + (define-key map "\C-c@\C-\M-h" #'hs-hide-all) + (define-key map "\C-c@\C-\M-s" #'hs-show-all) + (define-key map "\C-c@\C-l" #'hs-hide-level) + (define-key map "\C-c@\C-c" #'hs-toggle-hiding) + (define-key map "\C-c@\C-a" #'hs-show-all) + (define-key map "\C-c@\C-t" #'hs-hide-all) + (define-key map "\C-c@\C-d" #'hs-hide-block) + (define-key map "\C-c@\C-e" #'hs-toggle-hiding) + (define-key map [(shift mouse-2)] #'hs-toggle-hiding) map) "Keymap for hideshow minor mode.") @@ -778,12 +778,10 @@ region (point MAXP)." (defmacro hs-life-goes-on (&rest body) "Evaluate BODY forms if variable `hs-minor-mode' is non-nil. -In the dynamic context of this macro, `inhibit-point-motion-hooks' -and `case-fold-search' are both t." +In the dynamic context of this macro, `case-fold-search' is t." (declare (debug t)) `(when hs-minor-mode - (let ((inhibit-point-motion-hooks t) - (case-fold-search t)) + (let ((case-fold-search t)) ,@body))) (defun hs-find-block-beginning-match () -- 2.39.5