xref: /vim-8.2.3635/runtime/syntax/valgrind.vim (revision fda3729a)
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: 2014 Oct 02
6"
7" Notes: mostly based on strace.vim and xml.vim
8"
9" Contributors: Christoph Gysin <[email protected]>
10
11" Quit when a syntax file was already loaded
12if exists("b:current_syntax")
13	finish
14endif
15let s:keepcpo= &cpo
16set cpo&vim
17
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
70syn match valgrindSrc "\((\)\@<=[^)]*:\d\+\()\)\@=" contained
71
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"
104
105let &cpo = s:keepcpo
106unlet s:keepcpo
107