" Vim syntax file " Language: UnrealScript " Maintainer: Mark Ferrell " URL: ftp://ftp.chaoticdreams.org/pub/ut/vim/uc.vim " Credits: Based on the java.vim syntax file by Claudio Fleiner " Last change: 2003 May 31 " Please check :help uc.vim for comments on some of the options available. " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif " some characters that cannot be in a UnrealScript program (outside a string) syn match ucError "[\\@`]" syn match ucError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/" " we define it here so that included files can test for it if !exists("main_syntax") let main_syntax='uc' endif syntax case ignore " keyword definitions syn keyword ucBranch break continue syn keyword ucConditional if else switch syn keyword ucRepeat while for do foreach syn keyword ucBoolean true false syn keyword ucConstant null syn keyword ucOperator new instanceof syn keyword ucType boolean char byte short int long float double syn keyword ucType void Pawn sound state auto exec function ipaddr syn keyword ucType ELightType actor ammo defaultproperties bool syn keyword ucType native noexport var out vector name local string syn keyword ucType event syn keyword ucStatement return syn keyword ucStorageClass static synchronized transient volatile final syn keyword ucMethodDecl synchronized throws " UnrealScript defines classes in sorta fscked up fashion syn match ucClassDecl "^[Cc]lass[\s$]*\S*[\s$]*expands[\s$]*\S*;" contains=ucSpecial,ucSpecialChar,ucClassKeys syn keyword ucClassKeys class expands extends syn match ucExternal "^\#exec.*" contains=ucCommentString,ucNumber syn keyword ucScopeDecl public protected private abstract " UnrealScript Functions syn match ucFuncDef "^.*function\s*[\(]*" contains=ucType,ucStorageClass syn match ucEventDef "^.*event\s*[\(]*" contains=ucType,ucStorageClass syn match ucClassLabel "[a-zA-Z0-9]*\'[a-zA-Z0-9]*\'" contains=ucCharacter syn region ucLabelRegion transparent matchgroup=ucLabel start="\" matchgroup=NONE end=":" contains=ucNumber syn match ucUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=ucLabel syn keyword ucLabel default " The following cluster contains all java groups except the contained ones syn cluster ucTop contains=ucExternal,ucError,ucError,ucBranch,ucLabelRegion,ucLabel,ucConditional,ucRepeat,ucBoolean,ucConstant,ucTypedef,ucOperator,ucType,ucType,ucStatement,ucStorageClass,ucMethodDecl,ucClassDecl,ucClassDecl,ucClassDecl,ucScopeDecl,ucError,ucError2,ucUserLabel,ucClassLabel " Comments syn keyword ucTodo contained TODO FIXME XXX syn region ucCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=ucSpecial,ucCommentStar,ucSpecialChar syn region ucComment2String contained start=+"+ end=+$\|"+ contains=ucSpecial,ucSpecialChar syn match ucCommentCharacter contained "'\\[^']\{1,6\}'" contains=ucSpecialChar syn match ucCommentCharacter contained "'\\''" contains=ucSpecialChar syn match ucCommentCharacter contained "'[^\\]'" syn region ucComment start="/\*" end="\*/" contains=ucCommentString,ucCommentCharacter,ucNumber,ucTodo syn match ucCommentStar contained "^\s*\*[^/]"me=e-1 syn match ucCommentStar contained "^\s*\*$" syn match ucLineComment "//.*" contains=ucComment2String,ucCommentCharacter,ucNumber,ucTodo hi link ucCommentString ucString hi link ucComment2String ucString hi link ucCommentCharacter ucCharacter syn cluster ucTop add=ucComment,ucLineComment " match the special comment /**/ syn match ucComment "/\*\*/" " Strings and constants syn match ucSpecialError contained "\\." "syn match ucSpecialCharError contained "[^']" syn match ucSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)" syn region ucString start=+"+ end=+"+ contains=ucSpecialChar,ucSpecialError syn match ucStringError +"\([^"\\]\|\\.\)*$+ syn match ucCharacter "'[^']*'" contains=ucSpecialChar,ucSpecialCharError syn match ucCharacter "'\\''" contains=ucSpecialChar syn match ucCharacter "'[^\\]'" syn match ucNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" syn match ucNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" syn match ucNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" syn match ucNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" " unicode characters syn match ucSpecial "\\u\d\{4\}" syn cluster ucTop add=ucString,ucCharacter,ucNumber,ucSpecial,ucStringError " catch errors caused by wrong parenthesis syn region ucParen transparent start="(" end=")" contains=@ucTop,ucParen syn match ucParenError ")" hi link ucParenError ucError if !exists("uc_minlines") let uc_minlines = 10 endif exec "syn sync ccomment ucComment minlines=" . uc_minlines " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_uc_syntax_inits") if version < 508 let did_uc_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink ucFuncDef Conditional HiLink ucEventDef Conditional HiLink ucBraces Function HiLink ucBranch Conditional HiLink ucLabel Label HiLink ucUserLabel Label HiLink ucConditional Conditional HiLink ucRepeat Repeat HiLink ucStorageClass StorageClass HiLink ucMethodDecl ucStorageClass HiLink ucClassDecl ucStorageClass HiLink ucScopeDecl ucStorageClass HiLink ucBoolean Boolean HiLink ucSpecial Special HiLink ucSpecialError Error HiLink ucSpecialCharError Error HiLink ucString String HiLink ucCharacter Character HiLink ucSpecialChar SpecialChar HiLink ucNumber Number HiLink ucError Error HiLink ucStringError Error HiLink ucStatement Statement HiLink ucOperator Operator HiLink ucOverLoaded Operator HiLink ucComment Comment HiLink ucDocComment Comment HiLink ucLineComment Comment HiLink ucConstant ucBoolean HiLink ucTypedef Typedef HiLink ucTodo Todo HiLink ucCommentTitle SpecialComment HiLink ucDocTags Special HiLink ucDocParam Function HiLink ucCommentStar ucComment HiLink ucType Type HiLink ucExternal Include HiLink ucClassKeys Conditional HiLink ucClassLabel Conditional HiLink htmlComment Special HiLink htmlCommentPart Special delcommand HiLink endif let b:current_syntax = "uc" if main_syntax == 'uc' unlet main_syntax endif " vim: ts=8