neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

valgrind.vim (3216B)


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