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