;;; cperl-mode.el --- Perl code editing commands for Emacs
;; Copyright (C) 1985, 1986, 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-;; 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+;; 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
;; Free Software Foundation, Inc.
-;; Author: Ilya Zakharevich and Bob Olson
+;; Author: Ilya Zakharevich
+;; Bob Olson
;; Maintainer: Ilya Zakharevich <ilyaz@cpan.org>
;; Keywords: languages, Perl
(save-excursion
(setq insertpos (point-marker))
(goto-char other-end)
- (setq last-command-char ?\{)
+ (setq last-command-event ?\{)
(cperl-electric-lbrace arg insertpos))
(forward-char 1))
;; Check whether we close something "usual" with `}'
- (if (and (eq last-command-char ?\})
+ (if (and (eq last-command-event ?\})
(not
(condition-case nil
(save-excursion
(save-excursion
(skip-chars-backward " \t")
(bolp)))
- (and (eq last-command-char ?\{) ; Do not insert newline
+ (and (eq last-command-event ?\{) ; Do not insert newline
;; if after ")" and `cperl-extra-newline-before-brace'
;; is nil, do not insert extra newline.
(not cperl-extra-newline-before-brace)
(save-excursion
(if insertpos (progn (goto-char insertpos)
(search-forward (make-string
- 1 last-command-char))
+ 1 last-command-event))
(setq insertpos (1- (point)))))
(delete-char -1))))
(if insertpos
(setq cperl-auto-newline nil))
(cperl-electric-brace arg)
(and (cperl-val 'cperl-electric-parens)
- (eq last-command-char ?{)
- (memq last-command-char
+ (eq last-command-event ?{)
+ (memq last-command-event
(append cperl-electric-parens-string nil))
(or (if other-end (goto-char (marker-position other-end)))
t)
- (setq last-command-char ?} pos (point))
+ (setq last-command-event ?} pos (point))
(progn (cperl-electric-brace arg t)
(goto-char pos)))))
(point-marker))
nil)))
(if (and (cperl-val 'cperl-electric-parens)
- (memq last-command-char
+ (memq last-command-event
(append cperl-electric-parens-string nil))
(>= (save-excursion (cperl-to-comment-or-eol) (point)) (point))
;;(not (save-excursion (search-backward "#" beg t)))
- (if (eq last-command-char ?<)
+ (if (eq last-command-event ?<)
(progn
(and abbrev-mode ; later it is too late, may be after `for'
(expand-abbrev))
(if other-end (goto-char (marker-position other-end)))
(insert (make-string
(prefix-numeric-value arg)
- (cdr (assoc last-command-char '((?{ .?})
+ (cdr (assoc last-command-event '((?{ .?})
(?[ . ?])
(?( . ?))
(?< . ?>))))))
(let ((beg (save-excursion (beginning-of-line) (point)))
(other-end (if (and cperl-electric-parens-mark
(cperl-val 'cperl-electric-parens)
- (memq last-command-char
+ (memq last-command-event
(append cperl-electric-parens-string nil))
(cperl-mark-active)
(< (mark) (point)))
p)
(if (and other-end
(cperl-val 'cperl-electric-parens)
- (memq last-command-char '( ?\) ?\] ?\} ?\> ))
+ (memq last-command-event '( ?\) ?\] ?\} ?\> ))
(>= (save-excursion (cperl-to-comment-or-eol) (point)) (point))
;;(not (save-excursion (search-backward "#" beg t)))
)
(if other-end (goto-char other-end))
(insert (make-string
(prefix-numeric-value arg)
- (cdr (assoc last-command-char '((?\} . ?\{)
+ (cdr (assoc last-command-event '((?\} . ?\{)
(?\] . ?\[)
(?\) . ?\()
(?\> . ?\<))))))
Help message may be switched off by setting `cperl-message-electric-keyword'
to nil."
(let ((beg (save-excursion (beginning-of-line) (point)))
- (dollar (and (eq last-command-char ?$)
+ (dollar (and (eq last-command-event ?$)
(eq this-command 'self-insert-command)))
- (delete (and (memq last-command-char '(?\s ?\n ?\t ?\f))
+ (delete (and (memq last-command-event '(?\s ?\n ?\t ?\f))
(memq this-command '(self-insert-command newline))))
my do)
(and (save-excursion
(forward-char 1)
(delete-char 1)))
(search-backward ")")
- (if (eq last-command-char ?\()
+ (if (eq last-command-event ?\()
(progn ; Avoid "if (())"
(delete-backward-char 1)
(delete-backward-char -1))))
(defun cperl-electric-pod ()
"Insert a POD chunk appropriate after a =POD directive."
- (let ((delete (and (memq last-command-char '(?\s ?\n ?\t ?\f))
+ (let ((delete (and (memq last-command-event '(?\s ?\n ?\t ?\f))
(memq this-command '(self-insert-command newline))))
head1 notlast name p really-delete over)
(and (save-excursion
(interactive "P")
(let ((end (point))
(auto (and cperl-auto-newline
- (or (not (eq last-command-char ?:))
+ (or (not (eq last-command-event ?:))
cperl-auto-newline-after-colon)))
insertpos)
(if (and ;;(not arg)
;; Colon is special only after a label
;; So quickly rule out most other uses of colon
;; and do no indentation for them.
- (and (eq last-command-char ?:)
+ (and (eq last-command-event ?:)
(save-excursion
(forward-word 1)
(skip-chars-forward " \t")
face head-face here-face b e bb tag qtag b1 e1 argument i c tail tb
is-REx is-x-REx REx-subgr-start REx-subgr-end was-subgr i2 hairy-RE
(case-fold-search nil) (inhibit-read-only t) (buffer-undo-list t)
- (modified (buffer-modified-p)) overshoot is-o-REx
+ (modified (buffer-modified-p)) overshoot is-o-REx name
(after-change-functions nil)
(cperl-font-locking t)
(use-syntax-state (and cperl-syntax-state
(cons cons1 (car cperl-hierarchy)))))))
(end-of-line))))
+(declare-function x-popup-menu "xmenu.c" (position menu))
+
(defun cperl-tags-hier-init (&optional update)
"Show hierarchical menu of classes and methods.
Finds info about classes by a scan of loaded TAGS files.