Function: show-paren--locate-near-paren
show-paren--locate-near-paren is a byte-compiled function defined in
paren.el.gz.
Signature
(show-paren--locate-near-paren)
Documentation
Locate an unescaped paren "near" point to show.
If one is found, return the cons (DIR . OUTSIDE), where DIR is 1 for an open paren, -1 for a close paren, and OUTSIDE is the buffer position of the outside of the paren. Otherwise return nil.
Source Code
;; Defined in /usr/src/emacs/lisp/paren.el.gz
(defun show-paren--locate-near-paren ()
"Locate an unescaped paren \"near\" point to show.
If one is found, return the cons (DIR . OUTSIDE), where DIR is 1
for an open paren, -1 for a close paren, and OUTSIDE is the buffer
position of the outside of the paren. Otherwise return nil."
(let* ((ind-pos (save-excursion (back-to-indentation) (point)))
(eol-pos
(save-excursion
(end-of-line) (skip-chars-backward " \t" ind-pos) (point)))
(before (show-paren--categorize-paren (1- (point))))
(after (show-paren--categorize-paren (point))))
(cond
;; Point is immediately outside a paren.
((eq (car before) -1) before)
((eq (car after) 1) after)
;; Point is immediately inside a paren.
((and show-paren-when-point-inside-paren before))
((and show-paren-when-point-inside-paren after))
;; Point is in the whitespace before the code.
((and show-paren-when-point-in-periphery
(<= (point) ind-pos))
(or (show-paren--categorize-paren ind-pos)
(show-paren--categorize-paren (1- eol-pos))))
;; Point is in the whitespace after the code.
((and show-paren-when-point-in-periphery
(>= (point) eol-pos))
(show-paren--categorize-paren (1- eol-pos))))))