" --------------------------------------------------------------------- " File: bro.vim " Birthday: Wed Aug 03 10:41:01 PDT 2005 " Author: Martin Casado " (... also without a clue about writing VIM syntax files " thanks python.vim & c.vim!) " " * PROBLEMS * " - keywords within hyphenated words (e.g. "port" in port-name) are " highlighted " " " --------------------------------------------------------------------- if version < 600 syntax clear elseif exists("b:current_syntax") finish endif syn keyword broStatement break continue del syn keyword broStatement case syn keyword broStatement alarm using syn keyword broStatement default delete else syn keyword broStatement event efmt syn keyword broStatement local match next syn keyword broStatement print return schedule syn keyword broStatement switch this type syn keyword broStorageClass const global redef global_attr export syn keyword broOperator in add of any syn keyword broStatement function nextgroup=broFunction skipwhite syn match broFunction "[a-zA-Z_][a-zA-Z0-9_]*" contained syn keyword broType addr bool count syn keyword broType counter double enum syn keyword broType file int interval syn keyword broType list net pattern syn keyword broType port record set syn keyword broType string subnet table syn keyword broType timer time union syn keyword broType vector syn keyword broDate day days hr hrs syn keyword broDate min mins sec syn keyword broDate secs msec msecs syn keyword broDate usec usecs syn match broPreCondit "@load" syn keyword broRepeat for syn keyword broConditional if else " String and Character constants " Highlight special characters (those which have a backslash) differently syn match cSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" syn match cSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)" syn match cFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained syn match cFormat display "%%" contained syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell syn match broEscape +\\[abfnrtv'"\\]+ contained syn match broEscape "\\\o\{1,3}" contained syn match broEscape "\\x\x\{2}" contained syn match broEscape "\(\\u\x\{4}\|\\U\x\{8}\)" contained syn match broEscape "\\$" syn match broComment "#.*$" contains=broTodo syn keyword broTodo TODO FIXME XXX contained " numbers (including longs and complex) syn match broNumber "\<0x\x\+[Ll]\=\>" syn match broNumber "\<\d\+[LljJ]\=\>" syn match broNumber "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" syn match broNumber "\<\d\+\.\([eE][+-]\=\d\+\)\=[jJ]\=\>" syn match broNumber "\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" if version >= 508 || !exists("did_bro_syn_inits") if version <= 508 let did_bro_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif " The default methods for highlighting. Can be overridden later HiLink broStatement Statement HiLink broFunction Function HiLink broConditional Conditional HiLink broRepeat Repeat HiLink broEscape Special HiLink broType Type HiLink broPreCondit PreCondit HiLink broComment Comment HiLink broTodo Todo HiLink broNumber Number HiLink broOperator Operator HiLink broStorageClass StorageClass HiLink broDate SpecialChar HiLink cString String HiLink cFormat cSpecial HiLink cSpecial SpecialChar delcommand HiLink endif let b:current_syntax = "bro"