Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Font-lock keywords disable regular headline highlighting in Org

11 views
Skip to first unread message

Sebastien Vauban

unread,
Nov 16, 2012, 4:04:54 PM11/16/12
to
Hello,

With the following code, I can highlight special words such as `error' and
`warning' in any part of a buffer.

--8<---------------cut here---------------start------------->8---
(message "Minimal Emacs config file...")

(defface org-todo
'((t (:weight bold :box (:line-width 1 :color "#89C58F")
:foreground "#89C58F" :background "#E2FEDE")))
"Face used to display state TODO.")

(defface org-level-1
'((t (:weight bold :box (:line-width 1 :color "#42B5FF")
:foreground "#42B5FF" :background "#D3EEFF")))
"Outline level 1.")

(defface my/highlight-face
'((t (:weight normal :slant normal :box '(:line-width 1 :color "#CC0000")
:foreground "#CC0000" :background "#FFFF88")))
"Face for making FIXME and other warnings stand out.")

(defvar my/highlight-org-regexps
"\\(FIXME\\|BUG\\|XXX\\|[Ee]rror\\|[Ww]arning\\|WARNING\\)"
"Patterns to highlight (for Org mode only, to ensure no conflict with the
Org mode TODO keyword).")

;; set up highlighting of special patterns for Org mode only
(dolist (mode '(org-mode))
(font-lock-add-keywords mode
`((,my/highlight-org-regexps 1 'my/highlight-face prepend))))

(message "Minimal Emacs config file... Done")
--8<---------------cut here---------------end--------------->8---

However, as you can see on the screencast at
http://screencast.com/t/RfMrD1IUBPZ, that conflicts with normal regular
highlighting of headlines.

In this MCE ("Minimal Complete Example"):

--8<---------------cut here---------------start------------->8---
* TODO Fix the warning about that

Bar is wrong.

* TODO Correct this

There is an error when you compile foo.
--8<---------------cut here---------------end--------------->8---

the first headline is not highlighted anymore (in `org-level-1') as soon as we
type one of the font-lock keywords (here: `warning').

Can you help me sort this out?

Best regards,
Seb

--
Sebastien Vauban
0 new messages