diff options
Diffstat (limited to 'lisp/paren.el')
-rw-r--r-- | lisp/paren.el | 65 |
1 files changed, 32 insertions, 33 deletions
diff --git a/lisp/paren.el b/lisp/paren.el index 893407b96c1..859049d6183 100644 --- a/lisp/paren.el +++ b/lisp/paren.el @@ -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 |