[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
diary font-lock issue
From: |
Glenn Morris |
Subject: |
diary font-lock issue |
Date: |
Tue, 16 May 2006 03:22:57 -0400 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
I'm trying to fix a bug recently reported by Stephen Berman
("Fontification problem with fancy diary") on the pretest-bug list.
I'm stumped, and would appreciate some help from people knowledgeable
about font-lock.
I can simplify the issue to this:
elisp:
-------
(setq foo-font-lock-keywords
'(("\\(\\(?:Fri\\|Mon\\|S\\(?:atur\\|un\\)\\|\\(?:T\\(?:hur\\|ue\\)\\|Wedne\\)s\\)day\\),
\\(A\\(?:pril\\|ugust\\)\\|December\\|February\\|J\\(?:anuary\\|u\\(?:ly\\|ne\\)\\)\\|Ma\\(?:rch\\|y\\)\\|\\(?:Novem\\|Octo\\|Septem\\)ber\\)
[0-9]+, -?[0-9]+\n=+$" . font-lock-keyword-face)))
(define-derived-mode foo-mode fundamental-mode
"foo"
(set (make-local-variable 'font-lock-defaults)
'(foo-font-lock-keywords t))
(set (make-local-variable 'font-lock-multiline) t))
sample input file:
-------
Friday, May 5, 2006
===================
9.00 Xxxx Xxxxxx Xxxxx xXxxxxxxxxxxxx
15.20-15.50 Xxxx Xxxxxxxxxxxxxxxxx
17.30-19.00 Xxxx Xxxxxxxxxx
18.00-19.30 Xxxx XXX
Monday, May 8, 2006
===================
8.00 Xxxxxxxx xx Xxxxxxxx Xxxxxxxxxx xxx Xxxxxxxxxxxxx
14.30 Xxxxxx XxxxxXXxXxxxxx xxx Xxxx
15.30-17.00 Xxxx XxxxxXX
16.45 Xxxx xxx XxxxxXX xxxxxxx
17.15-18.15 Xxxx XxxxxXx
Tuesday, May 9, 2006
====================
14.50 Xxxx xxx Xxxxxxxxxxxxxxxxxxxxx xxxxxxx
15.30-16.00 Xxxx
Wednesday, May 10, 2006
=======================
20.00-21.15 Xxxxxx Xxxxxx
------
Defining foo-mode as above, and visiting the above example file, the
last "Wednesday, May 10, 2006" does not get font-locked. If the
"15.30-16.00" line in the immediately previous Tuesday section is not
there, it works as it should.
Alternatively, if the "\n=+$" part is removed from the font-lock
keywords, it works as it should. That made me think it might be a
multiline font-lock pattern issue. Hence I added the setting of
font-lock-multiline in the mode definition (the diary does not have
this), but that did not help.
TIA for any help.
PS For clarity, the font-lock definition can be replaced by:
(setq foo-font-lock-keywords
(list
(cons
(format "%s, %s %s, %s"
(regexp-opt '("Monday" "Tuesday" "Wednesday" "Thursday" "Friday"
"Saturday" "Sunday") t)
(regexp-opt '("January" "February" "March" "April" "May" "June"
"July" "August" "September" "October" "November"
"December") t)
"[0-9]+" "[0-9]+\n=+$")
font-lock-keyword-face)))
- diary font-lock issue,
Glenn Morris <=