mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			112 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language: Valgrind Memory Debugger Output
 | 
						|
" Maintainer: Roger Luethi <rl@hellgate.ch>
 | 
						|
" Program URL: http://devel-home.kde.org/~sewardj/
 | 
						|
" Last Change: 2015 Jan 27
 | 
						|
" 		Included improvement by Dominique Pelle
 | 
						|
"
 | 
						|
" Notes: mostly based on strace.vim and xml.vim
 | 
						|
"
 | 
						|
" Contributors: Christoph Gysin <christoph.gysin@gmail.com>
 | 
						|
 | 
						|
" Quit when a syntax file was already loaded
 | 
						|
if exists("b:current_syntax")
 | 
						|
	finish
 | 
						|
endif
 | 
						|
let s:keepcpo= &cpo
 | 
						|
set cpo&vim
 | 
						|
 | 
						|
" Lines can be long with demangled c++ functions.
 | 
						|
setlocal synmaxcol=8000
 | 
						|
 | 
						|
syn case match
 | 
						|
syn sync minlines=50
 | 
						|
 | 
						|
syn match valgrindSpecLine "^[+-]\{2}\d\+[+-]\{2}.*$"
 | 
						|
 | 
						|
syn region valgrindRegion
 | 
						|
	\ start=+^==\z(\d\+\)== \w.*$+
 | 
						|
	\ skip=+^==\z1==\( \|    .*\)$+
 | 
						|
	\ end=+^+
 | 
						|
	\ fold
 | 
						|
	\ keepend
 | 
						|
	\ contains=valgrindPidChunk,valgrindLine
 | 
						|
 | 
						|
syn region valgrindPidChunk
 | 
						|
	\ start=+^==\zs+
 | 
						|
	\ end=+\ze==+
 | 
						|
	\ contained
 | 
						|
	\ contains=valgrindPid0,valgrindPid1,valgrindPid2,valgrindPid3,valgrindPid4,valgrindPid5,valgrindPid6,valgrindPid7,valgrindPid8,valgrindPid9
 | 
						|
	\ keepend
 | 
						|
 | 
						|
syn match valgrindPid0 "\d\+0=" contained
 | 
						|
syn match valgrindPid1 "\d\+1=" contained
 | 
						|
syn match valgrindPid2 "\d\+2=" contained
 | 
						|
syn match valgrindPid3 "\d\+3=" contained
 | 
						|
syn match valgrindPid4 "\d\+4=" contained
 | 
						|
syn match valgrindPid5 "\d\+5=" contained
 | 
						|
syn match valgrindPid6 "\d\+6=" contained
 | 
						|
syn match valgrindPid7 "\d\+7=" contained
 | 
						|
syn match valgrindPid8 "\d\+8=" contained
 | 
						|
syn match valgrindPid9 "\d\+9=" contained
 | 
						|
 | 
						|
syn region valgrindLine
 | 
						|
	\ start=+\(^==\d\+== \)\@<=+
 | 
						|
	\ end=+$+
 | 
						|
	\ keepend
 | 
						|
	\ contained
 | 
						|
	\ contains=valgrindOptions,valgrindMsg,valgrindLoc
 | 
						|
 | 
						|
syn match valgrindOptions "[ ]\{3}-.*$" contained
 | 
						|
 | 
						|
syn match valgrindMsg "\S.*$" contained
 | 
						|
	\ contains=valgrindError,valgrindNote,valgrindSummary
 | 
						|
syn match valgrindError "\(Invalid\|\d\+ errors\|.* definitely lost\).*$" contained
 | 
						|
syn match valgrindNote ".*still reachable.*" contained
 | 
						|
syn match valgrindSummary ".*SUMMARY:" contained
 | 
						|
 | 
						|
syn match valgrindLoc "\s\+\(by\|at\|Address\).*$" contained
 | 
						|
	\ contains=valgrindAt,valgrindAddr,valgrindFunc,valgrindBin,valgrindSrc
 | 
						|
syn match valgrindAt "at\s\@=" contained
 | 
						|
syn match valgrindAddr "\W\zs0x\x\+" contained
 | 
						|
 | 
						|
syn match valgrindFunc ": \zs\h[a-zA-Z0-9_:\[\]()<>&*+\-,=%!|^ ]*\ze([^)]*)$" contained
 | 
						|
syn match valgrindBin "(\(with\)\=in \zs\S\+)\@=" contained
 | 
						|
syn match valgrindSrc "(\zs[^)]*:\d\+)\@=" contained
 | 
						|
 | 
						|
" Define the default highlighting
 | 
						|
 | 
						|
hi def link valgrindSpecLine	Type
 | 
						|
"hi def link valgrindRegion	Special
 | 
						|
 | 
						|
hi def link valgrindPid0	Special
 | 
						|
hi def link valgrindPid1	Comment
 | 
						|
hi def link valgrindPid2	Type
 | 
						|
hi def link valgrindPid3	Constant
 | 
						|
hi def link valgrindPid4	Number
 | 
						|
hi def link valgrindPid5	Identifier
 | 
						|
hi def link valgrindPid6	Statement
 | 
						|
hi def link valgrindPid7	Error
 | 
						|
hi def link valgrindPid8	LineNr
 | 
						|
hi def link valgrindPid9	Normal
 | 
						|
"hi def link valgrindLine	Special
 | 
						|
 | 
						|
hi def link valgrindOptions	Type
 | 
						|
"hi def link valgrindMsg	Special
 | 
						|
"hi def link valgrindLoc	Special
 | 
						|
 | 
						|
hi def link valgrindError	Special
 | 
						|
hi def link valgrindNote	Comment
 | 
						|
hi def link valgrindSummary	Type
 | 
						|
 | 
						|
hi def link valgrindAt		Special
 | 
						|
hi def link valgrindAddr	Number
 | 
						|
hi def link valgrindFunc	Type
 | 
						|
hi def link valgrindBin		Comment
 | 
						|
hi def link valgrindSrc		Statement
 | 
						|
 | 
						|
let b:current_syntax = "valgrind"
 | 
						|
 | 
						|
let &cpo = s:keepcpo
 | 
						|
unlet s:keepcpo
 |