|
|
@@ -1,81 +1,57 @@ |
|
|
|
" Vim syntax file |
|
|
|
" Language: QuakeC |
|
|
|
" Maintainer: Robert Siska <github.com/RobSis> |
|
|
|
" Last Change: 2013 Mar 03 |
|
|
|
|
|
|
|
" Quit when a (custom) syntax file was already loaded |
|
|
|
if version < 600 |
|
|
|
syntax clear |
|
|
|
elseif exists("b:current_syntax") |
|
|
|
finish |
|
|
|
endif |
|
|
|
|
|
|
|
|
|
|
|
" Keywords and statements |
|
|
|
syn keyword qcStatement if else while do return |
|
|
|
syn keyword qcTodo contained TODO FIXME XXX |
|
|
|
syn keyword qcQuaked contained QUAKED |
|
|
|
|
|
|
|
syn keyword qcType void float vector string entity |
|
|
|
syn keyword qcStorageClass local |
|
|
|
|
|
|
|
syn keyword qcConstant TRUE FALSE |
|
|
|
|
|
|
|
|
|
|
|
" Literals |
|
|
|
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\)\>" |
|
|
|
|
|
|
|
|
|
|
|
" Comments |
|
|
|
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 |
|
|
|
|
|
|
|
" Match comments that start out of screen |
|
|
|
if !exists("quakec_minlines") |
|
|
|
let quakec_minlines = 10 |
|
|
|
if exists("b:current_syntax") |
|
|
|
finish |
|
|
|
endif |
|
|
|
exec "syn sync ccomment qcComment minlines=" . quakec_minlines |
|
|
|
|
|
|
|
|
|
|
|
" Define the default highlighting. |
|
|
|
" Only used when an item doesn't have highlighting yet |
|
|
|
if version >= 508 || !exists("did_quakec_syn_inits") |
|
|
|
if version < 508 |
|
|
|
let did_quakec_syn_inits = 1 |
|
|
|
command -nargs=+ HiLink hi link <args> |
|
|
|
else |
|
|
|
command -nargs=+ HiLink hi def link <args> |
|
|
|
endif |
|
|
|
|
|
|
|
HiLink qcLineComment qcComment |
|
|
|
HiLink qcComment Comment |
|
|
|
HiLink qcString String |
|
|
|
HiLink qcSpecial SpecialChar |
|
|
|
HiLink qcNumber Number |
|
|
|
HiLink qcVector String |
|
|
|
HiLink qcFrame Number |
|
|
|
HiLink qcBuiltin PreProc |
|
|
|
HiLink qcPragma PreProc |
|
|
|
HiLink qcType Type |
|
|
|
HiLink qcStorageClass StorageClass |
|
|
|
HiLink qcStatement Statement |
|
|
|
HiLink qcConstant Constant |
|
|
|
|
|
|
|
HiLink qcTodo Todo |
|
|
|
HiLink qcQuaked Label |
|
|
|
|
|
|
|
delcommand HiLink |
|
|
|
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" |