diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-01-28 17:08:03 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-01-28 17:08:03 +0100 |
commit | 5b4a711949eb3c757561b574b4d30af7c7e7cd79 (patch) | |
tree | 12c74f602e073821cc837337d2f2d369afb4a9d8 | |
parent | 4d46a20ea2f5d3a041e5b3aaf7c36222a8156485 (diff) | |
download | org-mode-5b4a711949eb3c757561b574b4d30af7c7e7cd79.tar.gz |
Fix fontification of macro spanning over multiple lines
* lisp/org.el (org-fontify-macros): Handle macros spanning over
multiple lines.
-rw-r--r-- | lisp/org.el | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/lisp/org.el b/lisp/org.el index e50c60f..b45cc06 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -6051,17 +6051,21 @@ by a #." (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)) + (when (re-search-forward "{{{\\([a-zA-Z][-a-zA-Z0-9_]*\\)" limit t) + (let ((begin (match-beginning 0)) + (opening-end (match-beginning 1))) + (when (and (re-search-forward "\n[ \t]*\n\\|\\(}}}\\)" limit t) + (match-string 1)) + (let ((end (match-end 1)) + (closing-start (match-beginning 1))) + (add-text-properties + begin end + '(font-lock-multiline t font-lock-fontified t face org-macro)) + (org-remove-flyspell-overlays-in begin end) + (when org-hide-macro-markers + (add-text-properties begin opening-end '(invisible t)) + (add-text-properties closing-start end '(invisible t))) + t))))) (defun org-activate-footnote-links (limit) "Add text properties for footnotes." |