Skip to content

Add support to hide macro markers #40

@m-h-b-tu

Description

@m-h-b-tu

Org can hide the macro markers using org-hide-macro-markers. This patch adds those to org-appear. I am sorry, I cannot make a pull request because of authentication issues.

diff --git a/org-appear.el b/org-appear.el
index 9541e62..d97bc15 100644
--- a/org-appear.el
+++ b/org-appear.el
@@ -88,6 +88,12 @@ Does not have an effect if `org-hidden-keywords' is nil."
   :type 'boolean
   :group 'org-appear)
 
+(defcustom org-appear-automacros nil
+  "Non-nil enables automatic toggling of macro markers.
+Does not have an effect if `org-hide-macro-markers' is nil."
+  :type 'boolean
+  :group 'org-appear)
+
 (defcustom org-appear-delay 0.0
   "Seconds of delay before toggling an element."
   :type 'number
@@ -149,7 +155,8 @@ nil if the cursor was not on an element.")
 			   superscript))
 	(entity-elements '(entity))
 	(link-elements '(link))
-	(keyword-elements '(keyword)))
+	(keyword-elements '(keyword))
+	(macro-elements '(macro)))
 
     ;; HACK: is there a better way to do this?
     (setq-local org-appear--prev-elem nil)
@@ -162,6 +169,8 @@ nil if the cursor was not on an element.")
       (setq org-appear-elements (append org-appear-elements entity-elements)))
     (when (and org-link-descriptive org-appear-autolinks)
       (setq org-appear-elements (append org-appear-elements link-elements)))
+    (when (and org-hide-macro-markers org-appear-automacros)
+      (setq org-appear-elements (append org-appear-elements macro-elements)))
     (when (and org-hidden-keywords org-appear-autokeywords)
       (setq org-appear-elements (append org-appear-elements keyword-elements)))))
 
@@ -290,6 +299,8 @@ Return nil if element cannot be parsed."
 			  'link)
 			 ((eq elem-type 'keyword)
 			  'keyword)
+			 ((eq elem-type 'macro)
+			  'macro)
 			 (t nil)))
 	 (elem-start (org-element-property :begin elem))
 	 (elem-end (org-element-property :end elem))
@@ -307,11 +318,13 @@ Return nil if element cannot be parsed."
 	       :visible-start ,(pcase elem-tag
 				 ('emph (1+ elem-start))
 				 ('script elem-content-start)
-				 ('link (or elem-content-start (+ elem-start 2))))
+				 ('link (or elem-content-start (+ elem-start 2)))
+				 ('macro (or elem-content-start (+ elem-start 3))))
 	       :visible-end ,(pcase elem-tag
 			       ('emph (1- elem-end-real))
 			       ('script elem-content-end)
-			       ('link (or elem-content-end (- elem-end-real 2))))))))
+			       ('link (or elem-content-end (- elem-end-real 2)))
+			       ('macro (or elem-content-end (- elem-end-real 3))))))))
 
 (defun org-appear--show-invisible (elem)
   "Silently remove invisible property from invisible parts of element ELEM."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions