[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: font-lock on variables
From: |
A.Politz |
Subject: |
Re: font-lock on variables |
Date: |
Sat, 25 Jul 2009 10:47:12 -0700 (PDT) |
User-agent: |
G2/1.0 |
On Jul 24, 10:27 pm, Santiago Mejia <me...@uchicago.edu> wrote:
> I am trying to hack a few extensions in emacs that allow one to look for
> words in dictionaries. (in particular, wordnet.el and sdcv.el (to be
> found, respectively,
> at:http://williamxu.net9.org/ref/wordnet.elandhttp://www.emacswiki.org/emacs/sdcv.el)
>
> When one looks for a word in, say, wordnet.el, it creates a new buffer,
> *WORDNET* which has several of its key terms fontified. However, I
> would like to be able to fontify, also, the actual word that I am
> searching. This word is a variable, and changes every time one makes a
> new search. After going through the manual, and looking around in
> google and the mailing lists, I have not been able to figure out how to
> achieve such thing.
>
> My idea so far is to define a global variable, my-foo-var, and add it to
> the keywords. I have played with all sorts of small variations of how
> to add the variable to the font-lock-keywords, but none has worked.
>
> Here is the most simple example (which as I said, did not work).
>
> (defvar my-foo-var "woman"
> "Current word that is seeked.")
>
> (defvar xxx-mode-font-lock-keywords ;keyword for buffer display
> '(
> ;; word used
> (my-foo-var . (1 font-lock-type-face))))
>
> I have also tried to use the function font-lock-add-keywords with no
> success. (this method, however, strikes me as undesirable, for I would
> have to find a way to remove each word that is added, and this might
> pose problems if one removes a word that one has looked for, but that is
> also a keyword to be fontified (for example, if one looks for the word
> "Antonyms", which is a keyword that is also fontified).
>
> Finally, every time I make a change to the xxx-mode-font-lock-keywords,
> I have to close emacs and restart it to make sure that the new changes
> work. Is there a less brutal way to test the results of one's changes
> to this variable? A way to test one's results without having to exit emacs?
>
> Any help is appreciated.
>
> Santiago.
(info "(elisp)Search-based Fontification")
Use a function:
(defvar my-foo-var "\\_<woman\\_>"
"Current word that is seeked.")
(defun modify-foo (string)
(setq my-foo-var (copy-seq string))
(font-lock-fontify-buffer))
(defun search-foo (limit)
(when my-foo-var
(re-search-forward my-foo-var limit t)))
(font-lock-add-keywords
nil
'((search-foo . 'font-lock-builtin-face)))
(modify-foo "\\_<man\\_>")
-ap
- Re: font-lock on variables,
A.Politz <=