1" Vim syntax file 2" Language: Valgrind Memory Debugger Output 3" Maintainer: Roger Luethi <[email protected]> 4" Program URL: http://devel-home.kde.org/~sewardj/ 5" Last Change: 2014 Oct 02 6" 7" Notes: mostly based on strace.vim and xml.vim 8" 9" Contributors: Christoph Gysin <[email protected]> 10 11" Quit when a syntax file was already loaded 12if exists("b:current_syntax") 13 finish 14endif 15let s:keepcpo= &cpo 16set cpo&vim 17 18syn case match 19syn sync minlines=50 20 21syn match valgrindSpecLine "^[+-]\{2}\d\+[+-]\{2}.*$" 22 23syn region valgrindRegion 24 \ start=+^==\z(\d\+\)== \w.*$+ 25 \ skip=+^==\z1==\( \| .*\)$+ 26 \ end=+^+ 27 \ fold 28 \ keepend 29 \ contains=valgrindPidChunk,valgrindLine 30 31syn region valgrindPidChunk 32 \ start=+\(^==\)\@<=+ 33 \ end=+\(==\)\@=+ 34 \ contained 35 \ contains=valgrindPid0,valgrindPid1,valgrindPid2,valgrindPid3,valgrindPid4,valgrindPid5,valgrindPid6,valgrindPid7,valgrindPid8,valgrindPid9 36 \ keepend 37 38syn match valgrindPid0 "\d\+0=" contained 39syn match valgrindPid1 "\d\+1=" contained 40syn match valgrindPid2 "\d\+2=" contained 41syn match valgrindPid3 "\d\+3=" contained 42syn match valgrindPid4 "\d\+4=" contained 43syn match valgrindPid5 "\d\+5=" contained 44syn match valgrindPid6 "\d\+6=" contained 45syn match valgrindPid7 "\d\+7=" contained 46syn match valgrindPid8 "\d\+8=" contained 47syn match valgrindPid9 "\d\+9=" contained 48 49syn region valgrindLine 50 \ start=+\(^==\d\+== \)\@<=+ 51 \ end=+$+ 52 \ keepend 53 \ contained 54 \ contains=valgrindOptions,valgrindMsg,valgrindLoc 55 56syn match valgrindOptions "[ ]\{3}-.*$" contained 57 58syn match valgrindMsg "\S.*$" contained 59 \ contains=valgrindError,valgrindNote,valgrindSummary 60syn match valgrindError "\(Invalid\|\d\+ errors\|.* definitely lost\).*$" contained 61syn match valgrindNote ".*still reachable.*" contained 62syn match valgrindSummary ".*SUMMARY:" contained 63 64syn match valgrindLoc "\s\+\(by\|at\|Address\).*$" contained 65 \ contains=valgrindAt,valgrindAddr,valgrindFunc,valgrindBin,valgrindSrc 66syn match valgrindAt "at\s\@=" contained 67syn match valgrindAddr "\(\W\)\@<=0x\x\+" contained 68syn match valgrindFunc "\(: \)\@<=\w\+" contained 69syn match valgrindBin "\((\(with\|\)in \)\@<=\S\+\()\)\@=" contained 70syn match valgrindSrc "\((\)\@<=[^)]*:\d\+\()\)\@=" contained 71 72" Define the default highlighting 73 74hi def link valgrindSpecLine Type 75"hi def link valgrindRegion Special 76 77hi def link valgrindPid0 Special 78hi def link valgrindPid1 Comment 79hi def link valgrindPid2 Type 80hi def link valgrindPid3 Constant 81hi def link valgrindPid4 Number 82hi def link valgrindPid5 Identifier 83hi def link valgrindPid6 Statement 84hi def link valgrindPid7 Error 85hi def link valgrindPid8 LineNr 86hi def link valgrindPid9 Normal 87"hi def link valgrindLine Special 88 89hi def link valgrindOptions Type 90"hi def link valgrindMsg Special 91"hi def link valgrindLoc Special 92 93hi def link valgrindError Special 94hi def link valgrindNote Comment 95hi def link valgrindSummary Type 96 97hi def link valgrindAt Special 98hi def link valgrindAddr Number 99hi def link valgrindFunc Type 100hi def link valgrindBin Comment 101hi def link valgrindSrc Statement 102 103let b:current_syntax = "valgrind" 104 105let &cpo = s:keepcpo 106unlet s:keepcpo 107