codekingpro/portable-devtools
114k
1" Vim syntax file2" Language: Valve Data Format3" Maintainer: ObserverOfTime <chronobserver@disroot.org>4" Filenames: *.vdf5" Last Change: 2022 Sep 156 7if exists('b:current_syntax')8 finish9endif10 11let s:cpo_save = &cpoptions12set cpoptions&vim13 14" Comment15syn keyword vdfTodo contained TODO FIXME XXX16syn match vdfComment +//.*+ contains=vdfTodo17 18" Macro19syn match vdfMacro /^\s*#.*/20 21" Tag22syn region vdfTag start=/"/ skip=/\\"/ end=/"/23 \ nextgroup=vdfValue skipwhite oneline24 25" Section26syn region vdfSection matchgroup=vdfBrace27 \ start=/{/ end=/}/ transparent fold28 \ contains=vdfTag,vdfSection,vdfComment,vdfConditional29 30" Conditional31syn match vdfConditional /\[\$\w\{1,1021}\]/ nextgroup=vdfTag32 33" Value34syn region vdfValue start=/"/ skip=/\\"/ end=/"/35 \ oneline contained contains=vdfVariable,vdfNumber,vdfEscape36syn region vdfVariable start=/%/ skip=/\\%/ end=/%/ oneline contained37syn match vdfEscape /\\[nt\\"]/ contained38syn match vdfNumber /"-\?\d\+"/ contained39 40hi def link vdfBrace Delimiter41hi def link vdfComment Comment42hi def link vdfConditional Constant43hi def link vdfEscape SpecialChar44hi def link vdfMacro Macro45hi def link vdfNumber Number46hi def link vdfTag Keyword47hi def link vdfTodo Todo48hi def link vdfValue String49hi def link vdfVariable Identifier50 51let b:current_syntax = 'vdf'52 53let &cpoptions = s:cpo_save54unlet s:cpo_save55 