How to properly write the default value for a non-trivial
defcustom form in
standard for something like I have below: a list of 3-element lists, with choices of the types?
defcustom form is:
defcustom option standard doc [keyword value]...
defcustom works fine as long as it's default is nil.
As soon as I add a non-empty list of values in
standard for the default value, Emacs
*Customize* buffer UI fails (see below).
#1: My defcustom form: (with a
nil value for the default, Emacs
*Customize* buffer UI works fine):
(defcustom pel-key-chords nil "..." :group 'pel-pkg-for-key-chord :type '(repeat (choice (list :tag "expansion-keys" (symbol :tag "mode " :value global) (string :tag "the 2 keys ") (repeat (key-sequence :tag "key"))) (list :tag "command" (symbol :tag "mode " :value global) (string :tag "the 2 keys ") (function :tag "command ")) (list :tag "lambda" (symbol :tag "mode " :value global) (string :tag "the 2 keys ") (function :tag "elisp code " :value (lambda () (interactive) <YOUR CODE HERE>))))))
The problem occurs when I specify a list of elements, or just one for default, as shown below:
#2: My defcustom form: (same code, but with an explicit default of one element):
(defcustom pel-key-chords '((global "<>" "<>\C-b")) "..." ...
With the default, Emacs
*Customize* buffer UI fails: the
DEL buttons are not available and it is impossible to add or delete elements.
I read Emacs Lisp Customization Settings section and some code like the
dump-jump.el code that defines some complex data with initialization. I assume I must identify some keywords in my declaration of the default, but for some reason I can't find the proper syntax for initializing the data I defined above.