Function: cperl-contract-levels
cperl-contract-levels is an interactive and byte-compiled function
defined in cperl-mode.el.gz.
Signature
(cperl-contract-levels)
Documentation
Find an enclosing group in regexp and contract all the kids.
(Experimental, may change semantics, recheck the result.)
We suppose that the regexp is scanned already.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cperl-mode.el.gz
(defun cperl-contract-levels ()
"Find an enclosing group in regexp and contract all the kids.
\(Experimental, may change semantics, recheck the result.)
We suppose that the regexp is scanned already."
(interactive)
(save-excursion
(condition-case nil
(cperl-regext-to-level-start)
(error ; We are outside outermost group
(goto-char (cperl-make-regexp-x))))
(let ((b (point)) (e (make-marker)))
(forward-sexp 1)
(set-marker e (1- (point)))
(goto-char (1+ b))
(while (re-search-forward "\\(\\\\\\\\\\)\\|(" e t)
(cond
((match-beginning 1) ; Skip
nil)
(t ; Group
(cperl-contract-level)))))))