diff options
Diffstat (limited to 'runtime/syntax/gprof.vim')
-rw-r--r-- | runtime/syntax/gprof.vim | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/runtime/syntax/gprof.vim b/runtime/syntax/gprof.vim new file mode 100644 index 0000000..d2c5cb4 --- /dev/null +++ b/runtime/syntax/gprof.vim @@ -0,0 +1,70 @@ +" Vim syntax file +" Language: Syntax for Gprof Output +" Maintainer: Dominique Pelle <dominique.pelle@gmail.com> +" Last Change: 2021 Sep 19 + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +syn spell notoplevel +syn case match +syn sync minlines=100 + +" Flat profile +syn match gprofFlatProfileTitle + \ "^Flat profile:$" +syn region gprofFlatProfileHeader + \ start="^Each sample counts as.*" + \ end="^ time.*name\s*$" +syn region gprofFlatProfileTrailer + \ start="^\s*%\s\+the percentage of the total running time.*" + \ end="^\s*the gprof listing if it were to be printed\." + +" Call graph +syn match gprofCallGraphTitle "Call graph (explanation follows)" +syn region gprofCallGraphHeader + \ start="^granularity: each sample hit covers.*" + \ end="^\s*index % time\s\+self\s\+children\s\+called\s\+name$" +syn match gprofCallGraphFunction "\<\(\d\+\.\d\+\s\+\)\{3}\([0-9+]\+\)\?\s\+[a-zA-Z_<].*\ze\[" +syn match gprofCallGraphSeparator "^-\+$" +syn region gprofCallGraphTrailer + \ start="This table describes the call tree of the program" + \ end="^\s*the cycle\.$" + +" Index +syn region gprofIndex + \ start="^Index by function name$" + \ end="\%$" + +syn match gprofIndexFunctionTitle "^Index by function name$" + +syn match gprofNumbers "^\s*[0-9 ./+]\+" +syn match gprofFunctionIndex "\[\d\+\]" +syn match gprofSpecial "<\(spontaneous\|cycle \d\+\)>" + +hi def link gprofFlatProfileTitle Title +hi def link gprofFlatProfileHeader Comment +hi def link gprofFlatProfileFunction Number +hi def link gprofFlatProfileTrailer Comment + +hi def link gprofCallGraphTitle Title +hi def link gprofCallGraphHeader Comment +hi def link gprofFlatProfileFunction Number +hi def link gprofCallGraphFunction Special +hi def link gprofCallGraphTrailer Comment +hi def link gprofCallGraphSeparator Label + +hi def link gprofFunctionIndex Label +hi def link gprofSpecial SpecialKey +hi def link gprofNumbers Number + +hi def link gprofIndexFunctionTitle Title + +let b:current_syntax = "gprof" + +let &cpo = s:keepcpo +unlet s:keepcpo |