[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/breadcrumb 7444e391c8: Fix #17: Sometimes the cdr of an
From: |
ELPA Syncer |
Subject: |
[elpa] externals/breadcrumb 7444e391c8: Fix #17: Sometimes the cdr of an imenu node is an overlay |
Date: |
Wed, 13 Sep 2023 15:57:37 -0400 (EDT) |
branch: externals/breadcrumb
commit 7444e391c86265bea76649b2bcfe40fe3a2ecbd0
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Fix #17: Sometimes the cdr of an imenu node is an overlay
Semantic/CEDET does this, apparently (I couldn't get it to in my
machine). Anyway, the overlay strat is not as powerful as
breadcrumb-region, since it only seems to apply to leaf nodes.
So best to keep the code branching to bc--ipath-plain and catch the
overlay there.
* breadcrumb.el (bc--ipath-plain): Rework.
---
breadcrumb.el | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/breadcrumb.el b/breadcrumb.el
index 12195c69d3..7e3546b827 100644
--- a/breadcrumb.el
+++ b/breadcrumb.el
@@ -196,7 +196,15 @@ These structures don't have a `breadcrumb-region' property
on."
(put-text-property 0 1 'breadcrumb-siblings (cdr siblings)
(car ipath))
(setq bc--ipath-plain-cache
(vconcat bc--ipath-plain-cache
- `[,(cons (cdr n) ipath)])))))
+ `[,(cons
+ ;; See github#17 and docstring of
+ ;; `imenu--index-alist' for the
+ ;; "overlay" edge case.
+ (cl-etypecase (cdr n)
+ (number (cdr n))
+ (marker (cdr n))
+ (overlay (overlay-start (cdr n))))
+ ipath)])))))
(unless bc--ipath-plain-cache
(mapc (lambda (i) (dfs i nil index-alist)) index-alist)
(setq bc--ipath-plain-cache (cl-sort bc--ipath-plain-cache #'< :key
#'car)))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/breadcrumb 7444e391c8: Fix #17: Sometimes the cdr of an imenu node is an overlay,
ELPA Syncer <=