Subject: Re: bug#78843: Various vtable bug fixes and enhancements

From: Stéphane Marks <[email-masked]>
Date: Mon, 30 Jun 2025 14:41:09 -0400

On Mon, Jun 30, 2025 at 12:27 PM Spencer Baugh <[email-masked]>
wrote:

> Stéphane Marks <[email-masked]> writes:
> > In the meantime, be a mensch, and try it out to see if it addresses your
> immediate issue and provide constructive feedback.  The
> > set of bugs I fixed and the new features added were informed by other
> menschen.  I've always considered your ideas and input
> > well.
> >
> > Here are the latest two files for ease of testing.  vtable.el, in its
> current form, is compatible with Emacs 31 unless and until
> > `string-pixel-width` is updated in compat.  I doubt Eli will want this
> in Emacs 30 but it could be published on ELPA if there is
> > demand?
>
> A few issues using the vtable.el you attached:
>
> - Clicking on header lines no longer changes sorting.
>
> - Columns where I specify :displayer now seem to have extra empty
>   padding added to the end of them.  I think this may be the result of
>   vtable--insert-line passing clipped-value-width (which has space for
>   the ellipsis removed) to the displayer function rather than passing
>   column-width as it used to.
>
> I do like that the header line is exactly properly aligned with columns
> now, both in graphical and terminal Emacs.  I wish you would please make
> smaller patches for your individual improvements so that we could have
> them without these bugs...
>

Thank you very much for testing the large change.  If I piecemealed all the
changes it would take weeks/months to get past reviewing all of them.  And
I've restructured some of the code along the way for clarity and
correctness.

I've since repaired those.

I had put in a restriction that enforced that a vtable should be inserted
into a single buffer.  That broke comint-mime which renders a vtable from
HTML in a temp buffer and then inserts the buffer's string into the shell
buffer.  While that could be reworked, I sense that the single-buffer
restriction is too defensive and less Emacsy.  What I will do instead is
add documentation and a suggestion about invoking vtable functions when the
current buffer is not the vtable buffer.

As I find time, I will start working on some tests to add to the two tests
that are there.

I've attached a revised vtable.el that still has the single-buffer
restriction and with your feedback items addressed.

I deeply appreciate everyone's patience and flexibility with these fixes
and improvements.

-Stéphane