org-fold-show-set-visibility: Do not reveal emphasis unless DETAIL is `local'

* lisp/org-fold.el (org-fold-show-set-visibility--text-properties):
Prevent revealing hidden emphasis unless requested DETAIL is `local'.
* lisp/ol.el (org-next-link): Honour `org-fold-show-context-detail'.

Reported in https://orgmode.org/list/626a0713.1c69fb81.a3583.1a07SMTPIN_ADDED_BROKEN@mx.google.com
This commit is contained in:
Ihor Radchenko 2022-04-28 14:24:27 +08:00
parent a0b8adf08a
commit 782a661921
No known key found for this signature in database
GPG key ID: 6470762A7DA11D8B
2 changed files with 22 additions and 15 deletions

View file

@ -1456,7 +1456,7 @@ is non-nil, move backward."
(`nil nil) (`nil nil)
(link (link
(goto-char (org-element-property :begin link)) (goto-char (org-element-property :begin link))
(when (org-invisible-p) (org-fold-show-context)) (when (org-invisible-p) (org-fold-show-context 'link-search))
(throw :found t))))) (throw :found t)))))
(goto-char pos) (goto-char pos)
(setq org-link--search-failed t) (setq org-link--search-failed t)

View file

@ -830,21 +830,28 @@ DETAIL is either nil, `minimal', `local', `ancestors',
(redisplay) (redisplay)
(let ((region (org-fold-get-region-at-point))) (let ((region (org-fold-get-region-at-point)))
;; Reveal emphasis markers. ;; Reveal emphasis markers.
(let (org-hide-emphasis-markers (when (eq detail 'local)
org-link-descriptive (let (org-hide-emphasis-markers
org-pretty-entities org-link-descriptive
org-hide-macro-markers org-pretty-entities
(region (or (org-find-text-property-region (point) 'org-emphasis) org-hide-macro-markers
(org-find-text-property-region (point) 'org-macro) (region (or (org-find-text-property-region (point) 'org-emphasis)
(org-find-text-property-region (point) 'invisible) (org-find-text-property-region (point) 'org-macro)
region))) (org-find-text-property-region (point) 'invisible)
(when region region)))
(org-with-point-at (car region) (when region
(beginning-of-line) (org-with-point-at (car region)
(let (font-lock-extend-region-functions) (beginning-of-line)
(font-lock-fontify-region (max (point-min) (1- (car region))) (cdr region)))))) (let (font-lock-extend-region-functions)
(font-lock-fontify-region (max (point-min) (1- (car region))) (cdr region))))))
;; Unfold links.
(dolist (spec '(org-link org-link-description))
(org-fold-region (car region) (cdr region) nil spec)))
(when region (when region
(org-fold-region (car region) (cdr region) nil)))) (dolist (spec (org-fold-core-folding-spec-list))
;; Links are taken care by above.
(unless (memq spec '(org-link org-link-description))
(org-fold-region (car region) (cdr region) nil spec))))))
(unless (org-before-first-heading-p) (unless (org-before-first-heading-p)
(org-with-limited-levels (org-with-limited-levels
(cl-case detail (cl-case detail