diff options
author | Bram Moolenaar <Bram@vim.org> | 2004-07-16 20:18:37 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2004-07-16 20:18:37 +0000 |
commit | 21cf823a906f1f66391a145a976fdae8e98e0394 (patch) | |
tree | 5bae960027f0aefb74dc7176fd8e1509aea71200 /runtime/syntax | |
parent | 2df6dcc596d3c79283ec9efc36425a5564a45ab5 (diff) | |
download | vim-git-21cf823a906f1f66391a145a976fdae8e98e0394.tar.gz |
updated for version 7.0009v7.0009
Diffstat (limited to 'runtime/syntax')
-rw-r--r-- | runtime/syntax/d.vim | 164 | ||||
-rw-r--r-- | runtime/syntax/iss.vim | 103 | ||||
-rw-r--r-- | runtime/syntax/scheme.vim | 154 |
3 files changed, 251 insertions, 170 deletions
diff --git a/runtime/syntax/d.vim b/runtime/syntax/d.vim index 51ecc43ae..bfb6a0344 100644 --- a/runtime/syntax/d.vim +++ b/runtime/syntax/d.vim @@ -1,10 +1,9 @@ -" Vim syntax file for the D programming language (version 0.90). +" Vim syntax file for the D programming language (version 0.95). " -" Language: D -" Maintainer: Jason Mills<jmills@cs.mun.ca> -" URL: -" Last Change: 2004 May 21 -" Version: 0.8 +" Language: D +" Maintainer: Jason Mills<jmills@cs.mun.ca> +" Last Change: 2004 Jul 15 +" Version: 0.10 " " Options: " d_comment_strings - set to highlight strings and numbers in comments @@ -30,39 +29,40 @@ endif " Keyword definitions " -syn keyword dExternal import module extern -syn keyword dConditional if else switch -syn keyword dBranch goto break continue -syn keyword dRepeat while for do foreach -syn keyword dBoolean true false -syn keyword dConstant null -syn keyword dTypedef alias typedef -syn keyword dStructure template interface class enum struct union -syn keyword dOperator new delete typeof cast align is -syn keyword dOperator this super +syn keyword dExternal import package module extern +syn keyword dConditional if else switch +syn keyword dBranch goto break continue +syn keyword dRepeat while for do foreach +syn keyword dBoolean true false +syn keyword dConstant null +syn keyword dTypedef alias typedef +syn keyword dStructure template interface class enum struct union +syn keyword dOperator new delete typeof typeid cast align is +syn keyword dOperator this super if exists("d_hl_operator_overload") - syn keyword dOpOverload opNeg opCom opPostInc opPostDec opAdd opSub opSub_r - syn keyword dOpOverload opMul opDiv opDiv_r opMod opMod_r opAnd opOr opXor - syn keyword dOpOverload opShl opShl_r opShr opShr_r opUShr opUShr_r opCat - syn keyword dOpOverload opCat_r opEquals opEquals opCmp opCmp opCmp opCmp - syn keyword dOpOverload opAddAssign opSubAssign opMulAssign opDivAssign - syn keyword dOpOverload opModAssign opAndAssign opOrAssign opXorAssign - syn keyword dOpOverload opShlAssign opShrAssign opUShrAssign opCatAssign - syn keyword dOpOverload opIndex opCall opSlice + syn keyword dOpOverload opNeg opCom opPostInc opPostDec opAdd opSub opSub_r + syn keyword dOpOverload opMul opDiv opDiv_r opMod opMod_r opAnd opOr opXor + syn keyword dOpOverload opShl opShl_r opShr opShr_r opUShr opUShr_r opCat + syn keyword dOpOverload opCat_r opEquals opEquals opCmp opCmp opCmp opCmp + syn keyword dOpOverload opAddAssign opSubAssign opMulAssign opDivAssign + syn keyword dOpOverload opModAssign opAndAssign opOrAssign opXorAssign + syn keyword dOpOverload opShlAssign opShrAssign opUShrAssign opCatAssign + syn keyword dOpOverload opIndex opIndexAssign opCall opSlice + syn keyword dOpOverload opAdd_r opMul_r opAnd_r opOr_r opXor_r endif -syn keyword dType ushort int uint long ulong float -syn keyword dType void byte ubyte double bit char wchar ucent cent -syn keyword dType short bool dchar -syn keyword dType real ireal ifloat idouble creal cfloat cdouble -syn keyword dDebug deprecated unittest -syn keyword dExceptions throw try catch finally -syn keyword dScopeDecl public protected private export -syn keyword dStatement version debug return with invariant body -syn keyword dStatement in out inout asm mixin -syn keyword dStatement function delegate -syn keyword dStorageClass auto static override final const abstract volatile -syn keyword dStorageClass synchronized -syn keyword dPragma pragma +syn keyword dType ushort int uint long ulong float +syn keyword dType void byte ubyte double bit char wchar ucent cent +syn keyword dType short bool dchar +syn keyword dType real ireal ifloat idouble creal cfloat cdouble +syn keyword dDebug deprecated unittest +syn keyword dExceptions throw try catch finally +syn keyword dScopeDecl public protected private export +syn keyword dStatement version debug return with invariant body +syn keyword dStatement in out inout asm mixin +syn keyword dStatement function delegate +syn keyword dStorageClass auto static override final const abstract volatile +syn keyword dStorageClass synchronized +syn keyword dPragma pragma " Assert is a statement and a module name. @@ -81,34 +81,34 @@ syn match dAssert "[^.]\s*\<assert\>"ms=s+1 " Labels " " We contain dScopeDecl so public: private: etc. are not highlighted like labels -syn match dUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl -syn keyword dLabel case default +syn match dUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl +syn keyword dLabel case default " Comments " -syn keyword dTodo contained TODO FIXME TEMP XXX -syn match dCommentStar contained "^\s*\*[^/]"me=e-1 -syn match dCommentStar contained "^\s*\*$" -syn match dCommentPlus contained "^\s*+[^/]"me=e-1 -syn match dCommentPlus contained "^\s*+$" +syn keyword dTodo contained TODO FIXME TEMP XXX +syn match dCommentStar contained "^\s*\*[^/]"me=e-1 +syn match dCommentStar contained "^\s*\*$" +syn match dCommentPlus contained "^\s*+[^/]"me=e-1 +syn match dCommentPlus contained "^\s*+$" if exists("d_comment_strings") - syn region dBlockCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=dCommentStar,dUnicode,dEscSequence,@Spell - syn region dNestedCommentString contained start=+"+ end=+"+ end="+"me=s-1,he=s-1 contains=dCommentPlus,dUnicode,dEscSequence,@Spell - syn region dLineCommentString contained start=+"+ end=+$\|"+ contains=dUnicode,dEscSequence,@Spell - syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,@Spell - syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell - syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell + syn region dBlockCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=dCommentStar,dUnicode,dEscSequence,@Spell + syn region dNestedCommentString contained start=+"+ end=+"+ end="+"me=s-1,he=s-1 contains=dCommentPlus,dUnicode,dEscSequence,@Spell + syn region dLineCommentString contained start=+"+ end=+$\|"+ contains=dUnicode,dEscSequence,@Spell + syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,@Spell + syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell + syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell else - syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,@Spell - syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell - syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell + syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,@Spell + syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell + syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell endif -hi link dLineCommentString dBlockCommentString -hi link dBlockCommentString dString -hi link dNestedCommentString dString -hi link dCommentStar dBlockComment -hi link dCommentPlus dNestedComment +hi link dLineCommentString dBlockCommentString +hi link dBlockCommentString dString +hi link dNestedCommentString dString +hi link dCommentStar dBlockComment +hi link dCommentPlus dNestedComment syn sync minlines=25 @@ -118,54 +118,54 @@ syn match dSpecialCharError contained "[^']" " Escape sequences (oct,specal char,hex,wchar). These are not contained " because they are considered string litterals -syn match dEscSequence "\\\(\o\{1,3}\|[\"\\'\\?ntbrfva]\|u\x\{4}\|U\x\{8}\|x\x\x\)" -syn match dCharacter "'[^']*'" contains=dEscSequence,dSpecialCharError -syn match dCharacter "'\\''" contains=dEscSequence -syn match dCharacter "'[^\\]'" +syn match dEscSequence "\\\(\o\{1,3}\|[\"\\'\\?ntbrfva]\|u\x\{4}\|U\x\{8}\|x\x\x\)" +syn match dCharacter "'[^']*'" contains=dEscSequence,dSpecialCharError +syn match dCharacter "'\\''" contains=dEscSequence +syn match dCharacter "'[^\\]'" " Unicode characters " -syn match dUnicode "\\u\d\{4\}" +syn match dUnicode "\\u\d\{4\}" " String. " -syn region dString start=+"+ end=+"+ contains=dEscSequence,@Spell -syn region dRawString start=+`+ skip=+\\`+ end=+`+ contains=@Spell -syn region dRawString start=+r"+ skip=+\\"+ end=+"+ contains=@Spell -syn region dHexString start=+x"+ skip=+\\"+ end=+"+ +syn region dString start=+"+ end=+"+ contains=dEscSequence,@Spell +syn region dRawString start=+`+ skip=+\\`+ end=+`+ contains=@Spell +syn region dRawString start=+r"+ skip=+\\"+ end=+"+ contains=@Spell +syn region dHexString start=+x"+ skip=+\\"+ end=+"+ " Numbers " syn case ignore -syn match dInt display "\<\d[0-9_]*\(u\=l\=\|l\=u\=\)\>" +syn match dInt display "\<\d[0-9_]*\(u\=l\=\|l\=u\=\)\>" " Hex number -syn match dHex display "\<0x[0-9a-f_]\+\(u\=l\=\|l\=u\=\)\>" -syn match dHex display "\<\x[0-9a-f_]*h\(u\=l\=\|l\=u\=\)\>" +syn match dHex display "\<0x[0-9a-f_]\+\(u\=l\=\|l\=u\=\)\>" +syn match dHex display "\<\x[0-9a-f_]*h\(u\=l\=\|l\=u\=\)\>" " Flag the first zero of an octal number as something special -syn match dOctal display "\<0[0-7_]\+\(u\=l\=\|l\=u\=\)\>" contains=cOctalZero -syn match dOctalZero display contained "\<0" +syn match dOctal display "\<0[0-7_]\+\(u\=l\=\|l\=u\=\)\>" contains=cOctalZero +syn match dOctalZero display contained "\<0" "floating point without the dot -syn match dFloat display "\<\d[0-9_]*\(fi\=\|l\=i\)\>" +syn match dFloat display "\<\d[0-9_]*\(fi\=\|l\=i\)\>" "floating point number, with dot, optional exponent -syn match dFloat display "\<\d[0-9_]*\.[0-9_]*\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=" +syn match dFloat display "\<\d[0-9_]*\.[0-9_]*\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=" "floating point number, starting with a dot, optional exponent -syn match dFloat display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>" +syn match dFloat display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>" "floating point number, without dot, with exponent -"syn match dFloat display "\<\d\+e[-+]\=\d\+[fl]\=\>" -syn match dFloat display "\<\d[0-9_]*e[-+]\=[0-9_]\+[fl]\=\>" +"syn match dFloat display "\<\d\+e[-+]\=\d\+[fl]\=\>" +syn match dFloat display "\<\d[0-9_]*e[-+]\=[0-9_]\+[fl]\=\>" "floating point without the dot -syn match dHexFloat display "\<0x\x\+\(fi\=\|l\=i\)\>" +syn match dHexFloat display "\<0x\x\+\(fi\=\|l\=i\)\>" "floating point number, with dot, optional exponent -syn match dHexFloat display "\<0x\x\+\.\x*\(p[-+]\=\x\+\)\=[fl]\=i\=" +syn match dHexFloat display "\<0x\x\+\.\x*\(p[-+]\=\x\+\)\=[fl]\=i\=" "floating point number, without dot, with exponent -syn match dHexFloat display "\<0x\x\+p[-+]\=\x\+[fl]\=\>" +syn match dHexFloat display "\<0x\x\+p[-+]\=\x\+[fl]\=\>" " binary numbers -syn match dBinary display "\<0b[01_]\+\>" +syn match dBinary display "\<0b[01_]\+\>" " flag an octal number with wrong digits -syn match dOctalError display "0\o*[89]\d*" +syn match dOctalError display "0\o*[89]\d*" syn case match " Pragma (preprocessor) support diff --git a/runtime/syntax/iss.vim b/runtime/syntax/iss.vim index 557cd0a5c..f94c7cdf0 100644 --- a/runtime/syntax/iss.vim +++ b/runtime/syntax/iss.vim @@ -1,7 +1,8 @@ " Vim syntax file -" Language: Inno Setup File (iss file) and My InnoSetup extension -" Maintainer: Dominique Stéphan (dominique@mggen.com) -" Last change: 2004 July 5 +" Language: Inno Setup File (iss file) and My InnoSetup extension +" Maintainer: Jason Mills (jmills@cs.mun.ca) +" Previous Maintainer: Dominique Stéphan (dominique@mggen.com) +" Last Change: 2004 Jul 13 " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -14,37 +15,40 @@ endif " shut case off syn case ignore +" Preprocessor +syn region issPreProc start="^\s*#" end="$" + " Section -syn region issHeader start="\[" end="\]" +syn region issHeader start="\[" end="\]" " Label in the [Setup] Section -syn match issLabel "^[^=]\+=" +syn match issLabel "^[^=]\+=" " URL -syn match issURL "http[s]\=:\/\/.*$" - -" syn match issName "[^: ]\+:" -syn match issName "Name:" -syn match issName "MinVersion:\|OnlyBelowVersion:\|Languages:" -syn match issName "Source:\|DestDir:\|DestName:\|CopyMode:" -syn match issName "Attribs:\|Permissions:\|FontInstall:\|Flags:" -syn match issName "FileName:\|Parameters:\|WorkingDir:\|HotKey:\|Comment:" -syn match issName "IconFilename:\|IconIndex:" -syn match issName "Section:\|Key:\|String:" -syn match issName "Root:\|SubKey:\|ValueType:\|ValueName:\|ValueData:" -syn match issName "RunOnceId:" -syn match issName "Type:" -syn match issName "Components:\|Description:\|GroupDescription:\|Types:\|ExtraDiskSpaceRequired:" -syn match issName "StatusMsg:\|RunOnceId:\|Tasks:" -syn match issName "MessagesFile:\|LicenseFile:\|InfoBeforeFile:\|InfoAfterFile:" - -syn match issComment "^;.*$" +syn match issURL "http[s]\=:\/\/.*$" + +" syn match issName "[^: ]\+:" +syn match issName "Name:" +syn match issName "MinVersion:\|OnlyBelowVersion:\|Languages:" +syn match issName "Source:\|DestDir:\|DestName:\|CopyMode:" +syn match issName "Attribs:\|Permissions:\|FontInstall:\|Flags:" +syn match issName "FileName:\|Parameters:\|WorkingDir:\|HotKey:\|Comment:" +syn match issName "IconFilename:\|IconIndex:" +syn match issName "Section:\|Key:\|String:" +syn match issName "Root:\|SubKey:\|ValueType:\|ValueName:\|ValueData:" +syn match issName "RunOnceId:" +syn match issName "Type:" +syn match issName "Components:\|Description:\|GroupDescription:\|Types:\|ExtraDiskSpaceRequired:" +syn match issName "StatusMsg:\|RunOnceId:\|Tasks:" +syn match issName "MessagesFile:\|LicenseFile:\|InfoBeforeFile:\|InfoAfterFile:" + +syn match issComment "^;.*$" " folder constant -syn match issFolder "{[^{]*}" +syn match issFolder "{[^{]*}" " string -syn region issString start=+"+ end=+"+ contains=issFolder +syn region issString start=+"+ end=+"+ contains=issFolder " [Dirs] syn keyword issDirsFlags deleteafterinstall uninsalwaysuninstall uninsneveruninstall @@ -104,31 +108,30 @@ if version >= 508 || !exists("did_iss_syntax_inits") endif " The default methods for highlighting. Can be overridden later - HiLink issHeader Special - HiLink issComment Comment - HiLink issLabel Type - HiLink issName Type - HiLink issFolder Special - HiLink issString String - HiLink issValue String - HiLink issURL Include - - HiLink issDirsFlags Keyword - HiLink issFilesCopyMode Keyword - HiLink issFilesAttribs Keyword - HiLink issFilesPermissions Keyword - HiLink issFilesFlags Keyword - HiLink issIconsFlags Keyword - HiLink issINIFlags Keyword - HiLink issRegRootKey Keyword - HiLink issRegValueType Keyword - HiLink issRegFlags Keyword - HiLink issRunFlags Keyword - HiLink issTypesFlags Keyword - HiLink issComponentsFlags Keyword - HiLink issInstallDeleteType Keyword - HiLink issTasksFlags Keyword - + HiLink issHeader Special + HiLink issComment Comment + HiLink issLabel Type + HiLink issName Type + HiLink issFolder Special + HiLink issString String + HiLink issValue String + HiLink issURL Include + HiLink issPreProc PreProc + + HiLink issDirsFlags Keyword + HiLink issFilesCopyMode Keyword + HiLink issFilesAttribs Keyword + HiLink issFilesFlags Keyword + HiLink issIconsFlags Keyword + HiLink issINIFlags Keyword + HiLink issRegRootKey Keyword + HiLink issRegValueType Keyword + HiLink issRegFlags Keyword + HiLink issRunFlags Keyword + HiLink issTypesFlags Keyword + HiLink issComponentsFlags Keyword + HiLink issInstallDeleteType Keyword + HiLink issTasksFlags Keyword delcommand HiLink endif diff --git a/runtime/syntax/scheme.vim b/runtime/syntax/scheme.vim index d3de35b6b..1d4f55ddc 100644 --- a/runtime/syntax/scheme.vim +++ b/runtime/syntax/scheme.vim @@ -1,11 +1,14 @@ " Vim syntax file " Language: Scheme (R5RS) -" Maintainer: Dirk van Deun <dirk@igwe.vub.ac.be> -" Last Change: April 30, 1998 +" Last Change: July 14, 2004 +" Maintainer: Sergey Khorev <iamphet@nm.ru> +" Original author: Dirk van Deun <dirk@igwe.vub.ac.be> " This script incorrectly recognizes some junk input as numerals: " parsing the complete system of Scheme numerals using the pattern " language is practically impossible: I did a lax approximation. + +" MzScheme extensions can be activated with setting is_mzscheme variable " Suggestions and bug reports are solicited by the author. @@ -23,12 +26,12 @@ syn case ignore " Fascist highlighting: everything that doesn't fit the rules is an error... -syn match schemeError oneline ![^ \t()";]*! +syn match schemeError oneline ![^ \t()\[\]";]*! syn match schemeError oneline ")" " Quoted and backquoted stuff -syn region schemeQuoted matchgroup=Delimiter start="['`]" end=![ \t()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc +syn region schemeQuoted matchgroup=Delimiter start="['`]" end=![ \t()\[\]";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc syn region schemeQuoted matchgroup=Delimiter start="['`](" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc syn region schemeQuoted matchgroup=Delimiter start="['`]#(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc @@ -36,15 +39,26 @@ syn region schemeQuoted matchgroup=Delimiter start="['`]#(" matchgroup=Delimiter syn region schemeStrucRestricted matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc syn region schemeStrucRestricted matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeUnquote matchgroup=Delimiter start="," end=![ \t()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeUnquote matchgroup=Delimiter start=",@" end=![ \t()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc +" Popular Scheme extension: +" using [] as well as () +syn region schemeStrucRestricted matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc +syn region schemeStrucRestricted matchgroup=Delimiter start="#\[" matchgroup=Delimiter end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeUnquote matchgroup=Delimiter start=",(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeUnquote matchgroup=Delimiter start=",@(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc +syn region schemeUnquote matchgroup=Delimiter start="," end=![ \t\[\]()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc +syn region schemeUnquote matchgroup=Delimiter start=",@" end=![ \t\[\]()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc + +syn region schemeUnquote matchgroup=Delimiter start=",(" end=")" contains=ALL +syn region schemeUnquote matchgroup=Delimiter start=",@(" end=")" contains=ALL syn region schemeUnquote matchgroup=Delimiter start=",#(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc syn region schemeUnquote matchgroup=Delimiter start=",@#(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc +syn region schemeUnquote matchgroup=Delimiter start=",\[" end="\]" contains=ALL +syn region schemeUnquote matchgroup=Delimiter start=",@\[" end="\]" contains=ALL + +syn region schemeUnquote matchgroup=Delimiter start=",#\[" end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc +syn region schemeUnquote matchgroup=Delimiter start=",@#\[" end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc + " R5RS Scheme Functions and Syntax: if version < 600 @@ -96,63 +110,126 @@ syn keyword schemeFunc dynamic-wind port? values call-with-values syn keyword schemeFunc scheme-report-environment null-environment syn keyword schemeFunc interaction-environment -" Writing out the complete description of Scheme numerals without -" using variables is a day's work for a trained secretary... -" This is a useful lax approximation: - -syn match schemeNumber oneline "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*" -syn match schemeError oneline ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t()";][^ \t()";]*! - -syn match schemeOther oneline ![+-][ \t()";]!me=e-1 -syn match schemeOther oneline ![+-]$! " ... so that a single + or -, inside a quoted context, would not be " interpreted as a number (outside such contexts, it's a schemeFunc) -syn match schemeDelimiter oneline !\.[ \t()";]!me=e-1 +syn match schemeDelimiter oneline !\.[ \t\[\]()";]!me=e-1 syn match schemeDelimiter oneline !\.$! " ... and a single dot is not a number but a delimiter -" Simple literals: - -syn match schemeBoolean oneline "#[tf]" -syn match schemeError oneline !#[tf][^ \t()";]\+! - -syn match schemeChar oneline "#\\" -syn match schemeChar oneline "#\\." -syn match schemeError oneline !#\\.[^ \t()";]\+! -syn match schemeChar oneline "#\\space" -syn match schemeError oneline !#\\space[^ \t()";]\+! -syn match schemeChar oneline "#\\newline" -syn match schemeError oneline !#\\newline[^ \t()";]\+! - " This keeps all other stuff unhighlighted, except *stuff* and <stuff>: -syn match schemeOther oneline ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*, -syn match schemeError oneline ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, +syn match schemeOther oneline ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*, +syn match schemeError oneline ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*, syn match schemeOther oneline "\.\.\." -syn match schemeError oneline !\.\.\.[^ \t()";]\+! +syn match schemeError oneline !\.\.\.[^ \t\[\]()";]\+! " ... a special identifier -syn match schemeConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t()";],me=e-1 +syn match schemeConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t\[\]()";],me=e-1 syn match schemeConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$, -syn match schemeError oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, +syn match schemeError oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*, -syn match schemeConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t()";],me=e-1 +syn match schemeConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1 syn match schemeConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$, -syn match schemeError oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, +syn match schemeError oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*, " Non-quoted lists, and strings: syn region schemeStruc matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALL syn region schemeStruc matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALL +syn region schemeStruc matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=ALL +syn region schemeStruc matchgroup=Delimiter start="#\[" matchgroup=Delimiter end="\]" contains=ALL + +" Simple literals: syn region schemeString start=+"+ skip=+\\[\\"]+ end=+"+ " Comments: syn match schemeComment ";.*$" + +" Writing out the complete description of Scheme numerals without +" using variables is a day's work for a trained secretary... + +syn match schemeOther oneline ![+-][ \t\[\]()";]!me=e-1 +syn match schemeOther oneline ![+-]$! +" +" This is a useful lax approximation: +syn match schemeNumber oneline "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*" +syn match schemeError oneline ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*! + +syn match schemeBoolean oneline "#[tf]" +syn match schemeError oneline !#[tf][^ \t\[\]()";]\+! + +syn match schemeChar oneline "#\\" +syn match schemeChar oneline "#\\." +syn match schemeError oneline !#\\.[^ \t\[\]()";]\+! +syn match schemeChar oneline "#\\space" +syn match schemeError oneline !#\\space[^ \t\[\]()";]\+! +syn match schemeChar oneline "#\\newline" +syn match schemeError oneline !#\\newline[^ \t\[\]()";]\+! + +if exists("b:is_mzscheme") || exists("is_mzscheme") + " MzScheme extensions added by Sergey Khorev + " multiline comment + syntax region schemeMultilineComment start=/#|/ end=/|#/ + " #%xxx are the special MzScheme identifiers + syn match schemeOther oneline "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+" + " anything limited by |'s is identifier + syn match schemeOther oneline "|[^|]\+|" + + syn match schemeChar oneline "#\\return" + + " Modules require stmt + syn keyword schemeExtSyntax module require dynamic-require lib prefix all-except prefix-all-except rename + " modules provide stmt + syn keyword schemeExtSyntax provide struct all-from all-from-except all-defined all-defined-except + " Other from MzScheme + syn keyword schemeExtSyntax with-handlers when unless instantiate define-struct case-lambda syntax-case + syn keyword schemeExtSyntax free-identifier=? bound-identifier=? module-identifier=? syntax-object->datum + syn keyword schemeExtSyntax datum->syntax-object + syn keyword schemeExtSyntax let-values let*-values letrec-values set!-values fluid-let parameterize begin0 + syn keyword schemeExtSyntax error raise opt-lambda define-values unit unit/sig define-signature + syn keyword schemeExtSyntax invoke-unit/sig define-values/invoke-unit/sig compound-unit/sig import export + syn keyword schemeExtSyntax link syntax quasisyntax unsyntax with-syntax + hi def link schemeExtSyntax Type + + syn keyword schemeExtFunc format system-type current-extension-compiler current-extension-linker + syn keyword schemeExtFunc use-standard-linker use-standard-compiler + syn keyword schemeExtFunc find-executable-path append-object-suffix append-extension-suffix + syn keyword schemeExtFunc current-library-collection-paths current-extension-compiler-flags make-parameter + syn keyword schemeExtFunc current-directory build-path normalize-path current-extension-linker-flags + syn keyword schemeExtFunc file-exists? directory-exists? delete-directory/files delete-directory delete-file + syn keyword schemeExtFunc system compile-file system-library-subpath getenv putenv current-standard-link-libraries + syn keyword schemeExtFunc remove* file-size find-files fold-files directory-list shell-execute split-path + syn keyword schemeExtFunc current-error-port process/ports process printf fprintf open-input-string open-output-string + syn keyword schemeExtFunc get-output-string + " exceptions + syn keyword schemeExtFunc exn exn:application:arity exn:application:continuation exn:application:fprintf:mismatch + syn keyword schemeExtFunc exn:application:mismatch exn:application:type exn:application:mismatch exn:break exn:i/o:filesystem exn:i/o:port + syn keyword schemeExtFunc exn:i/o:port:closed exn:i/o:tcp exn:i/o:udp exn:misc exn:misc:application exn:misc:unsupported exn:module exn:read + syn keyword schemeExtFunc exn:read:non-char exn:special-comment exn:syntax exn:thread exn:user exn:variable exn:application:mismatch + syn keyword schemeExtFunc exn? exn:application:arity? exn:application:continuation? exn:application:fprintf:mismatch? exn:application:mismatch? + syn keyword schemeExtFunc exn:application:type? exn:application:mismatch? exn:break? exn:i/o:filesystem? exn:i/o:port? exn:i/o:port:closed? + syn keyword schemeExtFunc exn:i/o:tcp? exn:i/o:udp? exn:misc? exn:misc:application? exn:misc:unsupported? exn:module? exn:read? exn:read:non-char? + syn keyword schemeExtFunc exn:special-comment? exn:syntax? exn:thread? exn:user? exn:variable? exn:application:mismatch? + " Command-line parsing + syn keyword schemeExtFunc command-line current-command-line-arguments once-any help-labels multi once-each + hi def link schemeExtFunc PreProc + + " syntax quoting, unquoting and quasiquotation + syn region schemeUnquote matchgroup=Delimiter start="#," end=![ \t\[\]()";]!me=e-1 contains=ALL + syn region schemeUnquote matchgroup=Delimiter start="#,@" end=![ \t\[\]()";]!me=e-1 contains=ALL + syn region schemeUnquote matchgroup=Delimiter start="#,(" end=")" contains=ALL + syn region schemeUnquote matchgroup=Delimiter start="#,@(" end=")" contains=ALL + syn region schemeUnquote matchgroup=Delimiter start="#,\[" end="\]" contains=ALL + syn region schemeUnquote matchgroup=Delimiter start="#,@\[" end="\]" contains=ALL + syn region schemeQuoted matchgroup=Delimiter start="#['`]" end=![ \t()\[\]";]!me=e-1 contains=ALL + syn region schemeQuoted matchgroup=Delimiter start="#['`](" matchgroup=Delimiter end=")" contains=ALL +endif + " Synchronization and the wrapping up... syn sync match matchPlace grouphere NONE "^[^ \t]" @@ -181,6 +258,7 @@ if version >= 508 || !exists("did_scheme_syntax_inits") HiLink schemeConstant Constant HiLink schemeComment Comment + HiLink schemeMultilineComment Comment HiLink schemeError Error delcommand HiLink |