1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-24 10:38:38 +00:00

(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.
This commit is contained in:
Richard M. Stallman 1997-07-04 00:16:50 +00:00
parent f9be457422
commit 12eb843358

View File

@ -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 @@ after `show-paren-delay' seconds of Emacs idle time.
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 @@ otherwise)."
: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 @@ otherwise)."
(provide 'paren)
(if show-paren-mode
(show-paren-mode t))
;;; paren.el ends here