mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07: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
|