Subject: bug#41086: Fwd: bug#41086: [PATCH] Add user-defined column widths to package-list (package.el)

From: Chris McMahan <[email-masked]>
Date: Tue, 5 May 2020 13:12:26 -0400

I may have found a solution.... but I have no idea if it's a decent one....

;; Original non-functioning code. Trying to get the value of the
package-archive-column-width into the list rather than hardcode it.
(setq tabulated-list-format
        `[("Package" ,package-name-column-width
package-menu--name-predicate)
          ("Version" ,package-version-column-width
package-menu--version-predicate)
          ("Status"  ,package-status-column-width
 package-menu--status-predicate)])
          ,@(if (cdr package-archives)
                '(("Archive" ,package-archive-column-width
package-menu--archive-predicate)))
          ("Description" 0 package-menu--description-predicate)])

;; potential solution.... any thoughts?
(setq tabulated-list-format
        `[("Package" ,package-name-column-width
package-menu--name-predicate)
          ("Version" ,package-version-column-width
package-menu--version-predicate)
          ("Status"  ,package-status-column-width
 package-menu--status-predicate)])
(if (cdr package-archives)
    (setq tabulated-list-format (append tabulated-list-format `(("Archive"
,package-archive-column-width package-menu--archive-predicate)))))
(setq tabulated-list-format (append tabulated-list-format `(("Description"
0 package-menu--description-predicate))))

- Chris

On Tue, May 5, 2020 at 12:09 PM Eli Zaretskii <[email-masked]> wrote:

> [Forwarding to everyone; please use Reply All.]
>
> > From: Chris McMahan <[email-masked]>
> > Date: Tue, 5 May 2020 11:28:13 -0400
> >
> > Hi Eli,
> > I hope I'm not being too difficult getting this set up.
> >
> > The format for the patch commit message has been incorporated.
> >
> > The other hardcoded values (13 in this case) are for aligning the labels
> and values in the package description
> > page, and not related to the package-menu table that this patch covers.
> >
> > On the question of the Archive column... I have been trying to figure
> out how to have the value of the variable
> > substituted in to the list, rather than the variable name as a string.
> >
> > Evaluating this code results in the following error:
> >
> > [("Package" 30 package-menu--name-predicate) ("Version" 14
> package-menu--version-predicate) ("Status"
> > 12 package-menu--status-predicate) ("Archive" (\,
> package-archive-column-width)
> > package-menu--archive-predicate) q ("Description" 0
> package-menu--description-predicate)]
> >
> >     (defcustom package-name-column-width 30
> >       "Column width for the Package name in the package menu."
> >       :type 'number
> >       :version "28.1")
> >
> >     (defcustom package-version-column-width 14
> >       "Column width for the Package version in the package menu."
> >       :type 'number
> >       :version "28.1")
> >
> >     (defcustom package-status-column-width 12
> >       "Column width for the Package status in the package menu."
> >       :type 'number
> >       :version "28.1")
> >
> >     (defcustom package-archive-column-width 12
> >       "Column width for the Package status in the package menu."
> >       :type 'number
> >       :version "28.1")
> >
> >     (setq tabulated-list-format
> >           `[("Package" ,package-name-column-width
> package-menu--name-predicate)
> >             ("Version" ,package-version-column-width
> package-menu--version-predicate)
> >             ("Status"  ,package-status-column-width
> package-menu--status-predicate)
> >             ,@(if (cdr package-archives)
> >                   '(("Archive" ,package-status-column-width
> package-menu--archive-predicate)))
> >             ("Description" 0 package-menu--description-predicate)])
> >
> >
> > I can't figure out how to get it to use the value of
> package-archive-column-width and not the string literal.
> >
> > I'll hold off another patch to try to solve this one. Any help you could
> offer would be greatly appreciated!
>

-- 
*Chris McMahan <[email-masked] <[email-masked]>>*