]> git.eshelyaron.com Git - emacs.git/commitdiff
New `electric-pair-local-mode'
authorTom Willemse <tom@ryuslash.org>
Sat, 28 Mar 2015 14:43:33 +0000 (14:43 +0000)
committerJoão Távora <joaotavora@gmail.com>
Sat, 28 Mar 2015 15:16:13 +0000 (15:16 +0000)
Fixes: big#19528
* lisp/elec-pair.el (electric-pair-local-mode): New command.
(electric-pair-mode): Mention `electric-pair-local-mode' in the
docstring.

doc/emacs/programs.texi
etc/NEWS
lisp/ChangeLog
lisp/elec-pair.el

index b161a0cc63b542f5a2bea1c7c80b304489fba339..1fffa233e56e65f10685b755e3b98648705397f7 100644 (file)
@@ -870,7 +870,9 @@ mode to skip whitespace forward before deciding whether to skip over
 the closing delimiter.
 @end itemize
 
-To toggle Electric Pair mode, type @kbd{M-x electric-pair-mode}.
+To toggle Electric Pair mode, type @kbd{M-x electric-pair-mode}.  To
+toggle the mode in a single buffer, use @kbd{M-x
+electric-pair-local-mode}.
 
 @node Comments
 @section Manipulating Comments
index 396335edffcfa8a5ff7247d49d9a0a60d4a8065f..6de8f030d94218ffae51e3212c9ec75fe8918923 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -215,6 +215,9 @@ Unicode standards.
 
 ** You can access `mouse-buffer-menu' (C-down-mouse-1) using C-f10.
 
++++
+** New buffer-local `electric-pair-local-mode'.
+
 \f
 * Changes in Specialized Modes and Packages in Emacs 25.1
 ** xterm-mouse-mode now supports mouse-tracking (if your xterm supports it).
index 488abb1b39bbeee5feec221a1f096c88707a7ef0..40a57902d1d447463052a0e3378cc7597320a951 100644 (file)
@@ -1,3 +1,9 @@
+2015-03-28  Tom Willemse  <tom@ryuslash.org>
+
+       * elec-pair.el (electric-pair-local-mode): New command.
+       (electric-pair-mode): Mention `electric-pair-local-mode' in the
+       docstring.
+
 2015-03-28  Jan Djärv  <jan.h.d@swipnet.se>
 
        * emacs-lisp/package.el (package-refresh-contents): Add a message at
index 2cede62ab4f0a92d1b3d4336387347d8447d4e31..562b29467c1f81ebab0e946d1c266184571cd4bb 100644 (file)
@@ -557,7 +557,8 @@ the mode if ARG is omitted or nil.
 
 Electric Pair mode is a global minor mode.  When enabled, typing
 an open parenthesis automatically inserts the corresponding
-closing parenthesis.  (Likewise for brackets, etc.)."
+closing parenthesis.  (Likewise for brackets, etc.). To toggle
+the mode in a single buffer, use `electric-pair-local-mode'."
   :global t :group 'electricity
   (if electric-pair-mode
       (progn
@@ -571,6 +572,19 @@ closing parenthesis.  (Likewise for brackets, etc.)."
     (remove-hook 'self-insert-uses-region-functions
                  #'electric-pair-will-use-region)))
 
+;;;###autoload
+(define-minor-mode electric-pair-local-mode
+  "Toggle `electric-pair-mode' only in this buffer."
+  :variable (buffer-local-value 'electric-pair-mode (current-buffer))
+  (cond
+   ((eq electric-pair-mode (default-value 'electric-pair-mode))
+    (kill-local-variable 'electric-pair-mode))
+   ((not (default-value 'electric-pair-mode))
+    ;; Locally enabled, but globally disabled.
+    (electric-pair-mode 1)               ; Setup the hooks.
+    (setq-default electric-pair-mode nil) ; But keep it globally disabled.
+    )))
+
 (provide 'elec-pair)
 
 ;;; elec-pair.el ends here