Prechádzať zdrojové kódy

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
Ihor Radchenko 2 rokov pred
rodič
commit
782a661921
2 zmenil súbory, kde vykonal 22 pridanie a 15 odobranie
  1. 1 1
      lisp/ol.el
  2. 21 14
      lisp/org-fold.el

+ 1 - 1
lisp/ol.el

@@ -1456,7 +1456,7 @@ is non-nil, move backward."
 	    (`nil nil)
 	    (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)))))
       (goto-char pos)
       (setq org-link--search-failed t)

+ 21 - 14
lisp/org-fold.el

@@ -830,21 +830,28 @@ DETAIL is either nil, `minimal', `local', `ancestors',
       (redisplay)
       (let ((region (org-fold-get-region-at-point)))
         ;; Reveal emphasis markers.
-        (let (org-hide-emphasis-markers
-              org-link-descriptive
-              org-pretty-entities
-              org-hide-macro-markers
-              (region (or (org-find-text-property-region (point) 'org-emphasis)
-                          (org-find-text-property-region (point) 'org-macro)
-                          (org-find-text-property-region (point) 'invisible)
-                          region)))
-          (when region
-            (org-with-point-at (car region)
-              (beginning-of-line)
-              (let (font-lock-extend-region-functions)
-                (font-lock-fontify-region (max (point-min) (1- (car region))) (cdr region))))))
+        (when (eq detail 'local)
+          (let (org-hide-emphasis-markers
+                org-link-descriptive
+                org-pretty-entities
+                org-hide-macro-markers
+                (region (or (org-find-text-property-region (point) 'org-emphasis)
+                            (org-find-text-property-region (point) 'org-macro)
+                            (org-find-text-property-region (point) 'invisible)
+                            region)))
+            (when region
+              (org-with-point-at (car region)
+                (beginning-of-line)
+                (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
-          (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)
       (org-with-limited-levels
        (cl-case detail