Subject: bug#65625: 30.0.50; electric-pair-skip-whitespace-chars choice looks wrong

From: Stefan Kangas <[email-masked]>
Date: Wed, 30 Aug 2023 21:21:17 +0200

> Looking at the electric-pair-skip-whitespace-chars defcustom:
>
> (defcustom electric-pair-skip-whitespace-chars (list ?\t ?\s ?\n)
>    "Whitespace characters considered by `electric-pair-skip-whitespace'."
>    :version "24.4"
>    :group 'electricity
>    :type '(choice (set (const :tag "Space" ?\s)
>                        (const :tag "Tab" ?\t)
>                        (const :tag "Newline" ?\n))
>                   (list character)))
>
> I think the 2nd choice should be (repeat character) rather than
> (list character).

With `list' I get this:

Hide Electric Pair Skip Whitespace Chars: Choice: Value Menu List:
Character: ^@
    State : EDITED, shown value does not take effect until you set or save it.
   Whitespace characters considered by ‘electric-pair-skip-whitespace’.
Groups: Electricity

And with `repeat', I get this:

Hide Electric Pair Skip Whitespace Chars: Choice: Value Menu Repeat:
INS
    State : EDITED, shown value does not take effect until you set or save it.
   Whitespace characters considered by ‘electric-pair-skip-whitespace’.
Groups: Electricity

If I now hit "INS", I see this:

Hide Electric Pair Skip Whitespace Chars: Choice: Value Menu Repeat:
INS DEL Character: ^@
INS
    State : EDITED, shown value does not take effect until you set or save it.
   Whitespace characters considered by ‘electric-pair-skip-whitespace’.
Groups: Electricity

And then when I try to delete "^@" to edit it, it changes to "\s", and
then I can't delete it to enter something else.  So this all seems
pretty wonky to me.  Is `repeat' that much of an improvement?