diff --git a/ChangeLog b/ChangeLog index a15292b59..f0519a0fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,11 @@ - prevent . to match a newline (\n) - match from start of line and not from cursor position +2009-01-24 Enrico Weigelt, metux IT service + + * syntax/Syntax, syntax/nemerle.syntax: Added syntax rules + for Nemerle source files + 2009-01-19 Patrick Winnertz * edit/edit.h: Add two more ints diff --git a/syntax/Makefile.am b/syntax/Makefile.am index 2d9f29e2f..c6500b9f5 100644 --- a/syntax/Makefile.am +++ b/syntax/Makefile.am @@ -28,6 +28,7 @@ SYNTAXFILES = \ lisp.syntax \ lsm.syntax \ lua.syntax \ + nemerle.syntax \ m4.syntax \ mail.syntax \ makefile.syntax \ diff --git a/syntax/Syntax b/syntax/Syntax index e277ac6f9..4487aed3b 100644 --- a/syntax/Syntax +++ b/syntax/Syntax @@ -184,5 +184,8 @@ include debian-description.syntax file ..\*\\.([hH][sS][cC]?)$ Haskell\sprogram include haskell.syntax +file ..\*\\.(n|N)$ Nemerle\sProgram +include nemerle.syntax + file .\* unknown include unknown.syntax diff --git a/syntax/nemerle.syntax b/syntax/nemerle.syntax new file mode 100644 index 000000000..a3a0c3228 --- /dev/null +++ b/syntax/nemerle.syntax @@ -0,0 +1,171 @@ +# mcedit syntax file +# +# Copyright (c) 2004 The University of Wroclaw. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the University may not be used to endorse or promote +# products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +# NO EVENT SHALL THE UNIVERSITY BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Adapted from java.syntax by Jacek Sliwerski. + +context default + keyword whole abstract yellow + keyword whole and yellow + keyword whole array yellow + keyword whole as yellow + keyword whole base yellow + keyword whole bool yellow + keyword whole catch yellow + keyword whole const yellow + keyword whole continue yellow + keyword whole def yellow + keyword whole else yellow + keyword whole enum yellow + keyword whole extends yellow + keyword whole extern yellow + keyword whole false yellow + keyword whole finally yellow + keyword whole float yellow + keyword whole for yellow + keyword whole foreach yellow + keyword whole fun yellow + keyword whole if yellow + keyword whole implements yellow + keyword whole in yellow + keyword whole int yellow + keyword whole interface yellow + keyword whole internal yellow + keyword whole list yellow + keyword whole macro yellow + keyword whole match yellow + keyword whole module yellow + keyword whole mutable yellow + keyword whole namespace yellow + keyword whole new yellow + keyword whole null yellow + keyword whole object yellow + keyword whole option yellow + keyword whole out yellow + keyword whole override yellow + keyword whole params yellow + keyword whole private yellow + keyword whole protected yellow + keyword whole public yellow + keyword whole ref yellow + keyword whole sealed yellow + keyword whole static yellow + keyword whole string yellow + keyword whole syntax yellow + keyword whole this yellow + keyword whole throw yellow + keyword whole true yellow + keyword whole try yellow + keyword whole tymatch yellow + keyword whole type yellow + keyword whole typeof yellow + keyword whole unless yellow + keyword whole using yellow + keyword whole variant yellow + keyword whole virtual yellow + keyword whole void yellow + keyword whole when yellow + keyword whole where yellow + keyword whole while yellow + keyword whole with yellow + + keyword /\* brown + keyword \*/ brown + keyword // brown + + keyword '\\\{"abtnvfr\}' brightgreen + keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen + keyword '\\'' brightgreen + keyword '\\\\' brightgreen + keyword '\\0' brightgreen + keyword '\{\s!"#$%&()\*\+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\}' brightgreen + + + keyword %&& brightcyan + keyword || brightcyan + keyword && brightcyan + keyword %| brightcyan + keyword %& brightcyan + keyword %^ brightcyan + keyword :> brightcyan + keyword <[ brightcyan + keyword ]> brightcyan + keyword > yellow + keyword < yellow + keyword \+ yellow + keyword - yellow + keyword \* yellow + keyword / yellow + keyword % yellow + keyword = yellow + keyword != yellow + keyword == yellow + keyword { brightcyan + keyword } brightcyan + keyword ( brightcyan + keyword ) brightcyan + keyword [ brightcyan + keyword ] brightcyan + keyword , brightcyan + keyword : brightcyan + keyword ? brightcyan + keyword | brightcyan + keyword ~ brightcyan + keyword ! brightcyan + keyword ; brightmagenta + +context exclusive /\* \*/ brown + spellcheck + +context exclusive // \n brown + spellcheck + +context linestart # \n brightred + keyword \\\n yellow + keyword /\**\*/ brown + keyword //*\n brown + keyword "+" red + keyword <+> red + +context " " green + spellcheck + keyword $\[().abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\*\] brightgreen + keyword \\" brightgreen + keyword %% brightgreen + keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} brightgreen + keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} brightgreen + keyword %\[hl\]n brightgreen + keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s brightgreen + keyword %[*] brightgreen + keyword %c brightgreen + keyword %p brightgreen + keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen + keyword \\\\ brightgreen + keyword \\' brightgreen + keyword \\\{abtnvfr\} brightgreen + +