]> git.eshelyaron.com Git - emacs.git/commitdiff
Use lexical-binding in hilit-chg.el
authorStefan Kangas <stefan@marxist.se>
Sun, 4 Apr 2021 11:23:40 +0000 (13:23 +0200)
committerStefan Kangas <stefan@marxist.se>
Sun, 4 Apr 2021 11:23:40 +0000 (13:23 +0200)
* lisp/hilit-chg.el: Use lexical-binding.  Remove redundant :group
args.  Doc and formatting fixes.
(highlight-changes-mode, highlight-changes-visible-mode):
Use keyword arguments.
(hilit-chg-display-changes, highlight-changes-rotate-faces):
Quote function symbols as such.
(hilit-x, hilit-y, hilit-e): Define variables on top-level to
silence the byte-compiler.
(highlight-markup-buffers): Improve message format.

lisp/hilit-chg.el

index 89a1a9108c4da1ede7241984053f76bd2b17b79f..3c3c4073986fb4f7642db174b34266d0eec3b5d7 100644 (file)
@@ -1,4 +1,4 @@
-;;; hilit-chg.el --- minor mode displaying buffer changes with special face
+;;; hilit-chg.el --- minor mode displaying buffer changes with special face  -*- lexical-binding: t -*-
 
 ;; Copyright (C) 1998, 2000-2021 Free Software Foundation, Inc.
 
@@ -68,8 +68,7 @@
 ;; (defun my-highlight-changes-mode-hook ()
 ;;   (if highlight-changes-mode
 ;;       (add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t)
-;;     (remove-hook 'write-file-functions 'highlight-changes-rotate-faces t)
-;;     ))
+;;     (remove-hook 'write-file-functions 'highlight-changes-rotate-faces t)))
 
 
 ;;           Automatically enabling Highlight Changes mode
 
 
 ;;     Possible bindings:
-;; (global-set-key '[C-right] 'highlight-changes-next-change)
-;; (global-set-key '[C-left]  'highlight-changes-previous-change)
+;; (global-set-key '[C-right] #'highlight-changes-next-change)
+;; (global-set-key '[C-left]  #'highlight-changes-previous-change)
 ;;
 ;;     Other interactive functions (that could be bound if desired):
-;; highlight-changes-mode
-;; highlight-changes-toggle-visibility
-;; highlight-changes-remove-highlight
-;; highlight-compare-with-file
-;; highlight-compare-buffers
-;; highlight-changes-rotate-faces
+;; `highlight-changes-mode'
+;; `highlight-changes-toggle-visibility'
+;; `highlight-changes-remove-highlight'
+;; `highlight-compare-with-file'
+;; `highlight-compare-buffers'
+;; `highlight-changes-rotate-faces'
 
 
 ;;; Bugs:
   :version "20.4"
   :group 'faces)
 
-
 ;; Face information: How the changes appear.
 
 ;; Defaults for face: red foreground, no change to background,
   '((((min-colors 88) (class color)) (:foreground "red1"))
     (((class color)) (:foreground "red" ))
     (t (:inverse-video t)))
-  "Face used for highlighting changes."
-  :group 'highlight-changes)
+  "Face used for highlighting changes.")
 
 ;; This looks pretty ugly, actually.  Maybe the underline should be removed.
 (defface highlight-changes-delete
   '((((min-colors 88) (class color)) (:foreground "red1" :underline t))
     (((class color)) (:foreground "red" :underline t))
     (t (:inverse-video t)))
-  "Face used for highlighting deletions."
-  :group 'highlight-changes)
+  "Face used for highlighting deletions.")
 
 ;; A (not very good) default list of colors to rotate through.
 (defcustom highlight-changes-colors
   (if (eq (frame-parameter nil 'background-mode) 'light)
       ;; defaults for light background:
-      '( "magenta" "blue" "darkgreen" "chocolate" "sienna4" "NavyBlue")
+      '("magenta" "blue" "darkgreen" "chocolate" "sienna4" "NavyBlue")
       ;; defaults for dark background:
     '("yellow" "magenta" "blue" "maroon" "firebrick" "green4" "DarkOrchid"))
   "Colors used by `highlight-changes-rotate-faces'.
@@ -218,8 +214,7 @@ This list is used if `highlight-changes-face-list' is nil, otherwise that
 variable overrides this list.  If you only care about foreground
 colors then use this, if you want fancier faces then set
 `highlight-changes-face-list'."
-  :type '(repeat color)
-  :group 'highlight-changes)
+  :type '(repeat color))
 
 ;; When you invoke highlight-changes-mode, should highlight-changes-visible-mode
 ;; be on or off?
@@ -230,8 +225,7 @@ colors then use this, if you want fancier faces then set
 This controls the initial value of `highlight-changes-visible-mode'.
 When a buffer is in Highlight Changes mode the function
 `highlight-changes-visible-mode' is used to toggle the mode on or off."
-  :type 'boolean
-  :group 'highlight-changes)
+  :type 'boolean)
 
 ;; These are the strings displayed in the mode-line for the minor mode:
 
@@ -240,16 +234,14 @@ When a buffer is in Highlight Changes mode the function
 This should be set to nil if no indication is desired, or to
 a string with a leading space."
   :type '(choice string
-                (const :tag "None"  nil))
-  :group 'highlight-changes)
+                 (const :tag "None" nil)))
 
 (defcustom highlight-changes-invisible-string " -Chg"
   "The string used when in Highlight Changes mode and changes are hidden.
 This should be set to nil if no indication is desired, or to
 a string with a leading space."
   :type '(choice string
-                (const :tag "None"  nil))
-  :group 'highlight-changes)
+                 (const :tag "None" nil)))
 
 (defcustom highlight-changes-global-modes t
   "Determine whether a buffer is suitable for global Highlight Changes mode.
@@ -279,9 +271,7 @@ modes only."
               (repeat :tag "Modes" :inline t (symbol :tag "mode")))
          (function :menu-tag "determined by function"
                           :value buffer-file-name)
-         (const :tag "none" nil)
-         )
-  :group 'highlight-changes)
+          (const :tag "none" nil)))
 
 (defcustom highlight-changes-global-changes-existing-buffers nil
   "If non-nil, toggling global Highlight Changes mode affects existing buffers.
@@ -290,8 +280,7 @@ created).  However, if `highlight-changes-global-changes-existing-buffers'
 is non-nil, then turning on `global-highlight-changes-mode' will turn on
 Highlight Changes mode in suitable buffers, and turning the mode off will
 remove it from existing buffers."
-  :type 'boolean
-  :group 'highlight-changes)
+  :type 'boolean)
 
 ;; These are for internal use.
 
@@ -320,9 +309,7 @@ through     various faces.
 \\[highlight-compare-with-file] - mark text as changed by comparing this
 buffer with the contents of a file
 \\[highlight-compare-buffers] highlights differences between two buffers."
-  nil                  ;; init-value
-  hilit-chg-string     ;; lighter
-  nil                  ;; keymap
+  :lighter hilit-chg-string
   (if (or (display-color-p)
          (and (fboundp 'x-display-grayscale-p) (x-display-grayscale-p)))
       (progn
@@ -352,13 +339,8 @@ The default value can be customized with variable
 `highlight-changes-visibility-initial-state'.
 
 This command does not itself set Highlight Changes mode."
-
-  t            ;; init-value
-  nil          ;; lighter
-  nil          ;; keymap
-
-  (hilit-chg-update)
-  )
+  :init-value t
+  (hilit-chg-update))
 
 
 (defun hilit-chg-cust-fix-changes-face-list (w _wc &optional event)
@@ -371,12 +353,10 @@ This command does not itself set Highlight Changes mode."
   ;; faces are saved but not to the actual list itself.
   (let ((old-list (widget-value w)))
     (if (member 'default old-list)
-       (let
-           ((p (reverse old-list))
+        (let ((p (reverse old-list))
             (n (length old-list))
             new-name old-name
-            (new-list nil)
-            )
+             (new-list nil))
          (while p
            (setq old-name (car p))
            (setq new-name (intern (format "highlight-changes-%d" n)))
@@ -396,9 +376,7 @@ This command does not itself set Highlight Changes mode."
          (if (equal new-list (widget-value w))
              nil ;; (message "notify: no change!")
            (widget-value-set w new-list)
-           (widget-setup)
-           )
-         )
+            (widget-setup)))
       ;; (message "notify: no default here!")
       ))
   (let ((parent (widget-get w :parent)))
@@ -417,10 +395,8 @@ Otherwise, this list will be constructed when needed from
   :type '(choice
          (repeat
            :notify hilit-chg-cust-fix-changes-face-list
-           face  )
-         (const :tag "Derive from highlight-changes-colors"  nil)
-         )
-  :group 'highlight-changes)
+            face)
+          (const :tag "Derive from highlight-changes-colors"  nil)))
 
 
 (defun hilit-chg-map-changes (func &optional start-position end-position)
@@ -446,7 +422,7 @@ An overlay from BEG to END containing a change face is added
 from the information in the text property of type `hilit-chg'.
 
 This is the opposite of `hilit-chg-hide-changes'."
-  (hilit-chg-map-changes 'hilit-chg-make-ov beg end))
+  (hilit-chg-map-changes #'hilit-chg-make-ov beg end))
 
 
 (defun hilit-chg-make-ov (prop start end)
@@ -467,8 +443,7 @@ This is the opposite of `hilit-chg-hide-changes'."
          (overlay-put ov 'evaporate t)
          ;; We set the change property so we can tell this is one
          ;; of our overlays (so we don't delete someone else's).
-         (overlay-put ov 'hilit-chg t)
-         )
+          (overlay-put ov 'hilit-chg t))
       (error "hilit-chg-make-ov: no face for prop: %s" prop))))
 
 (defun hilit-chg-hide-changes (&optional beg end)
@@ -726,7 +701,7 @@ this, eval the following in the buffer to be saved:
            ;; remove our existing overlays
            (hilit-chg-hide-changes)
            ;; for each change text property, increment it
-           (hilit-chg-map-changes 'hilit-chg-bump-change)
+            (hilit-chg-map-changes #'hilit-chg-bump-change)
            ;; and display them
            (hilit-chg-display-changes))
        (unless modified
@@ -759,7 +734,7 @@ is non-nil."
           (buf-b-read-only (with-current-buffer buf-b buffer-read-only))
           temp-a temp-b)
       (if (and file-a bufa-modified)
-         (if (y-or-n-p (format "Save buffer %s?  " buf-a))
+          (if (y-or-n-p (format "Save buffer %s? " buf-a))
              (with-current-buffer buf-a
                (save-buffer)
                (setq bufa-modified (buffer-modified-p buf-a)))
@@ -768,7 +743,7 @@ is non-nil."
          (setq temp-a (setq file-a (ediff-make-temp-file buf-a nil))))
 
       (if (and file-b bufb-modified)
-         (if (y-or-n-p (format "Save buffer %s?  " buf-b))
+          (if (y-or-n-p (format "Save buffer %s? " buf-b))
              (with-current-buffer buf-b
                (save-buffer)
                (setq bufb-modified (buffer-modified-p buf-b)))
@@ -809,12 +784,11 @@ is non-nil."
       (if temp-a
          (delete-file temp-a))
       (if temp-b
-         (delete-file temp-b)))
-    ))
+          (delete-file temp-b)))))
 
 ;;;###autoload
 (defun highlight-compare-buffers (buf-a buf-b)
-"Compare two buffers and highlight the differences.
+  "Compare two buffers and highlight the differences.
 
 The default is the current buffer and the one in the next window.
 
@@ -835,8 +809,7 @@ changes are made, so \\[highlight-changes-next-change] and
                  (window-buffer (next-window)) t))))
   (let ((file-a (buffer-file-name buf-a))
        (file-b (buffer-file-name buf-b)))
-    (highlight-markup-buffers buf-a file-a buf-b file-b)
-    ))
+    (highlight-markup-buffers buf-a file-a buf-b file-b)))
 
 ;;;###autoload
 (defun highlight-compare-with-file (file-b)
@@ -876,9 +849,11 @@ changes are made, so \\[highlight-changes-next-change] and
                    (find-file-noselect file-b))))
     (highlight-markup-buffers buf-a file-a buf-b file-b (not existing-buf))
     (unless existing-buf
-      (kill-buffer buf-b))
-    ))
+      (kill-buffer buf-b))))
 
+(defvar hilit-x)                      ; placate the byte-compiler
+(defvar hilit-y)
+(defvar hilit-e)
 
 (defun hilit-chg-get-diff-info (buf-a file-a buf-b file-b)
    ;; hilit-e,x,y are set by function hilit-chg-get-diff-list-hk.
@@ -886,8 +861,7 @@ changes are made, so \\[highlight-changes-next-change] and
     (ediff-setup buf-a file-a buf-b file-b
               nil nil   ; buf-c file-C
               '(hilit-chg-get-diff-list-hk)
-              (list (cons 'ediff-job-name 'something))
-              )
+               (list (cons 'ediff-job-name 'something)))
     (ediff-with-current-buffer hilit-e (ediff-really-quit nil))
     (list hilit-x hilit-y)))
 
@@ -895,9 +869,6 @@ changes are made, so \\[highlight-changes-next-change] and
 (defun hilit-chg-get-diff-list-hk ()
   ;; hilit-e/x/y are dynamically bound by hilit-chg-get-diff-info
   ;; which calls this function as a hook.
-  (defvar hilit-x)                      ; placate the byte-compiler
-  (defvar hilit-y)
-  (defvar hilit-e)
   (setq hilit-e (current-buffer))
   (let ((n 0) extent p va vb a b)
     (setq hilit-x nil hilit-y nil)
@@ -931,7 +902,7 @@ changes are made, so \\[highlight-changes-next-change] and
        (setq extent (list (overlay-start (car p))
                           (overlay-end (car p))))
        (setq p (cdr p))
-       (setq hilit-y (append hilit-y (list extent) )))
+        (setq hilit-y (append hilit-y (list extent))))
       (setq n (1+ n)));; while
     ;; ediff-quit doesn't work here.
     ;; No point in returning a value, since this is a hook function.
@@ -961,8 +932,7 @@ This is called when `global-highlight-changes-mode' is turned on."
             (and
              (not (string-match "^[ *]" (buffer-name)))
              (buffer-file-name))))
-         (highlight-changes-mode 1))
-       ))
+          (highlight-changes-mode 1))))
 
 
 ;;;; Desktop support.
@@ -985,8 +955,7 @@ This is called when `global-highlight-changes-mode' is turned on."
 ;;   (message "--- hilit-chg-debug-show ---")
 ;;   (hilit-chg-map-changes (lambda (prop start end)
 ;;                          (message "%d-%d: %s" start end prop))
-;;                        beg end
-;;                        ))
+;;                        beg end))
 ;;
 ;; ================== end of debug ===============