commit 0eef70546c0d83e3fa4d4532517da22cca1115e7 Author: Sheldon Johnson Date: Wed Jan 24 23:56:53 2018 +0700 Initial commit diff --git a/quakec.vim b/quakec.vim new file mode 100644 index 0000000..6dfa619 --- /dev/null +++ b/quakec.vim @@ -0,0 +1,81 @@ +" Vim syntax file +" Language: QuakeC +" Maintainer: Robert Siska +" 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 +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 + else + command -nargs=+ HiLink hi def link + 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 + +let b:current_syntax = "quakec"