Function: cperl-electric-paren
cperl-electric-paren is an interactive and byte-compiled function
defined in cperl-mode.el.gz.
Signature
(cperl-electric-paren ARG)
Documentation
Insert an opening parenthesis or a matching pair of parentheses.
See cperl-electric-parens.
Argument ARG is the opening parenthesis.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cperl-mode.el.gz
(defun cperl-electric-paren (arg)
"Insert an opening parenthesis or a matching pair of parentheses.
See `cperl-electric-parens'.
Argument ARG is the opening parenthesis."
(interactive "P")
(let ((other-end (if (and cperl-electric-parens-mark
(region-active-p)
(> (mark) (point)))
(save-excursion
(goto-char (mark))
(point-marker))
nil)))
(if (and (cperl-val 'cperl-electric-parens)
(memq last-command-event
(append cperl-electric-parens-string nil))
(>= (save-excursion (cperl-to-comment-or-eol) (point)) (point))
(if (eq last-command-event ?<)
(progn
;; This code is too electric, see Bug#3943.
;; (and abbrev-mode ; later it is too late, may be after `for'
;; (expand-abbrev))
(cperl-after-expr-p nil "{;(,:="))
1))
(progn
(self-insert-command (prefix-numeric-value arg))
(if other-end (goto-char (marker-position other-end)))
(insert (make-string
(prefix-numeric-value arg)
(cdr (assoc last-command-event '((?{ .?})
(?\[ . ?\])
(?\( . ?\))
(?< . ?>))))))
(forward-char (- (prefix-numeric-value arg))))
(self-insert-command (prefix-numeric-value arg)))))