neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

uc.vim (6634B)


      1 " Vim syntax file
      2 " Language:	UnrealScript
      3 " Maintainer:	Mark Ferrell <major@chaoticdreams.org>
      4 " URL:		ftp://ftp.chaoticdreams.org/pub/ut/vim/uc.vim
      5 " Credits:	Based on the java.vim syntax file by Claudio Fleiner
      6 " Last change:	2003 May 31
      7 
      8 " Please check :help uc.vim for comments on some of the options available.
      9 
     10 " quit when a syntax file was already loaded
     11 if exists("b:current_syntax")
     12  finish
     13 endif
     14 
     15 " some characters that cannot be in a UnrealScript program (outside a string)
     16 syn match ucError "[\\@`]"
     17 syn match ucError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/"
     18 
     19 " we define it here so that included files can test for it
     20 if !exists("main_syntax")
     21  let main_syntax='uc'
     22 endif
     23 
     24 syntax case ignore
     25 
     26 " keyword definitions
     27 syn keyword ucBranch	      break continue
     28 syn keyword ucConditional     if else switch
     29 syn keyword ucRepeat	      while for do foreach
     30 syn keyword ucBoolean	      true false
     31 syn keyword ucConstant	      null
     32 syn keyword ucOperator	      new instanceof
     33 syn keyword ucType	      boolean char byte short int long float double
     34 syn keyword ucType	      void Pawn sound state auto exec function ipaddr
     35 syn keyword ucType	      ELightType actor ammo defaultproperties bool
     36 syn keyword ucType	      native noexport var out vector name local string
     37 syn keyword ucType	      event
     38 syn keyword ucStatement       return
     39 syn keyword ucStorageClass    static synchronized transient volatile final
     40 syn keyword ucMethodDecl      synchronized throws
     41 
     42 " UnrealScript defines classes in sorta fscked up fashion
     43 syn match   ucClassDecl       "^[Cc]lass[\s$]*\S*[\s$]*expands[\s$]*\S*;" contains=ucSpecial,ucSpecialChar,ucClassKeys
     44 syn keyword ucClassKeys	      class expands extends
     45 syn match   ucExternal	      "^\#exec.*" contains=ucCommentString,ucNumber
     46 syn keyword ucScopeDecl       public protected private abstract
     47 
     48 " UnrealScript Functions
     49 syn match   ucFuncDef	      "^.*function\s*[\(]*" contains=ucType,ucStorageClass
     50 syn match   ucEventDef	      "^.*event\s*[\(]*" contains=ucType,ucStorageClass
     51 syn match   ucClassLabel      "[a-zA-Z0-9]*\'[a-zA-Z0-9]*\'" contains=ucCharacter
     52 
     53 syn region  ucLabelRegion     transparent matchgroup=ucLabel start="\<case\>" matchgroup=NONE end=":" contains=ucNumber
     54 syn match   ucUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=ucLabel
     55 syn keyword ucLabel	      default
     56 
     57 " The following cluster contains all java groups except the contained ones
     58 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
     59 
     60 " Comments
     61 syn keyword ucTodo	       contained TODO FIXME XXX
     62 syn region  ucCommentString    contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=ucSpecial,ucCommentStar,ucSpecialChar
     63 syn region  ucComment2String   contained start=+"+  end=+$\|"+  contains=ucSpecial,ucSpecialChar
     64 syn match   ucCommentCharacter contained "'\\[^']\{1,6\}'" contains=ucSpecialChar
     65 syn match   ucCommentCharacter contained "'\\''" contains=ucSpecialChar
     66 syn match   ucCommentCharacter contained "'[^\\]'"
     67 syn region  ucComment	       start="/\*"  end="\*/" contains=ucCommentString,ucCommentCharacter,ucNumber,ucTodo
     68 syn match   ucCommentStar      contained "^\s*\*[^/]"me=e-1
     69 syn match   ucCommentStar      contained "^\s*\*$"
     70 syn match   ucLineComment      "//.*" contains=ucComment2String,ucCommentCharacter,ucNumber,ucTodo
     71 hi link ucCommentString ucString
     72 hi link ucComment2String ucString
     73 hi link ucCommentCharacter ucCharacter
     74 
     75 syn cluster ucTop add=ucComment,ucLineComment
     76 
     77 " match the special comment /**/
     78 syn match   ucComment	       "/\*\*/"
     79 
     80 " Strings and constants
     81 syn match   ucSpecialError     contained "\\."
     82 "syn match   ucSpecialCharError contained "[^']"
     83 syn match   ucSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
     84 syn region  ucString	       start=+"+ end=+"+  contains=ucSpecialChar,ucSpecialError
     85 syn match   ucStringError      +"\([^"\\]\|\\.\)*$+
     86 syn match   ucCharacter        "'[^']*'" contains=ucSpecialChar,ucSpecialCharError
     87 syn match   ucCharacter        "'\\''" contains=ucSpecialChar
     88 syn match   ucCharacter        "'[^\\]'"
     89 syn match   ucNumber	       "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
     90 syn match   ucNumber	       "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
     91 syn match   ucNumber	       "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
     92 syn match   ucNumber	       "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
     93 
     94 " unicode characters
     95 syn match   ucSpecial "\\u\d\{4\}"
     96 
     97 syn cluster ucTop add=ucString,ucCharacter,ucNumber,ucSpecial,ucStringError
     98 
     99 " catch errors caused by wrong parenthesis
    100 syn region  ucParen	       transparent start="(" end=")" contains=@ucTop,ucParen
    101 syn match   ucParenError       ")"
    102 hi link     ucParenError       ucError
    103 
    104 if !exists("uc_minlines")
    105  let uc_minlines = 10
    106 endif
    107 exec "syn sync ccomment ucComment minlines=" . uc_minlines
    108 
    109 " Define the default highlighting.
    110 " Only when an item doesn't have highlighting yet
    111 
    112 hi def link ucFuncDef			Conditional
    113 hi def link ucEventDef			Conditional
    114 hi def link ucBraces			Function
    115 hi def link ucBranch			Conditional
    116 hi def link ucLabel			Label
    117 hi def link ucUserLabel			Label
    118 hi def link ucConditional			Conditional
    119 hi def link ucRepeat			Repeat
    120 hi def link ucStorageClass			StorageClass
    121 hi def link ucMethodDecl			ucStorageClass
    122 hi def link ucClassDecl			ucStorageClass
    123 hi def link ucScopeDecl			ucStorageClass
    124 hi def link ucBoolean			Boolean
    125 hi def link ucSpecial			Special
    126 hi def link ucSpecialError			Error
    127 hi def link ucSpecialCharError		Error
    128 hi def link ucString			String
    129 hi def link ucCharacter			Character
    130 hi def link ucSpecialChar			SpecialChar
    131 hi def link ucNumber			Number
    132 hi def link ucError			Error
    133 hi def link ucStringError			Error
    134 hi def link ucStatement			Statement
    135 hi def link ucOperator			Operator
    136 hi def link ucOverLoaded			Operator
    137 hi def link ucComment			Comment
    138 hi def link ucDocComment			Comment
    139 hi def link ucLineComment			Comment
    140 hi def link ucConstant			ucBoolean
    141 hi def link ucTypedef			Typedef
    142 hi def link ucTodo				Todo
    143 
    144 hi def link ucCommentTitle			SpecialComment
    145 hi def link ucDocTags			Special
    146 hi def link ucDocParam			Function
    147 hi def link ucCommentStar			ucComment
    148 
    149 hi def link ucType				Type
    150 hi def link ucExternal			Include
    151 
    152 hi def link ucClassKeys			Conditional
    153 hi def link ucClassLabel			Conditional
    154 
    155 hi def link htmlComment			Special
    156 hi def link htmlCommentPart		Special
    157 
    158 
    159 let b:current_syntax = "uc"
    160 
    161 if main_syntax == 'uc'
    162  unlet main_syntax
    163 endif
    164 
    165 " vim: ts=8