blob: a9b4a8c8e72d9c49d1da073b5cefa658c5526225 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" 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/
Bram Moolenaar54775062019-07-31 21:07:14 +02005" Last Change: 2019 Jul 24
Bram Moolenaar071d4272004-06-13 20:20:40 +00006"
7" Notes: mostly based on strace.vim and xml.vim
Bram Moolenaar3a991dd2014-10-02 01:41:41 +02008"
9" Contributors: Christoph Gysin <christoph.gysin@gmail.com>
Bram Moolenaar071d4272004-06-13 20:20:40 +000010
11" Quit when a syntax file was already loaded
12if exists("b:current_syntax")
13 finish
14endif
Bram Moolenaar9a7224b2012-04-30 15:56:52 +020015let s:keepcpo= &cpo
16set cpo&vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000017
Bram Moolenaar0122c402015-02-03 19:13:34 +010018" Lines can be long with demangled c++ functions.
19setlocal synmaxcol=8000
20
Bram Moolenaar071d4272004-06-13 20:20:40 +000021syn case match
22syn sync minlines=50
23
24syn match valgrindSpecLine "^[+-]\{2}\d\+[+-]\{2}.*$"
25
26syn region valgrindRegion
27 \ start=+^==\z(\d\+\)== \w.*$+
Bram Moolenaar54775062019-07-31 21:07:14 +020028 \ skip=+^==\z1==\( \| .*\| \S.*\)$+
Bram Moolenaar071d4272004-06-13 20:20:40 +000029 \ end=+^+
30 \ fold
31 \ keepend
32 \ contains=valgrindPidChunk,valgrindLine
33
34syn region valgrindPidChunk
Bram Moolenaar0122c402015-02-03 19:13:34 +010035 \ start=+^==\zs+
36 \ end=+\ze==+
Bram Moolenaar071d4272004-06-13 20:20:40 +000037 \ contained
38 \ contains=valgrindPid0,valgrindPid1,valgrindPid2,valgrindPid3,valgrindPid4,valgrindPid5,valgrindPid6,valgrindPid7,valgrindPid8,valgrindPid9
39 \ keepend
40
41syn match valgrindPid0 "\d\+0=" contained
42syn match valgrindPid1 "\d\+1=" contained
43syn match valgrindPid2 "\d\+2=" contained
44syn match valgrindPid3 "\d\+3=" contained
45syn match valgrindPid4 "\d\+4=" contained
46syn match valgrindPid5 "\d\+5=" contained
47syn match valgrindPid6 "\d\+6=" contained
48syn match valgrindPid7 "\d\+7=" contained
49syn match valgrindPid8 "\d\+8=" contained
50syn match valgrindPid9 "\d\+9=" contained
51
52syn region valgrindLine
53 \ start=+\(^==\d\+== \)\@<=+
54 \ end=+$+
55 \ keepend
56 \ contained
57 \ contains=valgrindOptions,valgrindMsg,valgrindLoc
58
59syn match valgrindOptions "[ ]\{3}-.*$" contained
60
61syn match valgrindMsg "\S.*$" contained
62 \ contains=valgrindError,valgrindNote,valgrindSummary
63syn match valgrindError "\(Invalid\|\d\+ errors\|.* definitely lost\).*$" contained
64syn match valgrindNote ".*still reachable.*" contained
65syn match valgrindSummary ".*SUMMARY:" contained
66
67syn match valgrindLoc "\s\+\(by\|at\|Address\).*$" contained
68 \ contains=valgrindAt,valgrindAddr,valgrindFunc,valgrindBin,valgrindSrc
69syn match valgrindAt "at\s\@=" contained
Bram Moolenaar0122c402015-02-03 19:13:34 +010070syn match valgrindAddr "\W\zs0x\x\+" contained
71
Bram Moolenaar54775062019-07-31 21:07:14 +020072syn match valgrindFunc ": \zs\h[a-zA-Z0-9_:\[\]()<>&*+\-,=%!|^ @.]*\ze([^)]*)$" contained
Bram Moolenaar0122c402015-02-03 19:13:34 +010073syn match valgrindBin "(\(with\)\=in \zs\S\+)\@=" contained
74syn match valgrindSrc "(\zs[^)]*:\d\+)\@=" contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000075
76" Define the default highlighting
77
78hi def link valgrindSpecLine Type
79"hi def link valgrindRegion Special
80
81hi def link valgrindPid0 Special
82hi def link valgrindPid1 Comment
83hi def link valgrindPid2 Type
84hi def link valgrindPid3 Constant
85hi def link valgrindPid4 Number
86hi def link valgrindPid5 Identifier
87hi def link valgrindPid6 Statement
88hi def link valgrindPid7 Error
89hi def link valgrindPid8 LineNr
90hi def link valgrindPid9 Normal
91"hi def link valgrindLine Special
92
93hi def link valgrindOptions Type
94"hi def link valgrindMsg Special
95"hi def link valgrindLoc Special
96
97hi def link valgrindError Special
98hi def link valgrindNote Comment
99hi def link valgrindSummary Type
100
101hi def link valgrindAt Special
102hi def link valgrindAddr Number
103hi def link valgrindFunc Type
104hi def link valgrindBin Comment
105hi def link valgrindSrc Statement
106
107let b:current_syntax = "valgrind"
Bram Moolenaar9a7224b2012-04-30 15:56:52 +0200108
109let &cpo = s:keepcpo
110unlet s:keepcpo