updated for version 7.0009

This commit is contained in:
Bram Moolenaar
2004-07-16 20:18:37 +00:00
parent 2df6dcc596
commit 21cf823a90
17 changed files with 889 additions and 629 deletions

View File

@ -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

View File

@ -1,7 +1,8 @@
" Vim syntax file
" Language: Inno Setup File (iss file) and My InnoSetup extension
" Maintainer: Dominique St<53>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<53>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 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 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 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

View File

@ -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