From 01e8103f8f8c461d1536e936625f2126a31ecf3d Mon Sep 17 00:00:00 2001 From: Florian Beck Date: Fri, 31 Jan 2014 22:42:04 +0100 Subject: [PATCH] Font-lock: allow hiding of brackets surrounding macros * lisp/org.el (org-hide-macro-markers): new option (org-fontify-macros): new function (org-set-font-lock-defaults): call `org-fontify-macros' * doc/org.texi: Document user option `org-hide-macro-markers' TINYCHANGE --- doc/org.texi | 3 +++ lisp/org.el | 21 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/doc/org.texi b/doc/org.texi index 9c7a6a7f9..792315c9c 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -10019,6 +10019,9 @@ and to the modification time of the file being exported, respectively. @var{FORMAT} should be a format string understood by @code{format-time-string}. +The surrounding brackets can be made invisible by setting +@code{org-hide-macro-markers} to @code{t}. + Macro expansion takes place during export. diff --git a/lisp/org.el b/lisp/org.el index 1bec69227..4781dc305 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -4145,6 +4145,11 @@ following symbols: :group 'org-appearance :type 'boolean) +(defcustom org-hide-macro-markers nil + "Non-nil mean font-lock should hide the brackets marking macro calls." + :group 'org-appearance + :type 'boolean) + (defcustom org-pretty-entities nil "Non-nil means show entities as UTF8 characters. When nil, the \\name form remains in the buffer." @@ -5949,6 +5954,20 @@ by a #." (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0)) t)) + (defun org-fontify-macros (limit) + "Fontify macros." + (when (re-search-forward "\\({{{\\).+?\\(}}}\\)" limit t) + (add-text-properties + (match-beginning 0) (match-end 0) + '(font-lock-fontified t face org-macro)) + (when org-hide-macro-markers + (add-text-properties (match-end 2) (match-beginning 2) + '(invisible t)) + (add-text-properties (match-beginning 1) (match-end 1) + '(invisible t))) + (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0)) + t)) + (defun org-activate-angle-links (limit) "Run through the buffer and add overlays to links." (if (and (re-search-forward org-angle-link-re limit t) @@ -6260,7 +6279,7 @@ needs to be inserted at a specific position in the font-lock sequence.") ;; Diary sexps. '("^&?%%(.*\\|<%%([^>\n]*?>" (0 'org-sexp-date t)) ;; Macro - '("{{{.+?}}}" (0 'org-macro t)) + '(org-fontify-macros) '(org-hide-wide-columns (0 nil append)) ;; TODO keyword (list (format org-heading-keyword-regexp-format -- 2.11.4.GIT