Subject: Re: bug#58431: 29.0.50; [Eglot] Add "breadcrumb.el" feature based, on imenu.el/project.el services

From: Adam Porter <[email-masked]>
Date: Wed, 19 Apr 2023 23:27:45 -0500

Hi João,

On 4/18/23 13:26, João Távora wrote:
> On Tue, Apr 18, 2023 at 7:10 PM Adam Porter <[email-masked]> wrote:
> 
>> FWIW, this sounds similar to the topsy.el library I published on MELPA a
>> couple of years ago.  It aims to provide similar (or better)
>> functionality than semantic-stickyfunc-mode without using Semantic.
> 
> Had a look, but doesn't seem to work with Imenu directly.  That's a goal
> here, because it makes this work for Eglot and also any other non-Eglot
> client that already defines an imenu.

Yes, it doesn't use any Imenu functions currently.  It's an interesting 
idea, though.

> Also seems to have a slightly different goal.  The goal here, is for
> the headerline to show the current position in terms of the intervals
> it intersects in the imenu tree, which may be a deep hierarchical
> tree in some languages.

For most modes, that's true.  For buffers using `magit-section-mode', 
the `topsy--magit-section' function does return a breadcrumbs-style list 
that shows the hierarchy of sections.  Also, my other package that's 
just for Org, org-sticky-header, does show a breadcrumbs-style list of 
ancestor headings.

> Here's what I've come up with: it's fresh out of the oven :-)
> 
> (meaning probably buggy, but hopefully hot)

Thanks.  I tried it, and I'm not sure if it's doing what you intend, but 
it doesn't seem to do what I need; that is, it doesn't show the 
beginning of the top-level form that encloses the line at the top of the 
window.