blob: c247927c2feec00a248720d5b646a80da7dddc54 [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 Moolenaar3a991dd2014-10-02 01:41:41 +02005" Last Change: 2014 Oct 02
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
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
Bram Moolenaar3a991dd2014-10-02 01:41:41 +020070syn match valgrindSrc "\((\)\@<=[^)]*:\d\+\()\)\@=" contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000071
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"
Bram Moolenaar9a7224b2012-04-30 15:56:52 +0200104
105let &cpo = s:keepcpo
106unlet s:keepcpo