mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			179 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			179 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	UnrealScript | ||
|  | " Maintainer:	Mark Ferrell <major@chaoticdreams.org> | ||
|  | " 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="\<case\>" 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 <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   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 |