help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: foo-font-lock-keywords (was Re: cc-mode in emacs 23.2 goes into infi


From: Jim Diamond
Subject: Re: foo-font-lock-keywords (was Re: cc-mode in emacs 23.2 goes into infinte loop)
Date: Sun, 23 Jan 2011 15:22:35 -0400
User-agent: slrn/0.9.9p1 (Linux)

On 2011-01-23 at 12:49 AST, rusi <address@hidden> wrote:
> On Jan 23, 7:05 pm, Jorgen Grahn <address@hidden> wrote:
>> On Sun, 2011-01-23, rusi wrote:
>> > On Jan 23, 3:41 am, address@hidden wrote:
>> >> I have the following file...
>>
>> > snipped
>>
>> >>     (setq zsd-c-font-lock-keywords-3 nil)
>>
>> > No I dont have an answer (and please excuse my hijacking your question
>> > for mine :-) )
>>
>> You should at least have changed the subject line.
>>
>> > but do you know where I can find out about things like
>> > foo-font-lock-keywords-{1,2,3}?
>>
>> > Both C and lisp modes are too deep-structured for me to easily figure
>> > out...
>>
>> > IOW just looking for a typical, simple language mode that uses font-
>> > lock correctly...
>>
>> Here is a really simple one. Works for me -- if major things are
>> missing or wrong, I haven't noticed.  I had to google around and
>> experiment a lot to get it to this state.
>>
>> ;;; refer-mode.el -- Major mode for refer(1) files
>> ;;
>> ;; Copyright (C) 2005 Jörgen Grahn <address@hidden>
>> ;; All right reserved.
>> ;;
>> ;; $Id: refer-mode.el,v 1.3 2005/10/30 17:08:15 grahn Exp $
>> ;; $Name:  $
>>
>> (defconst refer-font-lock-keywords
>>   '(("^%Z.*$" . font-lock-comment-face)
>>     ("^%[ATQ] .+$" . font-lock-keyword-face)
>>     ("^%[K] .+$" . font-lock-string-face)
>>     )
>>   "Syntax highlighting for Refer mode.")
>>
>> (define-derived-mode refer-mode text-mode "Refer"
>>   "Major mode for editing refer(1) bibliographies.
>> This is merely text mode, plus some colorization.
>>
>> A subjective quick guide to the keywords:
>>
>> %T title                 %D year of publication
>> %A author                %I issuer/publisher
>> %Q corporate author      %C city of publication
>> [...]
>> Compare with the standard, but obsolete, bib-mode, which handles the
>> approximately same file format. (Oddly enough, Bib-mode handles
>> refer(1) files; refbib and refer.el handle BibTeX.)"
>>
>>   (setq comment-start "%Z")
>>   (setq comment-start-skip "%Z\\s-*")
>>
>>   (set (make-local-variable 'font-lock-defaults)
>>        '((refer-font-lock-keywords
>>           refer-font-lock-keywords
>>           refer-font-lock-keywords
>>           refer-font-lock-keywords)
>>          t)))
>>
>> (provide 'refer-mode)
>>
>> --
>>   // Jorgen Grahn <grahn@  Oo  o.   .  .
>> \X/     snipabacken.se>   O  o   .
>
> Well Thanks for the efforts Jorgen
> But I am specifically interested in whats with the
> font-lock-keywords-{1,2,3}
> what are the differences, what should go in each etc.

The answer to this question is, I think, shorter than the one you
asked me.

As I said in my previous reply to you (IIRC), the 3 versions of the
font-lock-keywords in cc mode are different "levels" of fontification.
ONLY ONE (ok, at most one) is used at any given time.  You can
customize cc mode by picking the one you like (or by making up your
own from scratch).  The code I showed you picked ...-3 as the default,
but any cc mode user can change that.

Jorgen gave you a complete (I think) example of using font-lock and
setting up some keywords for his "refer" model, just as you had asked
for.  Forget about -1, -2 and -3 and if you understand what he did,
you can set up your own keywords as you see fit for whatever you want
to do.  (I'm not claiming that is trivial, by the way.)

Cheers.
                        Jim


reply via email to

[Prev in Thread] Current Thread [Next in Thread]