changeset 18582:fd88d8f82bbc

(show-paren-idle-timer): New defvar. (show-paren-mode): Add :initialize attr in the defcustom. Test the value at end of file, and turn on the mode if true.
author Richard M. Stallman <rms@gnu.org>
date Fri, 04 Jul 1997 00:16:50 +0000
parents 45f27efe77c7
children 66e7a91e32ef
files lisp/paren.el
diffstat 1 files changed, 32 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/paren.el	Fri Jul 04 00:13:36 1997 +0000
+++ b/lisp/paren.el	Fri Jul 04 00:16:50 1997 +0000
@@ -40,39 +40,6 @@
 ;; This is the overlay used to highlight the closeparen right before point.
 (defvar show-paren-overlay-1 nil)
 
-(defvar show-paren-idle-timer nil)
-
-(defvar show-paren-mode)  ;; Real definition comes later.
-
-;;;###autoload
-(defun show-paren-mode (&optional arg)
-  "Toggle Show Paren mode.
-With prefix ARG, turn Show Paren mode on if and only if ARG is positive.
-Returns the new status of Show Paren mode (non-nil means on).
-
-When Show Paren mode is enabled, any matching parenthesis is highlighted
-in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
-  (interactive "P")
-  (when window-system
-    (let ((on-p (if arg
-		    (> (prefix-numeric-value arg) 0)
-		  (not show-paren-mode))))
-      (setq blink-matching-paren-on-screen (not on-p))
-      (when show-paren-idle-timer
-	(cancel-timer show-paren-idle-timer))
-      (if on-p
-	  (setq show-paren-idle-timer (run-with-idle-timer
-				       show-paren-delay t
-				       'show-paren-function))
-	(and show-paren-overlay (overlay-buffer show-paren-overlay)
-	     (delete-overlay show-paren-overlay))
-	(and show-paren-overlay-1 (overlay-buffer show-paren-overlay-1)
-	     (delete-overlay show-paren-overlay-1)))
-      (setq show-paren-mode on-p))))
-
-;; Naughty hack.  This variable was originally a `defvar' to keep track of
-;; whether Show Paren mode was turned on or not.  As a `defcustom' with
-;; special `:set' and `:require' forms, we can provide custom mode control.
 (defcustom show-paren-mode nil
   "Toggle Show Paren mode.
 When Show Paren mode is enabled, any matching parenthesis is highlighted
@@ -80,6 +47,7 @@
 You must modify via \\[customize] for this variable to have an effect."
   :set (lambda (symbol value)
 	 (show-paren-mode (or value 0)))
+  :initialize 'custom-initialize-default
   :type 'boolean
   :group 'paren-showing
   :require 'paren)
@@ -114,6 +82,34 @@
   :group 'faces
   :group 'paren-showing)
 
+(defvar show-paren-idle-timer nil)
+
+;;;###autoload
+(defun show-paren-mode (&optional arg)
+  "Toggle Show Paren mode.
+With prefix ARG, turn Show Paren mode on if and only if ARG is positive.
+Returns the new status of Show Paren mode (non-nil means on).
+
+When Show Paren mode is enabled, any matching parenthesis is highlighted
+in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
+  (interactive "P")
+  (when window-system
+    (let ((on-p (if arg
+		    (> (prefix-numeric-value arg) 0)
+		  (not show-paren-mode))))
+      (setq blink-matching-paren-on-screen (not on-p))
+      (when show-paren-idle-timer
+	(cancel-timer show-paren-idle-timer))
+      (if on-p
+	  (setq show-paren-idle-timer (run-with-idle-timer
+				       show-paren-delay t
+				       'show-paren-function))
+	(and show-paren-overlay (overlay-buffer show-paren-overlay)
+	     (delete-overlay show-paren-overlay))
+	(and show-paren-overlay-1 (overlay-buffer show-paren-overlay-1)
+	     (delete-overlay show-paren-overlay-1)))
+      (setq show-paren-mode on-p))))
+
 ;; Find the place to show, if there is one,
 ;; and show it until input arrives.
 (defun show-paren-function ()
@@ -212,4 +208,7 @@
 
 (provide 'paren)
 
+(if show-paren-mode
+    (show-paren-mode t))
+
 ;;; paren.el ends here