From e131e4ffae3b2b31906c9b73ed5e7a621ccfa7c9 Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Wed, 13 Aug 2014 11:21:43 +0800 Subject: [PATCH] * speedbar.el (speedbar-generic-list-tag-p): Allow special elements from imenu. --- lisp/ChangeLog | 5 +++++ lisp/speedbar.el | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a878b936e66..0e4a59b8374 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-08-13 Leo Liu + + * speedbar.el (speedbar-generic-list-tag-p): Allow special + elements from imenu. + 2014-08-11 Glenn Morris * subr.el (with-output-to-temp-buffer): Doc fix; from elisp manual. diff --git a/lisp/speedbar.el b/lisp/speedbar.el index 084767893e4..68970407247 100644 --- a/lisp/speedbar.el +++ b/lisp/speedbar.el @@ -2123,9 +2123,10 @@ cell of the form ( 'DIRLIST . 'FILELIST )." ;; in order to make it look nice. ;; ;; A generic list is of the form: -;; ( ("name" . marker-or-number) <-- one tag at this level -;; ("name" ("name" . mon) ("name" . mon) ) <-- one group of tags -;; ("name" mon ("name" . mon) ) <-- group w/ a position and tags +;; ( ("name" . marker-or-number) <-- one tag at this level +;; ("name" marker-or-number goto-fun . args) <-- one tag at this level +;; ("name" ("name" . mon) ("name" . mon) ) <-- one group of tags +;; ("name" mon ("name" . mon) ) <-- group w/ a position and tags (defun speedbar-generic-list-group-p (sublst) "Non-nil if SUBLST is a group. Groups may optionally contain a position." @@ -2156,6 +2157,8 @@ Groups may optionally contain a position." (and (stringp (car-safe sublst)) (or (and (number-or-marker-p (cdr-safe sublst)) (not (cdr-safe (cdr-safe sublst)))) + (ignore-errors (and (number-or-marker-p (nth 1 sublst)) + (functionp (nth 2 sublst)))) ;; For semantic/bovine items, this is needed (symbolp (car-safe (cdr-safe sublst)))) )) -- 2.39.5