emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: org-toggle-link-display and org-hide-emphasis-markers [9.4 (9.4-44-g5272d9-elpaplus @ /home/gustavo/.emacs.d/elpa/org-plus-contrib-20201123/)]
@ 2020-11-24  0:32 Gustavo Barros
  2021-05-01 16:42 ` Bastien
  0 siblings, 1 reply; 5+ messages in thread
From: Gustavo Barros @ 2020-11-24  0:32 UTC (permalink / raw)
  To: emacs-orgmode

Hi All,

when using `org-hide-emphasis-markers', making links visible with 
`org-toggle-link-display' also unhides the emphasis markers.  I believe 
this to be unexpected behavior (it certainly is to me), but I might be 
wrong here, given that the emphasis markers are explicitly set to a 
`org-link' invisible property (which see).

An ECM to reproduce the issue is:

- Start `emacs -Q'

- Do an initial setup:
  #+begin_src emacs-lisp
  (add-to-list 'load-path "~/.emacs.d/elpa/org-plus-contrib-20201123")
  (setq org-hide-emphasis-markers t)
  #+end_src

- Open an Org buffer with contents:
  #+begin_src org
  [[https://orgmode.org/][Org mode for Emacs]]
  ,*bold*
  #+end_src
  given the settings, both the link and emphasis markers should be 
  invisible.

- Call `M-x org-toggle-link-display', see that both the link and the 
  emphasis markers are made visible.  Toggle it again, and both are 
  invisible.

As far as I dug, the reason for this behavior lies in 
`org-do-emphasis-faces' which indeed uses the `org-link' invisible 
property to hide the links (at the very end of the function):

#+begin_src emacs-lisp
(when (and org-hide-emphasis-markers
	   (not (org-at-comment-p)))
  (add-text-properties (match-end 4) (match-beginning 5)
		       '(invisible org-link))
  (add-text-properties (match-beginning 3) (match-end 3)
		       '(invisible org-link)))
#+end_src

So that `org-toggle-link-display' cannot really distinguish an emphasis 
marker from an actual link when it removes `org-link' from the 
invisibility-spec.

I don't know why this is done this way in `org-do-emphasis-faces', so I 
might be missing something, but it does lead to this peculiar behavior 
of `org-toggle-link-display'.

Best regards,
Gustavo.



Emacs  : GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 
3.24.20, cairo version 1.16.0)
 of 2020-08-11
Package: Org mode version 9.4 (9.4-44-g5272d9-elpaplus @ 
/home/gustavo/.emacs.d/elpa/org-plus-contrib-20201123/)

current state:
==============
(setq
 org-src-mode-hook '(org-src-babel-configure-edit-buffer 
 org-src-mode-configure-edit-buffer)
 org-link-shell-confirm-function 'yes-or-no-p
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 org-mode-hook '(#[0 "\300\301\302\303\304$\207" [add-hook 
 change-major-mode-hook org-show-all append local] 5]
		 #[0 "\300\301\302\303\304$\207"
		   [add-hook change-major-mode-hook 
		   org-babel-show-result-all append local] 5]
		 org-babel-result-hide-spec org-babel-hide-all-hashes 
		 org-eldoc-load)
 org-archive-hook '(org-attach-archive-delete-maybe)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-bibtex-headline-format-function #[257 "\300\236A\207" [:title] 3 
 "\n\n(fn ENTRY)"]
 org-babel-pre-tangle-hook '(save-buffer)
 org-tab-first-hook '(org-babel-hide-result-toggle-maybe 
 org-babel-header-arg-expand)
 org-hide-emphasis-markers t
 org-agenda-loop-over-headlines-in-active-region nil
 org-src-lang-modes '(("redis" . redis) ("php" . php) ("arduino" 
 . arduino) ("C" . c) ("C++" . c++)
		      ("asymptote" . asy) ("bash" . sh) ("beamer" 
		      . latex) ("calc" . fundamental) ("cpp" . c++)
		      ("ditaa" . artist) ("dot" . fundamental) ("elisp" 
		      . emacs-lisp) ("ocaml" . tuareg)
		      ("screen" . shell-script) ("shell" . sh) ("sqlite" 
		      . sql))
 org-occur-hook '(org-first-headline-recenter)
 org-cycle-hook '(org-cycle-hide-archived-subtrees 
 org-cycle-hide-drawers org-cycle-show-empty-lines
		  org-optimize-window-after-visibility-change)
 org-speed-command-hook '(org-speed-command-activate 
 org-babel-speed-command-activate)
 org-export-before-parsing-hook '(org-attach-expand-links)
 org-confirm-shell-link-function 'yes-or-no-p
 org-link-parameters '(("attachment" :follow org-attach-follow :complete 
 org-attach-complete-link)
		       ("id" :follow org-id-open) ("eww" :follow 
		       org-eww-open :store org-eww-store-link)
		       ("rmail" :follow org-rmail-open :store 
		       org-rmail-store-link)
		       ("mhe" :follow org-mhe-open :store 
		       org-mhe-store-link)
		       ("irc" :follow org-irc-visit :store 
		       org-irc-store-link :export org-irc-export)
		       ("info" :follow org-info-open :export 
		       org-info-export :store org-info-store-link)
		       ("gnus" :follow org-gnus-open :store 
		       org-gnus-store-link)
		       ("docview" :follow org-docview-open :export 
		       org-docview-export :store
			org-docview-store-link)
		       ("bibtex" :follow org-bibtex-open :store 
		       org-bibtex-store-link)
		       ("bbdb" :follow org-bbdb-open :export 
		       org-bbdb-export :complete org-bbdb-complete-link
			:store org-bbdb-store-link)
		       ("w3m" :store org-w3m-store-link) ("file+sys") 
		       ("file+emacs")
		       ("shell" :follow org-link--open-shell)
		       ("news" :follow
			#[514 "\301\300\302Q\"\207" ["news" browse-url 
                         ":"] 6 "\n\n(fn URL ARG)"])
		       ("mailto" :follow
			#[514 "\301\300\302Q\"\207" ["mailto" browse-url 
                         ":"] 6 "\n\n(fn URL ARG)"])
		       ("https" :follow
			#[514 "\301\300\302Q\"\207" ["https" browse-url 
                         ":"] 6 "\n\n(fn URL ARG)"])
		       ("http" :follow
			#[514 "\301\300\302Q\"\207" ["http" browse-url 
                         ":"] 6 "\n\n(fn URL ARG)"])
		       ("ftp" :follow
			#[514 "\301\300\302Q\"\207" ["ftp" browse-url 
                         ":"] 6 "\n\n(fn URL ARG)"])
		       ("help" :follow org-link--open-help) ("file" 
		       :complete org-link-complete-file)
		       ("elisp" :follow org-link--open-elisp) ("doi" 
		       :follow org-link--open-doi))
 org-link-elisp-confirm-function 'yes-or-no-p
 )


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: org-toggle-link-display and org-hide-emphasis-markers [9.4 (9.4-44-g5272d9-elpaplus @ /home/gustavo/.emacs.d/elpa/org-plus-contrib-20201123/)]
  2020-11-24  0:32 Bug: org-toggle-link-display and org-hide-emphasis-markers [9.4 (9.4-44-g5272d9-elpaplus @ /home/gustavo/.emacs.d/elpa/org-plus-contrib-20201123/)] Gustavo Barros
@ 2021-05-01 16:42 ` Bastien
  2021-05-01 20:41   ` Gustavo Barros
  0 siblings, 1 reply; 5+ messages in thread
From: Bastien @ 2021-05-01 16:42 UTC (permalink / raw)
  To: Gustavo Barros; +Cc: emacs-orgmode

Hi Gustavo,

Gustavo Barros <gusbrs.2016@gmail.com> writes:

> when using `org-hide-emphasis-markers', making links visible with 
> `org-toggle-link-display' also unhides the emphasis markers.  I believe 
> this to be unexpected behavior (it certainly is to me), but I might be 
> wrong here, given that the emphasis markers are explicitly set to a 
> `org-link' invisible property (which see).

thanks for reporting this, I've committed 842ab092a in maint which
should fix it.

I hope the change does not break anyone's code: perhaps some people
use custom code to hide/show emphasis markers based on the org-link
invisible property specs.  

In any case, I don't think `org-toggle-link-display' should display
emphasis markers.

-- 
 Bastien


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: org-toggle-link-display and org-hide-emphasis-markers [9.4 (9.4-44-g5272d9-elpaplus @ /home/gustavo/.emacs.d/elpa/org-plus-contrib-20201123/)]
  2021-05-01 16:42 ` Bastien
@ 2021-05-01 20:41   ` Gustavo Barros
  2021-05-02  6:30     ` Bastien
  0 siblings, 1 reply; 5+ messages in thread
From: Gustavo Barros @ 2021-05-01 20:41 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

Hi Bastien,

On Sat, 01 May 2021 at 13:42, Bastien <bzg@gnu.org> wrote:

> Hi Gustavo,
>
> Gustavo Barros <gusbrs.2016@gmail.com> writes:
>
>> when using `org-hide-emphasis-markers', making links visible with 
>> `org-toggle-link-display' also unhides the emphasis markers.  I 
>> believe 
>> this to be unexpected behavior (it certainly is to me), but I might 
>> be 
>> wrong here, given that the emphasis markers are explicitly set to a 
>> `org-link' invisible property (which see).
>
> thanks for reporting this, I've committed 842ab092a in maint which
> should fix it.
>

Thank you for looking into this, and for the fix.

> I hope the change does not break anyone's code: perhaps some people
> use custom code to hide/show emphasis markers based on the org-link
> invisible property specs.  
>
> In any case, I don't think `org-toggle-link-display' should display
> emphasis markers.

I'm not sure either.  Perhaps that was the reason why `org-link' was 
used as the invisibility property there in the first place.  If you 
think that is a concern, perhaps adding something as `org-emph' to the 
invisibility specs and using it there instead of leaving the markers in 
the default group might be a good idea.  This way it would be possible 
to toggle the markers selectively, as it is done with the links.  I'm 
not sure this is granted, but one reasonable hypothesis why `org-link' 
was used there in the first place is that some degree of selective 
toggling of the markers was somehow demanded.

Best,
Gustavo.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: org-toggle-link-display and org-hide-emphasis-markers [9.4 (9.4-44-g5272d9-elpaplus @ /home/gustavo/.emacs.d/elpa/org-plus-contrib-20201123/)]
  2021-05-01 20:41   ` Gustavo Barros
@ 2021-05-02  6:30     ` Bastien
  2021-05-02 16:06       ` Gustavo Barros
  0 siblings, 1 reply; 5+ messages in thread
From: Bastien @ 2021-05-02  6:30 UTC (permalink / raw)
  To: Gustavo Barros; +Cc: emacs-orgmode

Gustavo Barros <gusbrs.2016@gmail.com> writes:

> This way it would be
> possible to toggle the markers selectively, as it is done with the
> links.  I'm not sure this is granted, but one reasonable hypothesis
> why `org-link' was used there in the first place is that some degree
> of selective toggling of the markers was somehow demanded.

Yes, this came to my mind too, but I will refrain from adding this
new toggling capability for emphasis markers until people convince
us it has to be implemented.

-- 
 Bastien


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: org-toggle-link-display and org-hide-emphasis-markers [9.4 (9.4-44-g5272d9-elpaplus @ /home/gustavo/.emacs.d/elpa/org-plus-contrib-20201123/)]
  2021-05-02  6:30     ` Bastien
@ 2021-05-02 16:06       ` Gustavo Barros
  0 siblings, 0 replies; 5+ messages in thread
From: Gustavo Barros @ 2021-05-02 16:06 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

Hi Bastien,

On Sun, 02 May 2021 at 03:30, Bastien <bzg@gnu.org> wrote:

> Gustavo Barros <gusbrs.2016@gmail.com> writes:
>
>> This way it would be
>> possible to toggle the markers selectively, as it is done with the
>> links.  I'm not sure this is granted, but one reasonable hypothesis
>> why `org-link' was used there in the first place is that some degree
>> of selective toggling of the markers was somehow demanded.
>
> Yes, this came to my mind too, but I will refrain from adding this
> new toggling capability for emphasis markers until people convince
> us it has to be implemented.

I'm fine with that.  I have no particular opinion on the matter, I was 
really just speculating why that might have ended there in the first 
place.  That said, nothing to add here, except: thanks again.

Gustavo.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-05-02 16:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-24  0:32 Bug: org-toggle-link-display and org-hide-emphasis-markers [9.4 (9.4-44-g5272d9-elpaplus @ /home/gustavo/.emacs.d/elpa/org-plus-contrib-20201123/)] Gustavo Barros
2021-05-01 16:42 ` Bastien
2021-05-01 20:41   ` Gustavo Barros
2021-05-02  6:30     ` Bastien
2021-05-02 16:06       ` Gustavo Barros

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).