unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* help with font-lock-multiline
@ 2004-09-27 23:02 Raul Acevedo
  0 siblings, 0 replies; 6+ messages in thread
From: Raul Acevedo @ 2004-09-27 23:02 UTC (permalink / raw)


I'm doing JSP development, and I want something very simple.  I want to
fontify the text between <% and %> tags, even if spread across multiple
lines. 

How do I do this?  I've tried regular expressions such as:

  <%.+%>
  <%\(.+\n\)+%>

and many variations, but none work.  With enough messing around I can
get some parts fontified, but it's not consistent.  Yes, I have setq-
default font-lock-multiline to true.

Anyone gotten multiline fontification in any mode to work?  How?

Raul

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: help with font-lock-multiline
       [not found] <mailman.4324.1096326611.1998.help-gnu-emacs@gnu.org>
@ 2004-09-28  2:12 ` Katsumi Yamaoka
  2004-09-28 16:38 ` Stefan Monnier
  1 sibling, 0 replies; 6+ messages in thread
From: Katsumi Yamaoka @ 2004-09-28  2:12 UTC (permalink / raw)


>>>>> In <mailman.4324.1096326611.1998.help-gnu-emacs@gnu.org>
>>>>>	Raul Acevedo wrote:

> I'm doing JSP development, and I want something very simple.  I want to
> fontify the text between <% and %> tags, even if spread across multiple
> lines.

You will need to use a function which searches for a range
larger than the range which font-lock usually searches for,
instead of a regexp.  I tried it in the *scratch* buffer using
the following configuration:

(defun find-brackets (limit)
  (or (re-search-forward "<%[^>]*%>" nil t)
      (let ((start (point)))
	(if (and (search-backward "<%" nil t)
		 (search-forward "%>" nil t))
	    (goto-char limit)
	  (goto-char start)
	  nil))))

(setq font-lock-keywords (append font-lock-keywords
				 '((find-brackets (0 'underline t))))
      font-lock-multiline t)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: help with font-lock-multiline
       [not found] <mailman.4324.1096326611.1998.help-gnu-emacs@gnu.org>
  2004-09-28  2:12 ` Katsumi Yamaoka
@ 2004-09-28 16:38 ` Stefan Monnier
  2004-09-28 17:01   ` Gian Uberto Lauri
                     ` (2 more replies)
  1 sibling, 3 replies; 6+ messages in thread
From: Stefan Monnier @ 2004-09-28 16:38 UTC (permalink / raw)


> I'm doing JSP development, and I want something very simple.  I want to
> fontify the text between <% and %> tags, even if spread across multiple
> lines.

font-lock-multiline is probably not the right tool here (it works OK for
things that are "generally single line, but something spread over a couple
more lines", but for really long sections forget it).

Your best bet is to mark <% and %> as string (or comment) delimiters in
font-lock-syntactic-keywords.  If you want to highlight them in a different
face that the string-face or comment-face, then use
font-lock-syntactic-face-function.


        Stefan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: help with font-lock-multiline
  2004-09-28 16:38 ` Stefan Monnier
@ 2004-09-28 17:01   ` Gian Uberto Lauri
       [not found]   ` <mailman.103.1096391270.2017.help-gnu-emacs@gnu.org>
  2004-09-30 12:36   ` Katsumi Yamaoka
  2 siblings, 0 replies; 6+ messages in thread
From: Gian Uberto Lauri @ 2004-09-28 17:01 UTC (permalink / raw)
  Cc: help-gnu-emacs

>>>>> "SM" == Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> I'm doing JSP development, and I want something very simple.  I want to
>> fontify the text between <% and %> tags, even if spread across multiple
>> lines.

SM> font-lock-multiline is probably not the right tool here (it works OK for
SM> things that are "generally single line, but something spread over a couple
SM> more lines", but for really long sections forget it).

SM> Your best bet is to mark <% and %> as string (or comment) delimiters in
SM> font-lock-syntactic-keywords.  If you want to highlight them in a different
SM> face that the string-face or comment-face, then use
SM> font-lock-syntactic-face-function.

KA-BANG!!!!!!!!!!!!!!

I'm  trying it  in the  beta version  of the  next version  wannabe of
html-helper-mode - masochist can find it at the following url:

<http://savannah.nongnu.org/download/baol-hth/beta-html-helper-mode.el.gz>

but it falls one tag short (it seems it fails to decorate the last tag
- an html tag could span multiple lines)

Where can I learn how to write it properly ?

The tex-mode example was a too  little help for my limited skills (and
intellect).

TIA!!!!

-- 
 /\            ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
  //--\ | | \|  |   Integralista GNUslamico e fancazzista 
\/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: help with font-lock-multiline
       [not found]   ` <mailman.103.1096391270.2017.help-gnu-emacs@gnu.org>
@ 2004-09-28 19:41     ` Stefan Monnier
  0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier @ 2004-09-28 19:41 UTC (permalink / raw)


> I'm  trying it  in the  beta version  of the  next version  wannabe of
> html-helper-mode - masochist can find it at the following url:

> <http://savannah.nongnu.org/download/baol-hth/beta-html-helper-mode.el.gz>

> but it falls one tag short (it seems it fails to decorate the last tag
> - an html tag could span multiple lines)

> Where can I learn how to write it properly ?

> The tex-mode example was a too  little help for my limited skills (and
> intellect).

I don't have time to read your code and guess the problem.
Please post more specific/detailed questions.


        Stefan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: help with font-lock-multiline
  2004-09-28 16:38 ` Stefan Monnier
  2004-09-28 17:01   ` Gian Uberto Lauri
       [not found]   ` <mailman.103.1096391270.2017.help-gnu-emacs@gnu.org>
@ 2004-09-30 12:36   ` Katsumi Yamaoka
  2 siblings, 0 replies; 6+ messages in thread
From: Katsumi Yamaoka @ 2004-09-30 12:36 UTC (permalink / raw)


>>>>> In <jwvpt46xshc.fsf-monnier+gnu.emacs.help@gnu.org>
>>>>>	Stefan Monnier wrote:

> Your best bet is to mark <% and %> as string (or comment) delimiters in
> font-lock-syntactic-keywords.  If you want to highlight them in a different
> face that the string-face or comment-face, then use
> font-lock-syntactic-face-function.

I read the Syntax Tables section of the Elisp info manual and
found how do I highlight text between <% and %>.  That the
simplest way to do that in the *scracth* buffer will be the
following:

(setq font-lock-syntactic-keywords '(("\\(<\\)%" 1 "< b")
				     ("%\\(>\\)" 1 "> b")))

I will look for the way to highlight <%foo%> and <%bar%> by
different face.  Thank you.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-09-30 12:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-27 23:02 help with font-lock-multiline Raul Acevedo
     [not found] <mailman.4324.1096326611.1998.help-gnu-emacs@gnu.org>
2004-09-28  2:12 ` Katsumi Yamaoka
2004-09-28 16:38 ` Stefan Monnier
2004-09-28 17:01   ` Gian Uberto Lauri
     [not found]   ` <mailman.103.1096391270.2017.help-gnu-emacs@gnu.org>
2004-09-28 19:41     ` Stefan Monnier
2004-09-30 12:36   ` Katsumi Yamaoka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).