]> git.eshelyaron.com Git - emacs.git/commitdiff
Support the old `blink-matching-paren' behavior
authorDmitry Gutov <dgutov@yandex.ru>
Fri, 14 Mar 2014 18:01:39 +0000 (20:01 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Fri, 14 Mar 2014 18:01:39 +0000 (20:01 +0200)
* lisp/simple.el (blink-matching-paren): Describe the new value,
`jump', enabling the old behavior.
(blink-matching-open): Use that value.

Fixes: debbugs:17008
etc/NEWS
lisp/ChangeLog
lisp/simple.el

index 04796bf37e2abd4e3dcc0bb66376218401e7a8b1..3d69fe90b20226a20b79d2d2b8be9b77fc2a52a9 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -423,6 +423,11 @@ macros in registers.
 This searches the region for identical lines, and removes all but one
 copy of each repeated line.  The lines need not be sorted.
 
+---
+** `blink-matching-paren' now only highlights the matching open-paren
+by default, instead of moving cursor.  Set this variable to `jump' to
+enable the old behavior.
+
 \f
 * Changes in Specialized Modes and Packages in Emacs 24.4
 
index e1d98e3f18a7243bfb4f1fe206bd7f4bab87286d..769b77809bcdd61a1cc87b498838ed279f445604 100644 (file)
@@ -1,3 +1,9 @@
+2014-03-14  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * simple.el (blink-matching-paren): Describe the new value,
+       `jump', enabling the old behavior.
+       (blink-matching-open): Use that value.  (Bug#17008)
+
 2014-03-14  Glenn Morris  <rgm@gnu.org>
 
        * finder.el (finder-no-scan-regexp): Add leim-list.
index 881a633f9722d247b3068e3326786108e92eb507..d84708217b49c64874c8125533edc3aeac38c02d 100644 (file)
@@ -6341,8 +6341,12 @@ If called from Lisp, enable the mode if ARG is omitted or nil."
   :group 'paren-matching)
 
 (defcustom blink-matching-paren t
-  "Non-nil means show matching open-paren when close-paren is inserted."
-  :type 'boolean
+  "Non-nil means show matching open-paren when close-paren is inserted.
+If t, highlight the paren.  If `jump', move cursor to its position."
+  :type '(choice
+          (const :tag "Disable" nil)
+          (const :tag "Highlight" t)
+          (const :tag "Move cursor" jump))
   :group 'paren-blinking)
 
 (defcustom blink-matching-paren-on-screen t
@@ -6452,17 +6456,21 @@ The function should return non-nil if the two tokens do not match.")
             (message "No matching parenthesis found"))))
        ((not blinkpos) nil)
        ((pos-visible-in-window-p blinkpos)
-        ;; Matching open within window, temporarily highlight char
-        ;; after blinkpos but only if `blink-matching-paren-on-screen'
+        ;; Matching open within window, temporarily move to or highlight
+        ;; char after blinkpos but only if `blink-matching-paren-on-screen'
         ;; is non-nil.
         (and blink-matching-paren-on-screen
              (not show-paren-mode)
-             (unwind-protect
-                 (progn
-                   (move-overlay blink-matching--overlay blinkpos (1+ blinkpos)
-                                 (current-buffer))
+             (if (eq blink-matching-paren 'jump)
+                 (save-excursion
+                   (goto-char blinkpos)
                    (sit-for blink-matching-delay))
-               (delete-overlay blink-matching--overlay))))
+               (unwind-protect
+                   (progn
+                     (move-overlay blink-matching--overlay blinkpos (1+ blinkpos)
+                                   (current-buffer))
+                     (sit-for blink-matching-delay))
+                 (delete-overlay blink-matching--overlay)))))
        (t
         (save-excursion
           (goto-char blinkpos)