all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Question about defcustom and :set-after
@ 2018-05-01  0:00 Eric Abrahamsen
  2018-05-01  0:37 ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Eric Abrahamsen @ 2018-05-01  0:00 UTC (permalink / raw)
  To: emacs-devel

I've been trying to do some fairly deep refactoring to Gnus, and have
been frustrated by the fact that it's very difficult to set up a clean
test environment for Gnus that also has some data in it to work with.

So I started writing support for a Gnus mock environment: you call
`gnus-mock' and it starts up a Gnus session completely independent of
your own Gnus customizations, that has some dummy data in it that gets
flushed and restored each time you restart the mock session.

That involves saving all relevant customizations (and some defvars) and
putting them aside, then setting all customization options (and some
defvars) back to their default values, and starting Gnus.

It isn't working quite right for me, I think because some customization
options depend on other customization options, and if they're set in the
wrong order, things don't get overwritten cleanly.

In particular I'm looking at options like this one:

(defcustom gnus-directory (or (getenv "SAVEDIR")
			      (nnheader-concat gnus-home-directory "News/"))
  "Directory variable from which all other Gnus file variables are derived.

Note that Gnus is mostly loaded when the `.gnus.el' file is read.
This means that other directory variables that are initialized from
this variable won't be set properly if you set this variable in `.gnus.el'.
Set this variable in `.emacs' instead."
  :group 'gnus-files
  :type 'directory)

`gnus-home-directory' is also an option. Shouldn't this option declare a
:set-after dependency on `gnus-home-directory'? There have also been bug
reports over the years about weirdness in this area, and I wonder if it
isn't all related.

Is this what :set-after is for, and would it make sense to add that
property to all Gnus options that depend on other options?

Eric




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-05-01 16:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-01  0:00 Question about defcustom and :set-after Eric Abrahamsen
2018-05-01  0:37 ` Stefan Monnier
2018-05-01  1:33   ` Eric Abrahamsen
2018-05-01  3:54     ` Stefan Monnier
2018-05-01 16:20       ` Eric Abrahamsen

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.