Function: electric-pair-syntax-info
electric-pair-syntax-info is a byte-compiled function defined in
elec-pair.el.gz.
Signature
(electric-pair-syntax-info COMMAND-EVENT)
Documentation
Calculate a list (SYNTAX PAIR UNCONDITIONAL STRING-OR-COMMENT-START).
SYNTAX is COMMAND-EVENT's syntax character. PAIR is
COMMAND-EVENT's pair. UNCONDITIONAL indicates the variables
electric-pair-pairs or electric-pair-text-pairs were used to
lookup syntax. STRING-OR-COMMENT-START indicates that point is
inside a comment or string.
Source Code
;; Defined in /usr/src/emacs/lisp/elec-pair.el.gz
(defun electric-pair-syntax-info (command-event)
"Calculate a list (SYNTAX PAIR UNCONDITIONAL STRING-OR-COMMENT-START).
SYNTAX is COMMAND-EVENT's syntax character. PAIR is
COMMAND-EVENT's pair. UNCONDITIONAL indicates the variables
`electric-pair-pairs' or `electric-pair-text-pairs' were used to
lookup syntax. STRING-OR-COMMENT-START indicates that point is
inside a comment or string."
(let* ((pre-string-or-comment (or (bobp)
(nth 8 (save-excursion
(syntax-ppss (1- (point)))))))
(post-string-or-comment (nth 8 (syntax-ppss (point))))
(string-or-comment (and post-string-or-comment
pre-string-or-comment))
(table (if string-or-comment
electric-pair-text-syntax-table
(syntax-table)))
(table-syntax-and-pair (with-syntax-table table
(list (char-syntax command-event)
(or (matching-paren command-event)
command-event))))
(fallback (if string-or-comment
(append electric-pair-text-pairs
electric-pair-pairs)
electric-pair-pairs))
(direct (assq command-event fallback))
(reverse (rassq command-event fallback)))
(cond
((memq (car table-syntax-and-pair)
'(?\" ?\( ?\) ?\$))
(append table-syntax-and-pair (list nil string-or-comment)))
(direct (if (eq (car direct) (cdr direct))
(list ?\" command-event t string-or-comment)
(list ?\( (cdr direct) t string-or-comment)))
(reverse (list ?\) (car reverse) t string-or-comment)))))