blob: d099971826fec6aa5d6b4c23764406d0d0267ef7 [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 Moolenaar0122c402015-02-03 19:13:34 +01005" Last Change: 2015 Jan 27
6" Included improvement by Dominique Pelle
Bram Moolenaar071d4272004-06-13 20:20:40 +00007"
8" Notes: mostly based on strace.vim and xml.vim
Bram Moolenaar3a991dd2014-10-02 01:41:41 +02009"
10" Contributors: Christoph Gysin <christoph.gysin@gmail.com>
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
12" Quit when a syntax file was already loaded
13if exists("b:current_syntax")
14 finish
15endif
Bram Moolenaar9a7224b2012-04-30 15:56:52 +020016let s:keepcpo= &cpo
17set cpo&vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000018
Bram Moolenaar0122c402015-02-03 19:13:34 +010019" Lines can be long with demangled c++ functions.
20setlocal synmaxcol=8000
21
Bram Moolenaar071d4272004-06-13 20:20:40 +000022syn case match
23syn sync minlines=50
24
25syn match valgrindSpecLine "^[+-]\{2}\d\+[+-]\{2}.*$"
26
27syn region valgrindRegion
28 \ start=+^==\z(\d\+\)== \w.*$+
29 \ skip=+^==\z1==\( \| .*\)$+
30 \ end=+^+
31 \ fold
32 \ keepend
33 \ contains=valgrindPidChunk,valgrindLine
34
35syn region valgrindPidChunk
Bram Moolenaar0122c402015-02-03 19:13:34 +010036 \ start=+^==\zs+
37 \ end=+\ze==+
Bram Moolenaar071d4272004-06-13 20:20:40 +000038 \ contained
39 \ contains=valgrindPid0,valgrindPid1,valgrindPid2,valgrindPid3,valgrindPid4,valgrindPid5,valgrindPid6,valgrindPid7,valgrindPid8,valgrindPid9
40 \ keepend
41
42syn match valgrindPid0 "\d\+0=" contained
43syn match valgrindPid1 "\d\+1=" contained
44syn match valgrindPid2 "\d\+2=" contained
45syn match valgrindPid3 "\d\+3=" contained
46syn match valgrindPid4 "\d\+4=" contained
47syn match valgrindPid5 "\d\+5=" contained
48syn match valgrindPid6 "\d\+6=" contained
49syn match valgrindPid7 "\d\+7=" contained
50syn match valgrindPid8 "\d\+8=" contained
51syn match valgrindPid9 "\d\+9=" contained
52
53syn region valgrindLine
54 \ start=+\(^==\d\+== \)\@<=+
55 \ end=+$+
56 \ keepend
57 \ contained
58 \ contains=valgrindOptions,valgrindMsg,valgrindLoc
59
60syn match valgrindOptions "[ ]\{3}-.*$" contained
61
62syn match valgrindMsg "\S.*$" contained
63 \ contains=valgrindError,valgrindNote,valgrindSummary
64syn match valgrindError "\(Invalid\|\d\+ errors\|.* definitely lost\).*$" contained
65syn match valgrindNote ".*still reachable.*" contained
66syn match valgrindSummary ".*SUMMARY:" contained
67
68syn match valgrindLoc "\s\+\(by\|at\|Address\).*$" contained
69 \ contains=valgrindAt,valgrindAddr,valgrindFunc,valgrindBin,valgrindSrc
70syn match valgrindAt "at\s\@=" contained
Bram Moolenaar0122c402015-02-03 19:13:34 +010071syn match valgrindAddr "\W\zs0x\x\+" contained
72
73syn match valgrindFunc ": \zs\h[a-zA-Z0-9_:\[\]()<>&*+\-,=%!|^ ]*\ze([^)]*)$" contained
74syn match valgrindBin "(\(with\)\=in \zs\S\+)\@=" contained
75syn match valgrindSrc "(\zs[^)]*:\d\+)\@=" contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000076
77" Define the default highlighting
78
79hi def link valgrindSpecLine Type
80"hi def link valgrindRegion Special
81
82hi def link valgrindPid0 Special
83hi def link valgrindPid1 Comment
84hi def link valgrindPid2 Type
85hi def link valgrindPid3 Constant
86hi def link valgrindPid4 Number
87hi def link valgrindPid5 Identifier
88hi def link valgrindPid6 Statement
89hi def link valgrindPid7 Error
90hi def link valgrindPid8 LineNr
91hi def link valgrindPid9 Normal
92"hi def link valgrindLine Special
93
94hi def link valgrindOptions Type
95"hi def link valgrindMsg Special
96"hi def link valgrindLoc Special
97
98hi def link valgrindError Special
99hi def link valgrindNote Comment
100hi def link valgrindSummary Type
101
102hi def link valgrindAt Special
103hi def link valgrindAddr Number
104hi def link valgrindFunc Type
105hi def link valgrindBin Comment
106hi def link valgrindSrc Statement
107
108let b:current_syntax = "valgrind"
Bram Moolenaar9a7224b2012-04-30 15:56:52 +0200109
110let &cpo = s:keepcpo
111unlet s:keepcpo