[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug: org-link-descriptive needs to be buffer-local [9.4.4 (release_9
From: |
Kyle Meyer |
Subject: |
Re: Bug: org-link-descriptive needs to be buffer-local [9.4.4 (release_9.4.4 @ /usr/local/share/emacs/28.0.50/lisp/org/)] |
Date: |
Mon, 05 Apr 2021 22:36:49 -0400 |
Ingo Lohmar writes:
> I stumbled upon weird behavior when using `org-toggle-link-display', and
> I finally checked what that is about.
>
> Observation:
> - use `org-toggle-link-display' in org buffer A, and (coming
> from the defaults) links are now shown in full (not just the
> description), but only in buffer A
> - switch to org buffer B, still only showing the description part, and
> again use `o-t-l-d' --- nothing changes
> - the state for new org buffers is as before, onle link descriptions are
> shown.
>
> This behavior is very confusing, IMO. The reason is simple. The
> display hiding comes from changing the `buffer-invisibility-spec', which
> is automatically buffer-local. But the state of the org toggle is kept
> in `org-link-descriptive', which is global!
Thanks for the clear problem description and analysis. I agree that
this is a bug and don't suspect that anyone is relying on
org-toggle-link-display to toggling the global value.
Gustavo reported the same issue at
<https://orgmode.org/list/87lfeqzm3a.fsf@gmail.com>, but unfortunately
it didn't get any attention back then.
> I suggest a simple fix that I just tested: make `org-link-descriptive'
> automatically buffer-local, by adding ":local t" to the defcustom.
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.
Instead I've updated the body of `org-mode' to make org-link-descriptive
buffer-local (702e782cb).