bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#59730: gdb-mi.el: Local variables reordering


From: Gustaf Waldemarson
Subject: bug#59730: gdb-mi.el: Local variables reordering
Date: Sun, 4 Dec 2022 15:26:22 +0100


> I'm uncomfortable with backward-incompatible change in behavior for which
> there's no way of getting the old behavior.  So please add another defcustom
> that could be used to get the original order of type/name/value.

> There also should be a NEWS entry about these new options, and the text
> there should explain how to get back old behavior before these changes.

Hmm, this turned out to be a bit harder change, and I did not particularly like
the thought of having 3 defcustoms control this behavior. So I spent a bit of time
to refactor things a bit.

So, this new version only uses a single defcustom, `gdb-locals-table-row-config',
which is an alist the user can change to specify the truncation and order of the
local variable properties (i.e., name, type, value).

I have set this to '((name . 20)(type . 20)(value . 100)), so to get the old behavior
one would change this to '(type . 0)(name . 0)(value . 0).

Additionally, I found a minor bug in `gdb-locals-value-filter' which did not work
properly when the value was nil. There I also noticed that that the `gdb-locals-value-limit'
has become redundant with this change. Unfortunately, I wasn't able to figure out how
to mark that defcustom as deprecated, is there some kind of macro that should be done
for that, or should I just remove it?

I also added content to the `etc/NEWS`, as requested but I haven't actually done that
before, so I may very well have messed up the formatting, so feel free to double check
things there

Best regards,
Gustaf


Den lör 3 dec. 2022 kl 20:59 skrev Eli Zaretskii <eliz@gnu.org>:
> From: Gustaf Waldemarson <gustaf.waldemarson@gmail.com>
> Date: Thu, 1 Dec 2022 22:53:26 +0100
> Cc: 59730@debbugs.gnu.org
>
> The updated patch is attached to this mail.

Thanks.  I have a couple of minor comments:

> +(defcustom gdb-locals-max-type-length 20
> +  "Maximum number of character to display in the local variables type column."
> +  :type 'integer
> +  :group 'gud
> +  :version "30.0")

This should be "30.1".  We don't release NN.o versions of Emacs.

> +(defcustom gdb-locals-max-name-length 20
> +  "Maximum number of character to display in the local variables name column."
> +  :type 'integer
> +  :group 'gud
> +  :version "30.0")

Likewise.

Also, please add more detailed description of what these options control.
The first line of the doc string is fine, but please add more text
explaining that this setting is for displaying the variables in the "Locals"
buffer.

> -          (propertize type 'font-lock-face font-lock-type-face)
> -          (propertize name 'font-lock-face font-lock-variable-name-face)
> +          (propertize (string-truncate-left name gdb-locals-max-name-length)
> +                      'font-lock-face font-lock-variable-name-face
> +                      'help-echo name)
> +          (propertize (string-truncate-left type gdb-locals-max-type-length)
> +                      'font-lock-face font-lock-type-face
> +                      'help-echo type)

I'm uncomfortable with backward-incompatible change in behavior for which
there's no way of getting the old behavior.  So please add another defcustom
that could be used to get the original order of type/name/value.

There also should be a NEWS entry about these new options, and the text
there should explain how to get back old behavior before these changes.

Attachment: 0001-gdb-mi.el-Configure-variable-order-and-length.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]