mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-23 10:34:07 +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:
parent
f9be457422
commit
12eb843358
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user