I'm interested in changing my org-mode buffers to have a better looking logbook. My ideal state to end up in is that text that looks like this:
- State "WAITING" from "WAITING" [2018-11-16 Fri 16:00] \\
description of why this task is still waiting
- State "WAITING" from "WAITING" [2018-11-16 Fri 11:20]
- State "WAITING" from "NEXT" [2018-11-15 Thu 11:55] \\
Addressed feedback Bump on 2018-11-19 if not approved yet.
instead is formatted to look like this
- WAITING [2018-11-16 Fri 16:00] \\
description of why this task is still waiting
- WAITING [2018-11-16 Fri 11:20]
- WAITING [2018-11-15 Thu 11:55] \\
Addressed feedback Bump on 2018-11-19 if not approved yet.
I've gotten pretty close to what I want with this code:
(defface mjh-subdued `((t :background ,mjh-base03 :foreground ,mjh-base02))
"Subdued face for text that shouldn't be very visible.")
(font-lock-add-keywords
'org-mode
'(
("\\(State +\"\\)\\(TODO\\)\\(\" +from.*\\)$" (1 'mjh-subdued) (2 'mjh-subdued) (3 'mjh-subdued))
("\\(State +\"\\)\\(NEXT\\)\\(\" +from.*\\)$" (1 'mjh-subdued) (2 'mjh-subdued) (3 'mjh-subdued))
("\\(State +\"\\)\\(WAITING\\)\\(\" +from.*\\)$" (1 'mjh-subdued) (2 'mjh-waiting) (3 'mjh-subdued))
("\\(State +\"\\)\\(DONE\\)\\(\" +from.*\\)$" (1 'mjh-subdued) (2 'mjh-subdued) (3 'mjh-subdued))
("\\(State +\"\\)\\(CANCELED\\)\\(\" +from.*\\)$" (1 'mjh-subdued) (2 'mjh-canceled) (3 'mjh-subdued))
))
With this, the text isn't invisible, but it is subdued so it doesn't draw much attention. Ideally, I want the text that is currently formatted as mjh-subdued
to be invisible (and zero-width).
But I'm stuck. I can't figure out how to add the 'invisible
text property to the matched groups. According to search based fontification, I should be able to add text properties for the (matcher . facespec)
form, but I can't figure out how I need to get it worked. Changing one of the (1 'mjh-subdued)
to (1 (face 'mjh-subdued :invisible t))
does not work. (and breaks what I do have working)
Any ideas on where I should look for this? I tried looking through the source for font-lock-add-keywords
, but it's pretty dense.
I can add the code for the other faces if it matters, but they just change the TODO
keywords to be colored differently.
(1 (face mjh-subdued :invisible t))
rather thanfont
? – rpluim Nov 19 '18 at 10:09