Hi Nicolas, I think this change breaks user setups. I don't know how many people do change these keywords, but I know some do, if only for localization purposes. I myself have modified the archive keyword in some cases, if I use this feature for a different purpose.
You probably want to do this to make Org syntax less fragile. A good goal. However, I think it can also be achieved by leaving these as defcustom and discouraging changes in the docstring with a standard sentence about about deprecation. Your most important argument to me seems about efficiency of cashing. We can fix this by providing :set methods for the customize entries that will trigger global cache erasing, so that you do not need to programmatically check this all the time. Regards - Carsten On 20.10.2013, at 10:47, Nicolas Goaziou <n.goaz...@gmail.com> wrote: > Hello, > > I'd like to suggest changing the following defcustom variables into > defconst: > > - org-deadline-string > - org-scheduled-string > - org-closed-string > - org-clock-string > - org-comment-string > - org-quote-string > - org-effort-property > - org-archive-tag > > There's no fundamental reason to change these, as they belong to Org > syntax, much like star character for headlines and ":END:" closing > string for drawers. > > They can also introduce bugs in code when modified (e.g. modifying > `org-effort-property' breaks `ox-taskjuggler'). Of course, this can be > avoided with careful checks, but this puts an extra burden on developers > for a tiny benefit for the user. > > Eventually, they can be costly, since changing any of them implies that > cache in every Org buffer must be erased. > > Allowing customization is generally good, but I think Org syntax should > never be a moving target. > > Note that this shouldn't introduce much backward incompatibility (unless > user changes them through customize interface) since a defconst can > still be setq'ed and variables will still be used in code base. > > Opinions? > > > Regards, > > -- > Nicolas Goaziou >