Tizen 2.0 Release
[external/vim.git] / runtime / syntax / valgrind.vim
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: 2002 Apr 07
6 "
7 " Notes: mostly based on strace.vim and xml.vim
8
9 " Quit when a syntax file was already loaded
10 if exists("b:current_syntax")
11         finish
12 endif
13
14 syn case match
15 syn sync minlines=50
16
17 syn match valgrindSpecLine "^[+-]\{2}\d\+[+-]\{2}.*$"
18
19 syn region valgrindRegion
20         \ start=+^==\z(\d\+\)== \w.*$+
21         \ skip=+^==\z1==\( \|    .*\)$+
22         \ end=+^+
23         \ fold
24         \ keepend
25         \ contains=valgrindPidChunk,valgrindLine
26
27 syn region valgrindPidChunk
28         \ start=+\(^==\)\@<=+
29         \ end=+\(==\)\@=+
30         \ contained
31         \ contains=valgrindPid0,valgrindPid1,valgrindPid2,valgrindPid3,valgrindPid4,valgrindPid5,valgrindPid6,valgrindPid7,valgrindPid8,valgrindPid9
32         \ keepend
33
34 syn match valgrindPid0 "\d\+0=" contained
35 syn match valgrindPid1 "\d\+1=" contained
36 syn match valgrindPid2 "\d\+2=" contained
37 syn match valgrindPid3 "\d\+3=" contained
38 syn match valgrindPid4 "\d\+4=" contained
39 syn match valgrindPid5 "\d\+5=" contained
40 syn match valgrindPid6 "\d\+6=" contained
41 syn match valgrindPid7 "\d\+7=" contained
42 syn match valgrindPid8 "\d\+8=" contained
43 syn match valgrindPid9 "\d\+9=" contained
44
45 syn region valgrindLine
46         \ start=+\(^==\d\+== \)\@<=+
47         \ end=+$+
48         \ keepend
49         \ contained
50         \ contains=valgrindOptions,valgrindMsg,valgrindLoc
51
52 syn match valgrindOptions "[ ]\{3}-.*$" contained
53
54 syn match valgrindMsg "\S.*$" contained
55         \ contains=valgrindError,valgrindNote,valgrindSummary
56 syn match valgrindError "\(Invalid\|\d\+ errors\|.* definitely lost\).*$" contained
57 syn match valgrindNote ".*still reachable.*" contained
58 syn match valgrindSummary ".*SUMMARY:" contained
59
60 syn match valgrindLoc "\s\+\(by\|at\|Address\).*$" contained
61         \ contains=valgrindAt,valgrindAddr,valgrindFunc,valgrindBin,valgrindSrc
62 syn match valgrindAt "at\s\@=" contained
63 syn match valgrindAddr "\(\W\)\@<=0x\x\+" contained
64 syn match valgrindFunc "\(: \)\@<=\w\+" contained
65 syn match valgrindBin "\((\(with\|\)in \)\@<=\S\+\()\)\@=" contained
66 syn match valgrindSrc "\((\)\@<=.*:\d\+\()\)\@=" contained
67
68 " Define the default highlighting
69
70 hi def link valgrindSpecLine    Type
71 "hi def link valgrindRegion     Special
72
73 hi def link valgrindPid0        Special
74 hi def link valgrindPid1        Comment
75 hi def link valgrindPid2        Type
76 hi def link valgrindPid3        Constant
77 hi def link valgrindPid4        Number
78 hi def link valgrindPid5        Identifier
79 hi def link valgrindPid6        Statement
80 hi def link valgrindPid7        Error
81 hi def link valgrindPid8        LineNr
82 hi def link valgrindPid9        Normal
83 "hi def link valgrindLine       Special
84
85 hi def link valgrindOptions     Type
86 "hi def link valgrindMsg        Special
87 "hi def link valgrindLoc        Special
88
89 hi def link valgrindError       Special
90 hi def link valgrindNote        Comment
91 hi def link valgrindSummary     Type
92
93 hi def link valgrindAt          Special
94 hi def link valgrindAddr        Number
95 hi def link valgrindFunc        Type
96 hi def link valgrindBin         Comment
97 hi def link valgrindSrc         Statement
98
99 let b:current_syntax = "valgrind"