mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
updated for version 7.0001
This commit is contained in:
178
runtime/syntax/uc.vim
Normal file
178
runtime/syntax/uc.vim
Normal file
@@ -0,0 +1,178 @@
|
||||
" 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
|
Reference in New Issue
Block a user