if exists("b:current_syntax") finish endif syn keyword qcStatement goto break return continue syn keyword qcConditional if else switch syn keyword qcRepeat while for do syn keyword qcLabel case default syn keyword qcStructure struct union enum typedef syn keyword qcTodo contained TODO FIXME XXX syn keyword qcQuaked contained QUAKED syn keyword qcType void float vector string entity syn keyword qcStorageClass local var const syn keyword qcConstant TRUE FALSE syn match qcNumbers display transparent "\<\d\|\.\d" contains=qcNumber,qcHexNumber syn match qcHexNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" syn match qcNumber display contained "\([0-9]\+\(\.[0-9]*f\=\)\=\|\.[0-9]\+f\=\)\>" syn region qcVector display oneline start=+'+ end=+'+ keepend contains=@Spell syn region qcString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=qcSpecial,@Spell syn match qcSpecial display contained "\\\(x\x\+\|.\|$\)" syn match qcBuiltin display "\#\d\+" syn match qcFrame display "\$[^\d\W]\w*\>" syn match qcPragma display "\$\(flags\|base\|cd\|frame\|modelname\|origin\|scale\|skin\)\>" syn cluster qcCommentGroup contains=qcTodo,qcQuaked syn region qcLineComment start="//" skip="\\$" end="$" keepend contains=@qcCommentGroup,@Spell syn region qcComment start="/\*" end="\*/" contains=@qcCommentGroup,@Spell fold extend syn sync ccomment qcComment minlines=10 hi def link qcLineComment qcComment hi def link qcComment Comment hi def link qcConditional Conditional hi def link qcRepeat Repeat hi def link qcString String hi def link qcSpecial SpecialChar hi def link qcNumber Number hi def link qcVector String hi def link qcFrame Number hi def link qcBuiltin PreProc hi def link qcPragma PreProc hi def link qcType Type hi def link qcStorageClass StorageClass hi def link qcStatement Statement hi def link qcConstant Constant hi def link qcTodo Todo hi def link qcQuaked Label hi def link qcLabel Label let b:current_syntax = "quakec"