Ingo Lohmar writes: > On Mon, Apr 05 2021 22:36 (-0400), Kyle Meyer wrote:
>> Hmm, I think a problem with `:local t' (or, equivalently, >> make-variable-buffer-local for backward compatibility reasons) is that >> then you'd interfere with user customization that directly sets this >> after ol.el is loaded. You could also still get into a mismatched state >> like you described above if you load an Org buffer, set the value >> through the customization interface, and then call >> org-toggle-link-display in that buffer. [...] > I am not sure that I understand the problem you're describing.. Maybe > it's because I don't use the customize interface myself, but I think any > such customization would only set the default value, wouldn't it? Yes. Here are expanded descriptions for the two problems I'm referring to above. This is based on testing with the `:local t' diff below (on top of bcfe6f985, before the commit I mentioned in my last message). * Breaks customization of direct setq callers if ol.el is already loaded. If (setq org-link-descriptive nil) is executed after ol.el is loaded, links in a visited Org buffer will be displayed according to the default org-link-descriptive value of t. * Setting org-link-descriptive via the customization interface can get into a mismatched state. - Visit an Org file with a link and description. org-link-descriptive is at its global value of t. - Set org-link-descriptive to nil via the customization interface, changing the global value to nil. This value is in effect in the Org buffer because org-link-descriptive isn't yet buffer-local. The description is still hidden because buffer-invisibility-spec hasn't been changed. - Calling org-toggle-link-display sets org-link-descriptive to t, making org-link-descriptive a buffer-local variable. The appearance of the description doesn't change due to the mismatch (like described in your original report). Calling it again aligns the buffer-local value and buffer-invisibility-spec. diff --git a/lisp/ol.el b/lisp/ol.el index d1db1683b..0e225ce4e 100644 --- a/lisp/ol.el +++ b/lisp/ol.el @@ -193,6 +193,7 @@ (defcustom org-link-descriptive t `org-toggle-link-display' or from the \"Org > Hyperlinks\" menu." :group 'org-link :type 'boolean + :local t :safe #'booleanp) (defcustom org-link-make-description-function nil