Mercurial > emacs
changeset 111823:6c35da413ade
* lisp/progmodes/which-func.el (which-func-ff-hook): Log the error message.
(which-func-update-1): Distinguish symbols from strings.
(which-function): Stay within 80 columns.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 03 Dec 2010 19:49:49 -0500 |
parents | 7a58c6c26566 |
children | 88e55e239ecc |
files | lisp/ChangeLog lisp/progmodes/which-func.el |
diffstat | 2 files changed, 31 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Dec 03 18:20:27 2010 -0500 +++ b/lisp/ChangeLog Fri Dec 03 19:49:49 2010 -0500 @@ -1,3 +1,9 @@ +2010-12-04 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/which-func.el (which-func-ff-hook): Log the error message. + (which-func-update-1): Distinguish symbols from strings. + (which-function): Stay within 80 columns. + 2010-12-03 Stefan Monnier <monnier@iro.umontreal.ca> * subr.el (with-demoted-errors): Distinguish symbols from strings.
--- a/lisp/progmodes/which-func.el Fri Dec 03 18:20:27 2010 -0500 +++ b/lisp/progmodes/which-func.el Fri Dec 03 19:49:49 2010 -0500 @@ -198,7 +198,7 @@ (or (eq which-func-modes t) (member major-mode which-func-modes)))) - (condition-case nil + (condition-case err (if (and which-func-mode (not (member major-mode which-func-non-auto-modes)) (or (null which-func-maxout) @@ -207,6 +207,7 @@ (setq imenu--index-alist (save-excursion (funcall imenu-create-index-function)))) (error + (message "which-func-ff-hook error: %S" err) (setq which-func-mode nil)))) (defun which-func-update () @@ -225,7 +226,7 @@ (force-mode-line-update))) (error (setq which-func-mode nil) - (error "Error in which-func-update: %s" info)))))) + (error "Error in which-func-update: %S" info)))))) ;;;###autoload (defalias 'which-func-mode 'which-function-mode) @@ -294,29 +295,31 @@ ;; ("submenu" ("name" . marker) ... ). The list can be ;; arbitrarily nested. (while (or alist imstack) - (if alist - (progn - (setq pair (car-safe alist) - alist (cdr-safe alist)) + (if (null alist) + (setq alist (car imstack) + namestack (cdr namestack) + imstack (cdr imstack)) - (cond ((atom pair)) ; skip anything not a cons + (setq pair (car-safe alist) + alist (cdr-safe alist)) - ((imenu--subalist-p pair) - (setq imstack (cons alist imstack) - namestack (cons (car pair) namestack) - alist (cdr pair))) + (cond + ((atom pair)) ; Skip anything not a cons. - ((number-or-marker-p (setq mark (cdr pair))) - (if (>= (setq offset (- (point) mark)) 0) - (if (< offset minoffset) ; find the closest item - (setq minoffset offset - name (funcall - which-func-imenu-joiner-function - (reverse (cons (car pair) - namestack))))))))) - (setq alist (car imstack) - namestack (cdr namestack) - imstack (cdr imstack)))))) + ((imenu--subalist-p pair) + (setq imstack (cons alist imstack) + namestack (cons (car pair) namestack) + alist (cdr pair))) + + ((number-or-marker-p (setq mark (cdr pair))) + (when (and (>= (setq offset (- (point) mark)) 0) + (< offset minoffset)) ; Find the closest item. + (setq minoffset offset + name (if (null which-func-imenu-joiner-function) + (car pair) + (funcall + which-func-imenu-joiner-function + (reverse (cons (car pair) namestack)))))))))))) ;; Try using add-log support. (when (and (null name) (boundp 'add-log-current-defun-function)