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