unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dave Abrahams <dave@boostpro.com>
To: Glenn Morris <rgm@gnu.org>
Cc: 7812@debbugs.gnu.org
Subject: bug#7812: 23.2; compilation-error-regexp-alist extremely unfriendly to customization interface
Date: Wed, 19 Jan 2011 22:30:16 -0500	[thread overview]
Message-ID: <m2fwso45h3.wl%dave@boostpro.com> (raw)
In-Reply-To: <22sjwov5ll.fsf@fencepost.gnu.org>

At Wed, 19 Jan 2011 18:25:26 -0500,
Glenn Morris wrote:
> 
> Dave Abrahams wrote:
> 
> [customizing compilation-error-regexp-alist]
> 
> > It was never awesome: it *should* be possible to add support for a
> > couple of unique tools without losing the benefits of all the builtin
> > matchers that will come along next time I upgrade emacs.  It has
> > always been the case that if I customize one or two of these elements,
> > I'll never see new ones that are supplied by the maintainers on
> > upgrade...
> 
> That is a general issue with customize, albeit more of one for options
> with long, complicated values where new ones might be added to the old
> elements.

Yes, but you *can* design the module so as to make it a non-issue.
Give people a customizable variable that is solely for their own use,
and give them a way to override the contents of the base alist, which
is not customizable but updated with the module.

> There is M-x customize-changed to point out where options have changed
> since a given Emacs release. In an ideal world maybe there could be
> some automatic, version-control like merging of options when you start
> a new Emacs version for the first time.
> 
> > ...but now things are worse: I can't even add new alist elements
> > through the customize interface, and if do I add a single new one
> > using setq, all I see in the customize interface thenceforth is:
> >
> >   (mapcar 'car compilation-error-regexp-alist-alist)
> 
> compilation-error-regexp-alist has a bad custom :type. It does not
> allow you to do anything other than turn on/off the default settings.
> It is impossible to add a new element via customize, and doing so by
> hand will produce a mismatch.
> 
> AFAICS, it isn't possible to have a custom type that allows you to both:
> 
> i) toggle on/off the predefined options
> ii) add new elements of your own
> 
> So feature i) will probably have to go.

The problem is with the design that mashes all this functionality
together into a single customization variable.  Just use separate
variables for separate concerns, and you'll be golden.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com






  parent reply	other threads:[~2011-01-20  3:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-10  2:03 bug#7812: 23.2; compilation-error-regexp-alist extremely unfriendly to customization interface Dave Abrahams
2011-01-19 23:25 ` Glenn Morris
2011-01-19 23:27   ` Glenn Morris
2011-01-20  3:30   ` Dave Abrahams [this message]
2011-01-20 15:49     ` Stefan Monnier
2011-01-20 18:22       ` Dave Abrahams
2011-01-21  5:04       ` Glenn Morris

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2fwso45h3.wl%dave@boostpro.com \
    --to=dave@boostpro.com \
    --cc=7812@debbugs.gnu.org \
    --cc=rgm@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).