neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

vdf.vim (1401B)


      1 " Vim syntax file
      2 " Language:	Valve Data Format
      3 " Maintainer:	ObserverOfTime <chronobserver@disroot.org>
      4 " Filenames:	*.vdf
      5 " Last Change:	2022 Sep 15
      6 
      7 if exists('b:current_syntax')
      8    finish
      9 endif
     10 
     11 let s:cpo_save = &cpoptions
     12 set cpoptions&vim
     13 
     14 " Comment
     15 syn keyword vdfTodo contained TODO FIXME XXX
     16 syn match vdfComment +//.*+ contains=vdfTodo
     17 
     18 " Macro
     19 syn match vdfMacro /^\s*#.*/
     20 
     21 " Tag
     22 syn region vdfTag start=/"/ skip=/\\"/ end=/"/
     23            \ nextgroup=vdfValue skipwhite oneline
     24 
     25 " Section
     26 syn region vdfSection matchgroup=vdfBrace
     27            \ start=/{/ end=/}/ transparent fold
     28            \ contains=vdfTag,vdfSection,vdfComment,vdfConditional
     29 
     30 " Conditional
     31 syn match vdfConditional /\[\$\w\{1,1021}\]/ nextgroup=vdfTag
     32 
     33 " Value
     34 syn region vdfValue start=/"/ skip=/\\"/ end=/"/
     35            \ oneline contained contains=vdfVariable,vdfNumber,vdfEscape
     36 syn region vdfVariable start=/%/ skip=/\\%/ end=/%/ oneline contained
     37 syn match vdfEscape /\\[nt\\"]/ contained
     38 syn match vdfNumber /"-\?\d\+"/ contained
     39 
     40 hi def link vdfBrace Delimiter
     41 hi def link vdfComment Comment
     42 hi def link vdfConditional Constant
     43 hi def link vdfEscape SpecialChar
     44 hi def link vdfMacro Macro
     45 hi def link vdfNumber Number
     46 hi def link vdfTag Keyword
     47 hi def link vdfTodo Todo
     48 hi def link vdfValue String
     49 hi def link vdfVariable Identifier
     50 
     51 let b:current_syntax = 'vdf'
     52 
     53 let &cpoptions = s:cpo_save
     54 unlet s:cpo_save