elisp: Blinking
37.21 Blinking Parentheses
==========================
This section describes the mechanism by which Emacs shows a matching
open parenthesis when the user inserts a close parenthesis.
-- Variable: blink-paren-function
The value of this variable should be a function (of no arguments)
to be called whenever a character with close parenthesis syntax is
inserted. The value of ‘blink-paren-function’ may be ‘nil’, in
which case nothing is done.
-- User Option: blink-matching-paren
If this variable is ‘nil’, then ‘blink-matching-open’ does nothing.
-- User Option: blink-matching-paren-distance
This variable specifies the maximum distance to scan for a matching
parenthesis before giving up.
-- User Option: blink-matching-delay
This variable specifies the number of seconds to keep indicating
the matching parenthesis. A fraction of a second often gives good
results, but the default is 1, which works on all systems.
-- Command: blink-matching-open
This function is the default value of ‘blink-paren-function’. It
assumes that point follows a character with close parenthesis
syntax and applies the appropriate effect momentarily to the
matching opening character. If that character is not already on
the screen, it displays the character’s context in the echo area.
To avoid long delays, this function does not search farther than
‘blink-matching-paren-distance’ characters.
Here is an example of calling this function explicitly.
(defun interactive-blink-matching-open ()
"Indicate momentarily the start of parenthesized sexp before point."
(interactive)
(let ((blink-matching-paren-distance
(buffer-size))
(blink-matching-paren t))
(blink-matching-open)))