On 02/02/2023 17:53, Ihor Radchenko wrote:
(defun org-set-emph-re (var val)
- "Set variable and compute the emphasis regular expression."
+ "Set VAR to VAL and compute the emphasis regular expression.
+The function is intended for :set argument of `defcustom' for
+`org-emphasis-alist'."
(set-default-toplevel-value var val)
...
+(add-variable-watcher 'org-emphasis-alist #'org-emphasis-alist--check-value)
Thinking more I have realized that I am in doubts if
`add-variable-watcher' is appropriate tool in this particular case. The
only way to get some effect from change of `org-emphasis-alist' is to
call `org-set-emph-re' (its :set function), so it should be enough to
call `org-emphasis-alist--check-value' from `org-set-emph-re'.
I have no idea what should be considered as best practice: should
`set-default-toplevel-value' be combined with changes of `org-emph-re'
as it is done in current code or `org-set-emph-re' should be split into
the function that modifies `org-emph-re' (so it can be called
separately) and a tiny setter (that may be defined as lambda this case)
that calls the new function and `set-default-toplevel-value'.