view runtime/syntax/gprof.vim @ 24559:839145e0fdaa v8.2.2819

patch 8.2.2819: finishing an abbreviation with multi-byte char may not work Commit: https://github.com/vim/vim/commit/4934ed34c3e2090d1963c89c629cd3ce81d3ecd1 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Apr 30 19:43:11 2021 +0200 patch 8.2.2819: finishing an abbreviation with multi-byte char may not work Problem: Finishing an abbreviation with a multi-byte char may not work. Solution: Escape K_SPECIAL in the typed character. (closes https://github.com/vim/vim/issues/8160)
author Bram Moolenaar <Bram@vim.org>
date Fri, 30 Apr 2021 19:45:04 +0200
parents 9f41bfdbc6fc
children 65de67669df3
line wrap: on
line source

" Vim syntax file
" Language: Syntax for Gprof Output
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2021 Apr 08

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
	finish
endif
let s:keepcpo= &cpo
set cpo&vim

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