mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" 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
 |