From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Hansen Newsgroups: gmane.emacs.help Subject: Re: define multi-line comments Date: Sun, 22 Jun 2008 12:15:53 +0200 Organization: disorganized Message-ID: <873an5srl2.fsf@localhorst.mine.nu> References: <87iqw4f9ki.fsf@literaturlatenight.de> <87tzfnur14.fsf@literaturlatenight.de> <87r6apykk9.fsf@literaturlatenight.de> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1214130245 5968 80.91.229.12 (22 Jun 2008 10:24:05 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 22 Jun 2008 10:24:05 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Jun 22 12:24:49 2008 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KAMkS-0005iu-KB for geh-help-gnu-emacs@m.gmane.org; Sun, 22 Jun 2008 12:24:40 +0200 Original-Received: from localhost ([127.0.0.1]:49197 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KAMjd-0006Zw-GN for geh-help-gnu-emacs@m.gmane.org; Sun, 22 Jun 2008 06:23:49 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KAMjA-0006ZI-4S for help-gnu-emacs@gnu.org; Sun, 22 Jun 2008 06:23:20 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KAMj8-0006Z6-F3 for help-gnu-emacs@gnu.org; Sun, 22 Jun 2008 06:23:19 -0400 Original-Received: from [199.232.76.173] (port=40566 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KAMj8-0006Z3-6G for help-gnu-emacs@gnu.org; Sun, 22 Jun 2008 06:23:18 -0400 Original-Received: from main.gmane.org ([80.91.229.2]:33904 helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KAMj7-0001Mb-Gk for help-gnu-emacs@gnu.org; Sun, 22 Jun 2008 06:23:17 -0400 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1KAMj4-0005d5-0D for help-gnu-emacs@gnu.org; Sun, 22 Jun 2008 10:23:14 +0000 Original-Received: from e178000060.adsl.alicedsl.de ([85.178.0.60]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 22 Jun 2008 10:23:13 +0000 Original-Received: from david.hansen by e178000060.adsl.alicedsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 22 Jun 2008 10:23:13 +0000 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 82 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: e178000060.adsl.alicedsl.de Mail-Copies-To: nobody User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.0.60 (gnu/linux) Cancel-Lock: sha1:vZKfXKim9T1OGsqxsHsrOfv9iV0= X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:55031 Archived-At: On Sun, 22 Jun 2008 09:51:02 +0200 henry atting wrote: > David Hansen wrote: > >> On Sat, 21 Jun 2008 10:32:39 +0200 henry atting wrote: >> >>> David Hansen wrote: >>> >>>> On Fri, 20 Jun 2008 16:46:37 +0200 henry atting wrote: >>>> >>>>> I have my own text mode (derived from text-mode), which defines some >>>>> syntax highlighting. Defining keywords is no problem but as far as I see >>>>> keywords don't work on serveral lines, e.g. this >>>>> >>>>> (list "\".*\"" 0 'font-lock-variable-name-face t) >>>>> I should have noted that before... If that's the only case, you can simply modify the syntax of a `"' (lookup `syntax tables' in the manual) to highlight the region as a string. I don't think it's possible to change the face here. >>> In the meantime I found a way to do it. I looked into lua-mode.el where >>> mulit-line comments work and changed it according to my needs: >>> >>> (list >>> "\\(?:^\\|[^-]\\)\\(\"\\(=*\\)\\(?:.\\|\n\\)*?\"\\)" >>> '(1 'font-lock-string-face t)) >> >> Setting `font-lock-multiline' to `t' and using regexps that spawn more >> than one line works "a bit". If it's not to important to highlight >> always correctly and if the regexp "usually" matches only one line this >> is an option as well. >> >>> >>>> But in many circumstances you can use `font-lock-syntactic-keywords' to >>>> make some region a "string" or "comment" and then use >>>> `font-lock-syntactic-face-function' to give it another face. >>> >>> Now I will take a look at this. Thanks :) >> >> Someone should tell the lua-mode developers about it... This works >> perfectly well if you have one region and one face for the whole region. >> But it's not an option for regions with multiple faces (like e.g. long >> function declarations in C). > > Because its only purpose is to highlight direct speech (in my > text-mode) it actually works very well. Are you talking about setting `font-lock-multiline' to `t' and just using regexps that may spawn several lines? If it works for you just use it, it will save a lot of trouble. But be warned, it's not 100% accurate. > Mmh, with `font-lock-syntactic-keywords' I couldn't get very far. I > found this in the manual: If you describe your problems in a bit more detail someone might be able to help. > ,---- > | — Variable: font-lock-syntactic-face-function > | [...] > | This can be used to highlighting different kinds of strings or comments > | differently. It is also sometimes abused together with > | font-lock-syntactic-keywords to highlight constructs that span multiple > | lines, but this is too esoteric to document here. > `---- > > which is not too encouraging. Ignore the "esoteric" comment. Just pretend your constructs are "strings of a programming language". It will work. If you run into problems that `parse-partial-sexp' behaves weird, play around with `parse-sexp-lookup-properties'. But i recommend to not care about this right now. If you grep the emacs sources for `syntactic-keywords' you'll find some examples (every language that has comments or strings that can't be described via syntax tables, e.g. html). David