Skip to content

Instantly share code, notes, and snippets.

@saaguero
Created September 15, 2014 19:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save saaguero/4f37d1ce3dda7b5e53c3 to your computer and use it in GitHub Desktop.
Save saaguero/4f37d1ce3dda7b5e53c3 to your computer and use it in GitHub Desktop.
Profile of vim with vim-airline plugin
FUNCTION syntastic#log#debug()
Called 2 times
Total time: 0.000056
Self time: 0.000040
count total (s) self (s)
2 0.000048 0.000032 if !s:isDebugEnabled(a:level)
2 0.000004 return
endif
let leader = s:_logTimestamp()
call s:_logRedirect(1)
if a:0 > 0
" filter out dictionary functions
echomsg leader . a:msg . ' ' . strtrans(string(type(a:1) == type({}) || type(a:1) == type([]) ? filter(copy(a:1), 'type(v:val) != type(function("tr"))') : a:1))
else
echomsg leader . a:msg
endif
call s:_logRedirect(0)
FUNCTION airline#util#exec_funcrefs()
Called 2 times
Total time: 0.014371
Self time: 0.000279
count total (s) self (s)
10 0.000034 for Fn in a:list
10 0.014269 0.000177 let code = call(Fn, a:000)
10 0.000024 if code != 0
2 0.000004 return code
endif
8 0.000009 endfor
return 0
FUNCTION <SNR>93_CreateAutocommands()
Called 1 time
Total time: 0.000414
Self time: 0.000394
count total (s) self (s)
1 0.000033 0.000013 call s:debug('Creating autocommands')
1 0.000006 augroup TagbarAutoCmds
1 0.000156 autocmd!
1 0.000024 autocmd CursorHold __Tagbar__ call s:ShowPrototype(1)
1 0.000019 autocmd WinEnter __Tagbar__ call s:SetStatusLine('current')
1 0.000015 autocmd WinLeave __Tagbar__ call s:SetStatusLine('noncurrent')
1 0.000004 if g:tagbar_autopreview
autocmd CursorMoved __Tagbar__ nested call s:ShowInPreviewWin()
endif
1 0.000015 autocmd WinEnter * nested call s:QuitIfOnlyWindow()
1 0.000010 autocmd WinEnter * if bufwinnr('__Tagbar__') == -1 | call s:ShrinkIfExpanded() | endif
1 0.000009 autocmd BufWritePost * call s:AutoUpdate(fnamemodify(expand('<afile>'), ':p'), 1)
" BufReadPost is needed for reloading the current buffer if the file
" was changed by an external command; see commit 17d199f
1 0.000046 autocmd BufReadPost,BufEnter,CursorHold,FileType * call s:AutoUpdate(fnamemodify(expand('<afile>'), ':p'), 0)
1 0.000014 autocmd BufDelete,BufWipeout * call s:known_files.rm(fnamemodify(expand('<afile>'), ':p'))
1 0.000012 autocmd QuickFixCmdPre * let s:tagbar_qf_active = 1
1 0.000011 autocmd QuickFixCmdPost * if exists('s:tagbar_qf_active') | unlet s:tagbar_qf_active | endif
1 0.000012 autocmd VimEnter * call s:CorrectFocusOnStartup()
1 0.000002 augroup END
1 0.000005 let s:autocommands_done = 1
FUNCTION <SNR>93_IsValidFile()
Called 1 time
Total time: 0.000073
Self time: 0.000035
count total (s) self (s)
1 0.000040 0.000014 call s:debug('Checking if file is valid [' . a:fname . ']')
1 0.000005 if a:fname == '' || a:ftype == ''
1 0.000021 0.000009 call s:debug('Empty filename or type')
1 0.000002 return 0
endif
if !filereadable(a:fname) && getbufvar(a:fname, 'netrw_tmpfile') == ''
call s:debug('File not readable')
return 0
endif
if getbufvar(a:fname, 'tagbar_ignore') == 1
call s:debug('File is marked as ignored')
return 0
endif
if &previewwindow
call s:debug('In preview window')
return 0
endif
if !has_key(s:known_types, a:ftype)
if exists('g:tagbar_type_' . a:ftype)
" Filetype definition must have been specified in an 'ftplugin'
" file, so load it now
call s:LoadUserTypeDefs(a:ftype)
else
call s:debug('Unsupported filetype: ' . a:ftype)
return 0
endif
endif
return 1
FUNCTION airline#check_mode()
Called 3 times
Total time: 0.000596
Self time: 0.000596
count total (s) self (s)
3 0.000034 let context = s:contexts[a:winnr]
3 0.000023 if get(w:, 'airline_active', 1)
3 0.000024 let l:m = mode()
3 0.000015 if l:m ==# "i"
let l:mode = ['insert']
elseif l:m ==# "R"
let l:mode = ['replace']
elseif l:m =~# '\v(v|V||s|S|)'
let l:mode = ['visual']
else
3 0.000019 let l:mode = ['normal']
3 0.000006 endif
3 0.000034 let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m)
3 0.000004 else
let l:mode = ['inactive']
let w:airline_current_mode = get(g:airline_mode_map, '__')
endif
3 0.000020 if g:airline_detect_modified && &modified
call add(l:mode, 'modified')
endif
3 0.000013 if g:airline_detect_paste && &paste
call add(l:mode, 'paste')
endif
3 0.000009 if &readonly || ! &modifiable
call add(l:mode, 'readonly')
endif
3 0.000029 let mode_string = join(l:mode)
3 0.000028 if get(w:, 'airline_lastmode', '') != mode_string
call airline#highlighter#highlight_modified_inactive(context.bufnr)
call airline#highlighter#highlight(l:mode)
let w:airline_lastmode = mode_string
endif
3 0.000006 return ''
FUNCTION airline#util#append()
Called 9 times
Total time: 0.000226
Self time: 0.000226
count total (s) self (s)
9 0.000045 if a:minwidth > 0 && winwidth(0) < a:minwidth
return ''
endif
9 0.000067 let prefix = s:spc == "\ua0" ? s:spc : s:spc.s:spc
9 0.000061 return empty(a:text) ? '' : prefix.g:airline_left_alt_sep.s:spc.a:text
FUNCTION ctrlp#utils#writecache()
Called 1 time
Total time: 0.002233
Self time: 0.002093
count total (s) self (s)
1 0.000250 0.000109 if isdirectory(ctrlp#utils#mkdir(a:0 ? a:1 : s:cache_dir))
1 0.001972 sil! cal writefile(a:lines, a:0 >= 2 ? a:2 : ctrlp#utils#cachefile())
1 0.000006 en
FUNCTION <SNR>17_gsub()
Called 4 times
Total time: 0.000065
Self time: 0.000065
count total (s) self (s)
4 0.000061 return substitute(a:str,'\v\C'.a:pat,a:rep,'g')
FUNCTION airline#themes#get_highlight()
Called 28 times
Total time: 0.006558
Self time: 0.000494
count total (s) self (s)
28 0.006540 0.000476 return call('airline#highlighter#get_highlight', [a:group] + a:000)
FUNCTION <SNR>93_debug()
Called 22 times
Total time: 0.000466
Self time: 0.000466
count total (s) self (s)
22 0.000083 if s:debug
execute 'redir >> ' . s:debug_file
silent echon s:gettime() . ': ' . a:msg . "\n"
redir END
endif
FUNCTION <SNR>93_GetNearbyTag()
Called 1 time
Total time: 0.000007
Self time: 0.000007
count total (s) self (s)
1 0.000003 if s:nearby_disabled
1 0.000003 return {}
endif
let fileinfo = s:known_files.getCurrent(a:forcecurrent)
if empty(fileinfo)
return {}
endif
let typeinfo = fileinfo.typeinfo
if a:0 > 0
let curline = a:1
else
let curline = line('.')
endif
let tag = {}
" If a tag appears in a file more than once (for example namespaces in
" C++) only one of them has a 'tline' entry and can thus be highlighted.
" The only way to solve this would be to go over the whole tag list again,
" making everything slower. Since this should be a rare occurence and
" highlighting isn't /that/ important ignore it for now.
for line in range(curline, 1, -1)
if has_key(fileinfo.fline, line)
let curtag = fileinfo.fline[line]
if a:all || typeinfo.getKind(curtag.fields.kind).stl
let tag = curtag
break
endif
endif
endfor
return tag
FUNCTION airline#parts#filetype()
Called 3 times
Total time: 0.000014
Self time: 0.000014
count total (s) self (s)
3 0.000012 return &filetype
FUNCTION airline#extensions#netrw#apply()
Called 2 times
Total time: 0.000080
Self time: 0.000080
count total (s) self (s)
2 0.000017 if &ft == 'netrw'
let spc = g:airline_symbols.space
call a:1.add_section('airline_a', spc.'netrw'.spc)
if exists('*airline#extensions#branch#get_head')
call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
endif
call a:1.add_section('airline_c', spc.'%f'.spc)
call a:1.split()
call a:1.add_section('airline_y', spc.'%{airline#extensions#netrw#sortstring()}'.spc)
return 1
endif
FUNCTION <SNR>82_get_buffers()
Called 2 times
Total time: 0.009117
Self time: 0.000304
count total (s) self (s)
2 0.000021 let cur = bufnr('%')
2 0.000013 if cur == s:current_bufnr
1 0.000015 if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified
1 0.000007 return s:current_tabline
endif
endif
1 0.000077 0.000013 let b = airline#builder#new(s:builder_context)
1 0.000008 let tab_bufs = tabpagebuflist(tabpagenr())
2 0.006938 0.000026 for nr in s:get_visible_buffers()
1 0.000003 if nr < 0
call b.add_raw('%#airline_tabhid#...')
continue
endif
1 0.000003 if cur == nr
1 0.000008 if g:airline_detect_modified && getbufvar(nr, '&modified')
let group = 'airline_tabmod'
else
1 0.000003 let group = 'airline_tabsel'
1 0.000003 endif
1 0.000007 let s:current_modified = (group == 'airline_tabmod') ? 1 : 0
1 0.000002 else
if g:airline_detect_modified && getbufvar(nr, '&modified')
let group = 'airline_tabmod_unsel'
elseif index(tab_bufs, nr) > -1
let group = 'airline_tab'
else
let group = 'airline_tabhid'
endif
endif
1 0.000192 0.000021 call b.add_section(group, s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)'.s:spc)
1 0.000002 endfor
1 0.000846 0.000011 call b.add_section('airline_tabfill', '')
1 0.000021 0.000008 call b.split()
1 0.000814 0.000010 call b.add_section('airline_tabtype', ' buffers ')
1 0.000004 let s:current_bufnr = cur
1 0.000024 0.000011 let s:current_tabline = b.build()
1 0.000003 return s:current_tabline
FUNCTION airline#parts#iminsert()
Called 3 times
Total time: 0.000053
Self time: 0.000053
count total (s) self (s)
3 0.000019 if g:airline_detect_iminsert && &iminsert && exists('b:keymap_name')
return toupper(b:keymap_name)
endif
3 0.000008 return ''
FUNCTION <SNR>82_get_visible_buffers()
Called 1 time
Total time: 0.006912
Self time: 0.000186
count total (s) self (s)
1 0.000120 0.000021 let buffers = s:get_buffer_list()
1 0.000005 let cur = bufnr('%')
1 0.000003 let total_width = 0
1 0.000003 let max_width = 0
2 0.000006 for nr in buffers
1 0.006654 0.000028 let width = len(airline#extensions#tabline#get_buffer_name(nr)) + 4
1 0.000005 let total_width += width
1 0.000009 let max_width = max([max_width, width])
1 0.000002 endfor
" only show current and surrounding buffers if there are too many buffers
1 0.000007 let position = index(buffers, cur)
1 0.000004 let vimwidth = &columns
1 0.000004 if total_width > vimwidth && position > -1
let buf_count = len(buffers)
" determine how many buffers to show based on the longest buffer width,
" use one on the right side and put the rest on the left
let buf_max = vimwidth / max_width
let buf_right = 1
let buf_left = max([0, buf_max - buf_right])
let start = max([0, position - buf_left])
let end = min([buf_count, position + buf_right])
" fill up available space on the right
if position < buf_left
let end += (buf_left - position)
endif
" fill up available space on the left
if end > buf_count - 1 - buf_right
let start -= max([0, buf_right - (buf_count - 1 - position)])
endif
let buffers = eval('buffers[' . start . ':' . end . ']')
if start > 0
call insert(buffers, -1, 0)
endif
if end < buf_count - 1
call add(buffers, -1)
endif
endif
1 0.000002 return buffers
FUNCTION <SNR>17_sub()
Called 12 times
Total time: 0.000281
Self time: 0.000281
count total (s) self (s)
12 0.000267 return substitute(a:str,'\v\C'.a:pat,a:rep,'')
FUNCTION fugitive#detect()
Called 1 time
Total time: 0.002304
Self time: 0.000112
count total (s) self (s)
1 0.000008 if exists('b:git_dir') && (b:git_dir ==# '' || b:git_dir =~# '/$')
unlet b:git_dir
endif
1 0.000004 if !exists('b:git_dir')
1 0.002213 0.000021 let dir = fugitive#extract_git_dir(a:path)
1 0.000003 if dir !=# ''
let b:git_dir = dir
endif
1 0.000001 endif
1 0.000004 if exists('b:git_dir')
silent doautocmd User FugitiveBoot
cnoremap <buffer> <expr> <C-R><C-G> fnameescape(<SID>recall())
nnoremap <buffer> <silent> y<C-G> :call setreg(v:register, <SID>recall())<CR>
let buffer = fugitive#buffer()
if expand('%:p') =~# '//'
call buffer.setvar('&path', s:sub(buffer.getvar('&path'), '^\.%(,|$)', ''))
endif
if stridx(buffer.getvar('&tags'), escape(b:git_dir, ', ')) == -1
if filereadable(b:git_dir.'/tags')
call buffer.setvar('&tags', escape(b:git_dir.'/tags', ', ').','.buffer.getvar('&tags'))
endif
if &filetype !=# '' && filereadable(b:git_dir.'/'.&filetype.'.tags')
call buffer.setvar('&tags', escape(b:git_dir.'/'.&filetype.'.tags', ', ').','.buffer.getvar('&tags'))
endif
endif
silent doautocmd User Fugitive
endif
FUNCTION ctrlp#utils#readfile()
Called 1 time
Total time: 0.000971
Self time: 0.000971
count total (s) self (s)
1 0.000382 if filereadable(a:file)
1 0.000563 let data = readfile(a:file)
1 0.000012 if empty(data) || type(data) != 3
unl data
let data = []
en
1 0.000002 retu data
en
retu []
FUNCTION <SNR>17_winshell()
Called 4 times
Total time: 0.000153
Self time: 0.000153
count total (s) self (s)
4 0.000079 return &shell =~? 'cmd' || exists('+shellslash') && !&shellslash
FUNCTION session#save()
Called 1 time
Total time: 0.000068
Self time: 0.000052
count total (s) self (s)
1 0.000045 0.000029 if session#active()
call buffer#wipeout("drawers")
silent! execute "mksession!" v:this_session
endif
FUNCTION airline#highlighter#add_separator()
Called 14 times
Total time: 0.009646
Self time: 0.000462
count total (s) self (s)
14 0.000150 let s:separators[a:from.a:to] = [a:from, a:to, a:inverse]
14 0.009479 0.000295 call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
FUNCTION 34()
Called 3 times
Total time: 0.000074
Self time: 0.000074
count total (s) self (s)
3 0.000032 if !exists("b:syntastic_loclist") || empty(b:syntastic_loclist)
let b:syntastic_loclist = g:SyntasticLoclist.New([])
endif
3 0.000009 return b:syntastic_loclist
FUNCTION <SNR>59_savetofile()
Called 1 time
Total time: 0.002257
Self time: 0.000024
count total (s) self (s)
1 0.002256 0.000023 cal ctrlp#utils#writecache(a:mrufs, s:cadir, s:cafile)
FUNCTION ctrlp#mrufiles#cachefile()
Called 1 time
Total time: 0.008367
Self time: 0.007700
count total (s) self (s)
1 0.000007 if !exists('s:cadir') || !exists('s:cafile')
1 0.008331 0.007673 let s:cadir = ctrlp#utils#cachedir().ctrlp#utils#lash().'mru'
1 0.000020 0.000012 let s:cafile = s:cadir.ctrlp#utils#lash().'cache.txt'
1 0.000002 en
1 0.000003 retu s:cafile
FUNCTION <SNR>93_LoadUserTypeDefs()
Called 1 time
Total time: 0.003544
Self time: 0.000158
count total (s) self (s)
1 0.000007 if a:0 > 0
let type = a:1
call s:debug("Initializing user type '" . type . "'")
let defdict = {}
let defdict[type] = g:tagbar_type_{type}
else
1 0.000047 0.000019 call s:debug('Initializing user types')
1 0.003392 0.000032 let defdict = tagbar#getusertypes()
1 0.000002 endif
1 0.000004 let transformed = {}
1 0.000005 for [type, def] in items(defdict)
let transformed[type] = s:TransformUserTypeDef(def)
endfor
1 0.000004 for [key, value] in items(transformed)
if !has_key(s:known_types, key) || get(value, 'replace', 0)
let s:known_types[key] = s:TypeInfo.New(value)
else
call extend(s:known_types[key], value)
endif
endfor
1 0.000003 if a:0 > 0
call s:known_types[type].createKinddict()
endif
FUNCTION 127()
Called 41 times
Total time: 0.001408
Self time: 0.001408
count total (s) self (s)
41 0.000468 let newobj = copy(self)
41 0.000209 let newobj.kinddict = {}
41 0.000125 if a:0 > 0
call extend(newobj, a:1)
endif
41 0.000106 return newobj
FUNCTION 129()
Called 48 times
Total time: 0.002730
Self time: 0.002730
count total (s) self (s)
48 0.000140 let i = 0
284 0.000508 for kind in self.kinds
236 0.000975 let self.kinddict[kind.short] = i
236 0.000492 let i += 1
236 0.000255 endfor
FUNCTION <SNR>63_Highlight_Matching_Pair()
Called 1 time
Total time: 0.000137
Self time: 0.000137
count total (s) self (s)
" Remove any previous match.
1 0.000007 if exists('w:paren_hl_on') && w:paren_hl_on
silent! call matchdelete(3)
let w:paren_hl_on = 0
endif
" Avoid that we remove the popup menu.
" Return when there are no colors (looks like the cursor jumps).
1 0.000009 if pumvisible() || (&t_Co < 8 && !has("gui_running"))
return
endif
" Get the character under the cursor and check if it's in 'matchpairs'.
1 0.000007 let c_lnum = line('.')
1 0.000005 let c_col = col('.')
1 0.000003 let before = 0
1 0.000006 let text = getline(c_lnum)
1 0.000006 let c = text[c_col - 1]
1 0.000039 let plist = split(&matchpairs, '.\zs[:,]')
1 0.000008 let i = index(plist, c)
1 0.000002 if i < 0
" not found, in Insert mode try character before the cursor
1 0.000006 if c_col > 1 && (mode() == 'i' || mode() == 'R')
let before = 1
let c = text[c_col - 2]
let i = index(plist, c)
endif
1 0.000002 if i < 0
" not found, nothing to do
1 0.000002 return
endif
endif
" Figure out the arguments for searchpairpos().
if i % 2 == 0
let s_flags = 'nW'
let c2 = plist[i + 1]
else
let s_flags = 'nbW'
let c2 = c
let c = plist[i - 1]
endif
if c == '['
let c = '\['
let c2 = '\]'
endif
" Find the match. When it was just before the cursor move it there for a
" moment.
if before > 0
let has_getcurpos = exists("*getcurpos")
if has_getcurpos
" getcurpos() is more efficient but doesn't exist before 7.4.313.
let save_cursor = getcurpos()
else
let save_cursor = winsaveview()
endif
call cursor(c_lnum, c_col - before)
endif
" When not in a string or comment ignore matches inside them.
" We match "escape" for special items, such as lispEscapeSpecial.
let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' . '=~? "string\\|character\\|singlequote\\|escape\\|comment"'
execute 'if' s_skip '| let s_skip = 0 | endif'
" Limit the search to lines visible in the window.
let stoplinebottom = line('w$')
let stoplinetop = line('w0')
if i % 2 == 0
let stopline = stoplinebottom
else
let stopline = stoplinetop
endif
" Limit the search time to 300 msec to avoid a hang on very long lines.
" This fails when a timeout is not supported.
if mode() == 'i' || mode() == 'R'
let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
else
let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
endif
try
let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
catch /E118/
" Can't use the timeout, restrict the stopline a bit more to avoid taking
" a long time on closed folds and long lines.
" The "viewable" variables give a range in which we can scroll while
" keeping the cursor at the same position.
" adjustedScrolloff accounts for very large numbers of scrolloff.
let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
" one of these stoplines will be adjusted below, but the current values are
" minimal boundaries within the current window
if i % 2 == 0
if has("byte_offset") && has("syntax_items") && &smc > 0
let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
let stopline = min([bottom_viewable, byte2line(stopbyte)])
else
let stopline = min([bottom_viewable, c_lnum + 100])
endif
let stoplinebottom = stopline
else
if has("byte_offset") && has("syntax_items") && &smc > 0
let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
let stopline = max([top_viewable, byte2line(stopbyte)])
else
let stopline = max([top_viewable, c_lnum - 100])
endif
let stoplinetop = stopline
endif
let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
endtry
if before > 0
if has_getcurpos
call setpos('.', save_cursor)
else
call winrestview(save_cursor)
endif
endif
" If a match is found setup match highlighting.
if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
if exists('*matchaddpos')
call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
else
exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
endif
let w:paren_hl_on = 1
endif
FUNCTION 43()
Called 3 times
Total time: 0.000386
Self time: 0.000386
count total (s) self (s)
3 0.000021 if !exists("self._stl_format")
1 0.000006 let self._stl_format = ''
1 0.000002 endif
3 0.000016 if !exists("self._stl_flag")
1 0.000004 let self._stl_flag = ''
1 0.000001 endif
3 0.000016 if g:syntastic_stl_format !=# self._stl_format
1 0.000004 let self._stl_format = g:syntastic_stl_format
1 0.000004 if !empty(self._rawLoclist)
let errors = self.errors()
let warnings = self.warnings()
let num_errors = len(errors)
let num_warnings = len(warnings)
let num_issues = len(self._rawLoclist)
let output = self._stl_format
"hide stuff wrapped in %E(...) unless there are errors
let output = substitute(output, '\m\C%E{\([^}]*\)}', num_errors ? '\1' : '' , 'g')
"hide stuff wrapped in %W(...) unless there are warnings
let output = substitute(output, '\m\C%W{\([^}]*\)}', num_warnings ? '\1' : '' , 'g')
"hide stuff wrapped in %B(...) unless there are both errors and warnings
let output = substitute(output, '\m\C%B{\([^}]*\)}', (num_warnings && num_errors) ? '\1' : '' , 'g')
"sub in the total errors/warnings/both
let output = substitute(output, '\m\C%w', num_warnings, 'g')
let output = substitute(output, '\m\C%e', num_errors, 'g')
let output = substitute(output, '\m\C%t', num_issues, 'g')
"first error/warning line num
let output = substitute(output, '\m\C%F', num_issues ? self._rawLoclist[0]['lnum'] : '', 'g')
"first error line num
let output = substitute(output, '\m\C%fe', num_errors ? errors[0]['lnum'] : '', 'g')
"first warning line num
let output = substitute(output, '\m\C%fw', num_warnings ? warnings[0]['lnum'] : '', 'g')
let self._stl_flag = output
else
1 0.000003 let self._stl_flag = ''
1 0.000001 endif
1 0.000001 endif
3 0.000008 return self._stl_flag
FUNCTION airline#extensions#tabline#get_buffer_name()
Called 3 times
Total time: 0.007203
Self time: 0.006227
count total (s) self (s)
3 0.007198 0.006222 return airline#extensions#tabline#{s:formatter}#format(a:nr, get(s:, 'current_buffer_list', s:get_buffer_list()))
FUNCTION <SNR>93_Init()
Called 1 time
Total time: 0.703820
Self time: 0.001557
count total (s) self (s)
1 0.000009 if s:checked_ctags == 2 && a:silent
return 0
elseif s:checked_ctags != 1
1 0.347264 0.000050 if !s:CheckForExCtags(a:silent)
return 0
endif
1 0.000002 endif
1 0.000005 if !s:checked_ctags_types
1 0.287079 0.000039 call s:GetSupportedFiletypes()
1 0.000002 endif
1 0.000003 if !s:type_init_done
1 0.066758 0.000039 call s:InitTypes()
1 0.000002 endif
1 0.000004 if !s:autocommands_done
1 0.000441 0.000027 call s:CreateAutocommands()
1 0.002214 0.001337 call s:AutoUpdate(fnamemodify(expand('%'), ':p'), 0)
1 0.000001 endif
1 0.000002 return 1
FUNCTION <SNR>15_invoke_funcrefs()
Called 2 times
Total time: 0.014710
Self time: 0.000191
count total (s) self (s)
2 0.000147 0.000029 let builder = airline#builder#new(a:context)
2 0.014421 0.000050 let err = airline#util#exec_funcrefs(a:funcrefs + s:core_funcrefs, builder, a:context)
2 0.000005 if err == 1
2 0.000061 0.000030 let a:context.line = builder.build()
2 0.000022 let s:contexts[a:context.winnr] = a:context
2 0.000041 call setwinvar(a:context.winnr, '&statusline', '%!airline#statusline('.a:context.winnr.')')
2 0.000004 endif
FUNCTION airline#extensions#default#apply()
Called 2 times
Total time: 0.013518
Self time: 0.000248
count total (s) self (s)
2 0.000010 let winnr = a:context.winnr
2 0.000008 let active = a:context.active
2 0.000049 0.000033 if airline#util#getwinvar(winnr, 'airline_render_left', active || (!active && !g:airline_inactive_collapse))
2 0.005167 0.000039 call <sid>build_sections(a:builder, a:context, s:layout[0])
2 0.000002 else
let text = <sid>get_section(winnr, 'c')
if empty(text)
let text = ' %f%m '
endif
call a:builder.add_section('airline_c'.(a:context.bufnr), text)
endif
2 0.000212 0.000049 call a:builder.split(s:get_section(winnr, 'gutter', '', ''))
2 0.000033 0.000021 if airline#util#getwinvar(winnr, 'airline_render_right', 1)
2 0.007978 0.000028 call <sid>build_sections(a:builder, a:context, s:layout[1])
2 0.000002 endif
2 0.000004 return 1
FUNCTION airline#util#wrap()
Called 18 times
Total time: 0.000211
Self time: 0.000211
count total (s) self (s)
18 0.000091 if a:minwidth > 0 && winwidth(0) < a:minwidth
return ''
endif
18 0.000037 return a:text
FUNCTION <SNR>17_shellslash()
Called 4 times
Total time: 0.000338
Self time: 0.000120
count total (s) self (s)
4 0.000210 0.000057 if s:winshell()
4 0.000119 0.000054 return s:gsub(a:path,'\\','/')
else
return a:path
endif
FUNCTION <SNR>84_gui2cui()
Called 28 times
Total time: 0.000175
Self time: 0.000175
count total (s) self (s)
28 0.000081 if a:rgb == ''
28 0.000062 return a:fallback
endif
let rgb = map(matchlist(a:rgb, '#\(..\)\(..\)\(..\)')[1:3], '0 + ("0x".v:val)')
let rgb = [rgb[0] > 127 ? 4 : 0, rgb[1] > 127 ? 2 : 0, rgb[2] > 127 ? 1 : 0]
return rgb[0]+rgb[1]+rgb[2]
FUNCTION airline#extensions#tabline#get()
Called 2 times
Total time: 0.009277
Self time: 0.000160
count total (s) self (s)
2 0.000051 let curtabcnt = tabpagenr('$')
2 0.000015 if curtabcnt != s:current_tabcnt
1 0.000004 let s:current_tabcnt = curtabcnt
1 0.000004 let s:current_bufnr = -1 " force a refresh...
1 0.000002 endif
2 0.000013 if s:show_buffers && curtabcnt == 1
2 0.009160 0.000043 return s:get_buffers()
else
return s:get_tabs()
endif
FUNCTION 96()
Called 17 times
Total time: 0.012724
Self time: 0.003078
count total (s) self (s)
17 0.000064 if self._curgroup != ''
14 0.000048 if self._curgroup == a:group
let self._line .= self._side ? self._context.left_alt_sep : self._context.right_alt_sep
else
14 0.009857 0.000211 call airline#highlighter#add_separator(self._curgroup, a:group, self._side)
14 0.000156 let self._line .= '%#'.self._curgroup.'_to_'.a:group.'#'
14 0.000118 let self._line .= self._side ? self._context.left_sep : self._context.right_sep
14 0.000018 endif
14 0.000013 endif
17 0.000055 if self._curgroup != a:group
17 0.000114 let self._line .= '%#'.a:group.'#'
17 0.000019 endif
17 0.000036 if self._context.active
17 0.000049 let contents = []
17 0.000268 let content_parts = split(a:contents, '__accent')
39 0.000119 for cpart in content_parts
22 0.000394 let accent = matchstr(cpart, '_\zs[^#]*\ze')
22 0.000136 call add(contents, cpart)
22 0.000035 endfor
17 0.000122 let line = join(contents, a:group)
17 0.000251 let line = substitute(line, '__restore__', a:group, 'g')
17 0.000029 else
let line = substitute(a:contents, '%#__accent[^#]*#', '', 'g')
let line = substitute(line, '%#__restore__#', '', 'g')
endif
17 0.000105 let self._line .= line
17 0.000057 let self._curgroup = a:group
FUNCTION 97()
Called 4 times
Total time: 0.000032
Self time: 0.000032
count total (s) self (s)
4 0.000029 let self._line .= a:text
FUNCTION 98()
Called 3 times
Total time: 0.000044
Self time: 0.000044
count total (s) self (s)
3 0.000009 if !self._context.active
let self._line = substitute(self._line, '%#.\{-}\ze#', '\0_inactive', 'g')
endif
3 0.000012 return self._line
FUNCTION airline#util#getwinvar()
Called 20 times
Total time: 0.000149
Self time: 0.000149
count total (s) self (s)
20 0.000131 return getwinvar(a:winnr, a:key, a:def)
FUNCTION <SNR>84_get_array()
Called 28 times
Total time: 0.000731
Self time: 0.000731
count total (s) self (s)
28 0.000098 let fg = a:fg
28 0.000076 let bg = a:bg
28 0.000507 return has('gui_running') ? [ fg, bg, '', '', join(a:opts, ',') ] : [ '', '', fg, bg, join(a:opts, ',') ]
FUNCTION <SNR>34_QuitPreHook()
Called 1 time
Total time: 0.000143
Self time: 0.000071
count total (s) self (s)
1 0.000082 0.000044 call syntastic#log#debug(g:SyntasticDebugAutocommands, 'autocmd: QuitPre, buffer ' . bufnr("") . ' = ' . string(bufname(str2nr(bufnr("")))))
1 0.000009 let b:syntastic_skip_checks = !g:syntastic_check_on_wq
1 0.000047 0.000014 call SyntasticLoclistHide()
FUNCTION airline#extensions#tagbar#currenttag()
Called 3 times
Total time: 0.725503
Self time: 0.009062
count total (s) self (s)
3 0.000016 if get(w:, 'airline_active', 0)
3 0.000023 if s:airline_tagbar_last_lookup_time != localtime()
1 0.725397 0.008956 let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', s:flags)
1 0.000027 let s:airline_tagbar_last_lookup_time = localtime()
1 0.000002 endif
3 0.000009 return s:airline_tagbar_last_lookup_val
endif
return ''
FUNCTION <SNR>93_CheckExCtagsVersion()
Called 1 time
Total time: 0.000286
Self time: 0.000228
count total (s) self (s)
1 0.000055 0.000023 call s:debug('Checking Exuberant Ctags version')
1 0.000032 if a:output =~ 'Exuberant Ctags Development'
call s:debug("Found development version, assuming compatibility")
return 1
endif
1 0.000082 let matchlist = matchlist(a:output, '\vExuberant Ctags (\d+)\.(\d+)')
1 0.000014 let major = matchlist[1]
1 0.000008 let minor = matchlist[2]
1 0.000054 0.000028 call s:debug("Ctags version: major='" . major . "', minor='" . minor . "'")
1 0.000010 return major >= 6 || (major == 5 && minor >= 5)
FUNCTION <SNR>93_EscapeCtagsCmd()
Called 2 times
Total time: 0.001203
Self time: 0.001054
count total (s) self (s)
2 0.000076 0.000034 call s:debug('EscapeCtagsCmd called')
2 0.000065 0.000030 call s:debug('ctags_bin: ' . a:ctags_bin)
2 0.000019 if type(a:args)==type('')
2 0.000062 0.000028 call s:debug('ctags_args (is a string): ' . a:args)
2 0.000013 elseif type(a:args)==type([])
call s:debug('ctags_args (is a list): ' . string(a:args))
endif
2 0.000014 if exists('+shellslash')
2 0.000012 let shellslash_save = &shellslash
2 0.000094 set noshellslash
2 0.000005 endif
"Set up 0th argument of ctags_cmd
"a:ctags_bin may have special characters that require escaping.
2 0.000099 if &shell =~ 'cmd\.exe$' && a:ctags_bin !~ '\s'
"For windows cmd.exe, escaping the 0th argument can cause
"problems if it references a batch file and the batch file uses %~dp0.
"So for windows cmd.exe, only escape the 0th argument iff necessary.
"Only known necessary case is when ctags_bin executable filename has
"whitespace character(s).
" Example: If 0th argument is wrapped in double quotes AND it is not
" an absolute path to ctags_bin, but rather an executable in %PATH%,
" then %~dp0 resolves to the current working directory rather than
" the batch file's directory. Batch files like this generally exepect
" and depend on %~dp0 to resolve the batch file's directory.
" Note: Documentation such as `help cmd.exe` and
" http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true
" suggest other special characters that require escaping for command
" line completion. But tagbar.vim does not use the command line
" completion feature of cmd.exe and testing shows that the only special
" character that needs to be escaped for tagbar.vim is <space> for
" windows cmd.exe.
2 0.000015 let ctags_cmd = a:ctags_bin
2 0.000004 else
let ctags_cmd = shellescape(a:ctags_bin)
endif
"Add additional arguments to ctags_cmd
2 0.000014 if type(a:args)==type('')
"When a:args is a string, append the arguments
"Note: In this case, do not attempt to shell escape a:args string.
"This function expects the string to already be escaped properly for
"the shell type. Why not escape? Because it could be ambiguous about
"whether a space is an argument separator or included in the argument.
"Since escaping rules vary from shell to shell, it is better to pass a
"list of arguments to a:args. With a list, each argument is clearly
"separated, so shellescape() can calculate the appropriate escaping
"for each argument for the current &shell.
2 0.000017 let ctags_cmd .= ' ' . a:args
2 0.000011 elseif type(a:args)==type([])
"When a:args is a list, shellescape() each argument and append ctags_cmd
"Note: It's a better practice to shellescape() each argument separately so that
"spaces used as a separator between arguments can be distinguished with
"spaces used inside a single argument.
for arg in a:args
let ctags_cmd .= ' ' . shellescape(arg)
endfor
endif
"if a filename was specified, add filename as final argument to ctags_cmd.
2 0.000007 if a:0 == 1
let ctags_cmd .= ' ' . shellescape(a:1)
endif
2 0.000011 if exists('+shellslash')
2 0.000071 let &shellslash = shellslash_save
2 0.000004 endif
" Needed for cases where 'encoding' is different from the system's
" encoding
2 0.000028 if has('multi_byte')
2 0.000018 if g:tagbar_systemenc != &encoding
let ctags_cmd = iconv(ctags_cmd, &encoding, g:tagbar_systemenc)
elseif $LANG != ''
let ctags_cmd = iconv(ctags_cmd, &encoding, $LANG)
endif
2 0.000003 endif
2 0.000078 0.000041 call s:debug('Escaped ctags command: ' . ctags_cmd)
2 0.000008 if ctags_cmd == ''
echoerr 'Tagbar: Encoding conversion failed!' 'Please make sure your system is set up correctly' 'and that Vim is compiled with the "+iconv" feature.'
endif
2 0.000007 return ctags_cmd
FUNCTION fugitive#extract_git_dir()
Called 2 times
Total time: 0.004680
Self time: 0.003570
count total (s) self (s)
2 0.000275 0.000058 if s:shellslash(a:path) =~# '^fugitive://.*//'
return matchstr(s:shellslash(a:path), '\C^fugitive://\zs.\{-\}\ze//')
endif
2 0.000523 0.000402 let root = s:shellslash(simplify(fnamemodify(a:path, ':p:s?[\/]$??')))
2 0.000008 let previous = ""
8 0.000039 while root !=# previous
6 0.000113 if root =~# '\v^//%([^/]+/?)?$'
" This is for accessing network shares from Cygwin Vim. There won't be
" any git directory called //.git or //serverName/.git so let's avoid
" checking for them since such checks are extremely slow.
break
endif
6 0.000227 if index(split($GIT_CEILING_DIRECTORIES, ':'), root) >= 0
break
endif
6 0.000177 if root ==# $GIT_WORK_TREE && fugitive#is_git_dir($GIT_DIR)
return $GIT_DIR
endif
6 0.000225 0.000092 let dir = s:sub(root, '[\/]$', '') . '/.git'
6 0.001699 let type = getftype(dir)
6 0.000054 if type ==# 'dir' && fugitive#is_git_dir(dir)
return dir
elseif type ==# 'link' && fugitive#is_git_dir(dir)
return resolve(dir)
elseif type !=# '' && filereadable(dir)
let line = get(readfile(dir, '', 1), 0, '')
if line =~# '^gitdir: \.' && fugitive#is_git_dir(root.'/'.line[8:-1])
return simplify(root.'/'.line[8:-1])
elseif line =~# '^gitdir: ' && fugitive#is_git_dir(line[8:-1])
return line[8:-1]
endif
elseif fugitive#is_git_dir(root)
return root
endif
6 0.000026 let previous = root
6 0.000048 let root = fnamemodify(root, ':h')
6 0.000015 endwhile
2 0.000003 return ''
FUNCTION <SNR>90__isDebugEnabled_smart()
Called 2 times
Total time: 0.000016
Self time: 0.000016
count total (s) self (s)
2 0.000013 return and(g:syntastic_debug, a:level)
FUNCTION ctrlp#utils#mkdir()
Called 1 time
Total time: 0.000141
Self time: 0.000141
count total (s) self (s)
1 0.000126 if exists('*mkdir') && !isdirectory(a:dir)
sil! cal mkdir(a:dir, 'p')
en
1 0.000003 retu a:dir
FUNCTION airline#extensions#branch#get_head()
Called 3 times
Total time: 0.007352
Self time: 0.000149
count total (s) self (s)
3 0.007255 0.000052 let head = airline#extensions#branch#head()
3 0.000034 let empty_message = get(g:, 'airline#extensions#branch#empty_message', get(g:, 'airline_branch_empty_message', ''))
3 0.000023 let symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch)
3 0.000030 return empty(head) ? empty_message : printf('%s%s', empty(symbol) ? '' : symbol.(g:airline_symbols.space), head)
FUNCTION <SNR>59_chop()
Called 1 time
Total time: 0.000022
Self time: 0.000022
count total (s) self (s)
1 0.000017 if len(a:mrufs) > {s:max} | cal remove(a:mrufs, {s:max}, -1) | en
1 0.000002 retu a:mrufs
FUNCTION <SNR>82_get_buffer_list()
Called 4 times
Total time: 0.000448
Self time: 0.000448
count total (s) self (s)
4 0.000019 let buffers = []
4 0.000024 let cur = bufnr('%')
8 0.000051 for nr in range(1, bufnr('$'))
4 0.000026 if buflisted(nr) && bufexists(nr)
4 0.000017 for ex in s:excludes
if match(bufname(nr), ex)
continue
endif
endfor
4 0.000028 if getbufvar(nr, 'current_syntax') == 'qf'
continue
endif
4 0.000030 call add(buffers, nr)
4 0.000006 endif
4 0.000007 endfor
4 0.000022 let s:current_buffer_list = buffers
4 0.000013 return buffers
FUNCTION 94()
Called 3 times
Total time: 0.000042
Self time: 0.000042
count total (s) self (s)
3 0.000010 let self._side = 0
3 0.000029 let self._line .= '%#'.self._curgroup.'#'.(a:0 ? a:1 : '%=')
FUNCTION <SNR>64_LocalBrowse()
Called 1 time
Total time: 0.000086
Self time: 0.000086
count total (s) self (s)
" Unfortunate interaction -- only DechoMsg debugging calls can be safely used here.
" Otherwise, the BufEnter event gets triggered when attempts to write to
" the DBG buffer are made.
1 0.000009 if !exists("s:vimentered")
" If s:vimentered doesn't exist, then the VimEnter event hasn't fired. It will,
" and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined.
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered doesn't exist)")
" call Dret("s:LocalBrowse")
return
endif
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered=".s:vimentered.")")
1 0.000011 if has("amiga")
" The check against '' is made for the Amiga, where the empty
" string is the current directory and not checking would break
" things such as the help command.
" call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, amiga)")
if a:dirname != '' && isdirectory(a:dirname)
sil! call netrw#LocalBrowseCheck(a:dirname)
if exists("w:netrw_bannercnt")
exe w:netrw_bannercnt
endif
endif
elseif isdirectory(a:dirname)
" call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)")
" call Dredir("LocalBrowse ft last set: ","verbose set ft")
sil! call netrw#LocalBrowseCheck(a:dirname)
if exists("w:netrw_bannercnt")
exe w:netrw_bannercnt
endif
else
" not a directory, ignore it
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
1 0.000001 endif
" call Dret("s:LocalBrowse")
FUNCTION airline#parts#ffenc()
Called 3 times
Total time: 0.000072
Self time: 0.000072
count total (s) self (s)
3 0.000068 return printf('%s%s', &fenc, strlen(&ff) > 0 ? '['.&ff.']' : '')
FUNCTION airline#extensions#ctrlp#apply()
Called 2 times
Total time: 0.000049
Self time: 0.000049
count total (s) self (s)
" disable statusline overwrite if ctrlp already did it
2 0.000044 return match(&statusline, 'CtrlPwhite') >= 0 ? -1 : 0
FUNCTION airline#parts#readonly()
Called 3 times
Total time: 0.000027
Self time: 0.000027
count total (s) self (s)
3 0.000024 return &readonly ? g:airline_symbols.readonly : ''
FUNCTION ctrlp#utils#opts()
Called 1 time
Total time: 0.000277
Self time: 0.000199
count total (s) self (s)
1 0.000041 0.000022 let s:lash = ctrlp#utils#lash()
1 0.000054 0.000022 let usrhome = $HOME . s:lash( $HOME )
1 0.000041 let cahome = exists('$XDG_CACHE_HOME') ? $XDG_CACHE_HOME : usrhome.'.cache'
1 0.000104 0.000078 let cadir = isdirectory(usrhome.'.ctrlp_cache') ? usrhome.'.ctrlp_cache' : cahome.s:lash(cahome).'ctrlp'
1 0.000006 if exists('g:ctrlp_cache_dir')
let cadir = expand(g:ctrlp_cache_dir, 1)
if isdirectory(cadir.s:lash(cadir).'.ctrlp_cache')
let cadir = cadir.s:lash(cadir).'.ctrlp_cache'
en
en
1 0.000005 let s:cache_dir = cadir
FUNCTION <SNR>94_lash()
Called 2 times
Total time: 0.000058
Self time: 0.000058
count total (s) self (s)
2 0.000056 retu ( a:0 ? a:1 : getcwd() ) !~ '[\/]$' ? s:lash : ''
FUNCTION ctrlp#utils#lash()
Called 3 times
Total time: 0.000039
Self time: 0.000039
count total (s) self (s)
3 0.000036 retu &ssl || !exists('+ssl') ? '/' : '\'
FUNCTION tagbar#currenttag()
Called 1 time
Total time: 0.704093
Self time: 0.000265
count total (s) self (s)
" Indicate that the statusline functionality is being used. This prevents
" the CloseWindow() function from removing the autocommands.
1 0.000032 let s:statusline_in_use = 1
1 0.000008 if a:0 > 0
" also test for non-zero value for backwards compatibility
1 0.000064 let longsig = a:1 =~# 's' || (type(a:1) == type(0) && a:1 != 0)
1 0.000014 let fullpath = a:1 =~# 'f'
1 0.000010 let prototype = a:1 =~# 'p'
1 0.000004 else
let longsig = 0
let fullpath = 0
let prototype = 0
endif
1 0.703864 0.000044 if !s:Init(1)
return a:default
endif
1 0.000028 0.000021 let tag = s:GetNearbyTag(0, 1)
1 0.000005 if !empty(tag)
if prototype
return tag.getPrototype(1)
else
return printf(a:fmt, tag.str(longsig, fullpath))
endif
else
1 0.000003 return a:default
endif
FUNCTION <SNR>84_exec_separator()
Called 14 times
Total time: 0.009184
Self time: 0.001100
count total (s) self (s)
14 0.003571 0.000224 let l:from = airline#themes#get_highlight(a:from.a:suffix)
14 0.003411 0.000201 let l:to = airline#themes#get_highlight(a:to.a:suffix)
14 0.000090 let group = a:from.'_to_'.a:to.a:suffix
14 0.000027 if a:inverse
5 0.000051 let colors = [ l:from[1], l:to[1], l:from[3], l:to[3] ]
5 0.000007 else
9 0.000081 let colors = [ l:to[1], l:from[1], l:to[3], l:from[3] ]
9 0.000012 endif
14 0.000073 let a:dict[group] = colors
14 0.001725 0.000198 call airline#highlighter#exec(group, colors)
FUNCTION <SNR>59_mergelists()
Called 1 time
Total time: 0.010101
Self time: 0.000742
count total (s) self (s)
1 0.009370 0.000032 let diskmrufs = ctrlp#utils#readfile(ctrlp#mrufiles#cachefile())
1 0.000594 cal filter(diskmrufs, 'index(s:mrufs, v:val) < 0')
1 0.000090 let mrufs = s:mrufs + diskmrufs
1 0.000043 0.000022 retu s:chop(mrufs)
FUNCTION airline#parts#paste()
Called 3 times
Total time: 0.000022
Self time: 0.000022
count total (s) self (s)
3 0.000017 return g:airline_detect_paste && &paste ? g:airline_symbols.paste : ''
FUNCTION airline#update_statusline()
Called 2 times
Total time: 0.015016
Self time: 0.000305
count total (s) self (s)
2 0.000040 for nr in filter(range(1, winnr('$')), 'v:val != winnr()')
call setwinvar(nr, 'airline_active', 0)
let context = { 'winnr': nr, 'active': 0, 'bufnr': winbufnr(nr) }
call s:invoke_funcrefs(context, s:inactive_funcrefs)
endfor
2 0.000008 unlet! w:airline_render_left
2 0.000004 unlet! w:airline_render_right
18 0.000039 for section in s:sections
16 0.000058 unlet! w:airline_section_{section}
16 0.000018 endfor
2 0.000007 let w:airline_active = 1
2 0.000024 let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) }
2 0.014753 0.000043 call s:invoke_funcrefs(context, g:airline_statusline_funcrefs)
FUNCTION ctrlp#utils#cachedir()
Called 1 time
Total time: 0.000007
Self time: 0.000007
count total (s) self (s)
1 0.000006 retu s:cache_dir
FUNCTION SyntasticLoclistHide()
Called 1 time
Total time: 0.000034
Self time: 0.000016
count total (s) self (s)
1 0.000028 0.000010 call syntastic#log#debug(g:SyntasticDebugNotifications, 'loclist: hide')
1 0.000004 silent! lclose
FUNCTION <SNR>80_get_git_branch()
Called 3 times
Total time: 0.002657
Self time: 0.000169
count total (s) self (s)
3 0.000055 if has_key(s:git_dirs, a:path)
2 0.000013 return s:git_dirs[a:path]
endif
1 0.002505 0.000017 let dir = fugitive#extract_git_dir(a:path)
1 0.000004 if empty(dir)
1 0.000003 let name = ''
1 0.000001 else
try
let line = join(readfile(dir . '/HEAD'))
if strpart(line, 0, 16) == 'ref: refs/heads/'
let name = strpart(line, 16)
else
" raw commit hash
let name = strpart(line, 0, 7)
endif
catch
let name = ''
endtry
endif
1 0.000008 let s:git_dirs[a:path] = name
1 0.000002 return name
FUNCTION <SNR>84_get_syn()
Called 56 times
Total time: 0.003129
Self time: 0.003129
count total (s) self (s)
" need to pass in mode, known to break on 7.3.547
56 0.000664 let mode = has('gui_running') ? 'gui' : 'cterm'
56 0.000645 let color = synIDattr(synIDtrans(hlID(a:group)), a:what, mode)
56 0.000248 if empty(color) || color == -1
2 0.000038 let color = synIDattr(synIDtrans(hlID('Normal')), a:what, mode)
2 0.000004 endif
56 0.000202 if empty(color) || color == -1
if has('gui_running')
let color = a:what ==# 'fg' ? '#000000' : '#FFFFFF'
else
let color = a:what ==# 'fg' ? 0 : 1
endif
endif
56 0.000114 return color
FUNCTION airline#highlighter#exec()
Called 14 times
Total time: 0.001526
Self time: 0.001351
count total (s) self (s)
14 0.000047 let colors = a:colors
14 0.000032 if s:is_win32term
14 0.000365 0.000270 let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
14 0.000322 0.000241 let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
14 0.000019 endif
14 0.000690 exec printf('hi %s %s %s %s %s %s %s %s', a:group, get(colors, 0, '') != '' ? 'guifg='.colors[0] : '', get(colors, 1, '') != '' ? 'guibg='.colors[1] : '', get(colors, 2, '') != '' ? 'ctermfg='.colors[2] : '', get(colors, 3, '') != '' ? 'ctermbg='.colors[3] : '', get(colors, 4, '') != '' ? 'gui='.colors[4] : '', get(colors, 4, '') != '' ? 'cterm='.colors[4] : '', get(colors, 4, '') != '' ? 'term='.colors[4] : '')
FUNCTION airline#extensions#tabline#default#wrap_name()
Called 3 times
Total time: 0.000164
Self time: 0.000164
count total (s) self (s)
3 0.000026 let _ = s:buf_nr_show ? printf(s:buf_nr_format, a:bufnr) : ''
3 0.000073 let _ .= substitute(a:buffer_name, '\\', '/', 'g')
3 0.000030 if getbufvar(a:bufnr, '&modified') == 1
let _ .= s:buf_modified_symbol
endif
3 0.000007 return _
FUNCTION <SNR>75_sync_active_winnr()
Called 1 time
Total time: 0.000016
Self time: 0.000016
count total (s) self (s)
1 0.000009 if exists('#airline') && winnr() != s:active_winnr
call airline#update_statusline()
endif
FUNCTION <SNR>64_VimEnter()
Called 1 time
Total time: 0.001194
Self time: 0.001108
count total (s) self (s)
" call Dfunc("s:VimEnter(dirname<".a:dirname.">) expand(%)<".expand("%").">")
1 0.000006 let curwin = winnr()
1 0.000004 let s:vimentered = 1
1 0.001168 0.001082 windo call s:LocalBrowse(expand("%:p"))
1 0.000011 exe curwin."wincmd w"
" call Dret("s:VimEnter")
FUNCTION <SNR>89_build_sections()
Called 4 times
Total time: 0.013077
Self time: 0.000439
count total (s) self (s)
18 0.000047 for key in a:keys
14 0.000056 if key == 'warning' && !a:context.active
continue
endif
14 0.012838 0.000199 call s:add_section(a:builder, a:context, key)
14 0.000021 endfor
FUNCTION <SNR>93_InitTypes()
Called 1 time
Total time: 0.066719
Self time: 0.038673
count total (s) self (s)
1 0.000032 0.000013 call s:debug('Initializing types')
1 0.000006 let s:known_types = {}
" Ant {{{3
1 0.000051 0.000019 let type_ant = s:TypeInfo.New()
1 0.000004 let type_ant.ctagstype = 'ant'
1 0.000016 let type_ant.kinds = [ {'short' : 'p', 'long' : 'projects', 'fold' : 0, 'stl' : 1}, {'short' : 't', 'long' : 'targets', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.ant = type_ant
" Asm {{{3
1 0.000034 0.000011 let type_asm = s:TypeInfo.New()
1 0.000004 let type_asm.ctagstype = 'asm'
1 0.000021 let type_asm.kinds = [ {'short' : 'm', 'long' : 'macros', 'fold' : 0, 'stl' : 1}, {'short' : 't', 'long' : 'types', 'fold' : 0, 'stl' : 1}, {'short' : 'd', 'long' : 'defines', 'fold' : 0, 'stl' : 1}, {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.asm = type_asm
" ASP {{{3
1 0.000031 0.000010 let type_aspvbs = s:TypeInfo.New()
1 0.000004 let type_aspvbs.ctagstype = 'asp'
1 0.000024 let type_aspvbs.kinds = [ {'short' : 'd', 'long' : 'constants', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'subroutines', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.aspvbs = type_aspvbs
" Awk {{{3
1 0.000030 0.000009 let type_awk = s:TypeInfo.New()
1 0.000004 let type_awk.ctagstype = 'awk'
1 0.000008 let type_awk.kinds = [ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.awk = type_awk
" Basic {{{3
1 0.000030 0.000010 let type_basic = s:TypeInfo.New()
1 0.000004 let type_basic.ctagstype = 'basic'
1 0.000029 let type_basic.kinds = [ {'short' : 'c', 'long' : 'constants', 'fold' : 0, 'stl' : 1}, {'short' : 'g', 'long' : 'enumerations', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1}, {'short' : 't', 'long' : 'types', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.basic = type_basic
" BETA {{{3
1 0.000030 0.000009 let type_beta = s:TypeInfo.New()
1 0.000004 let type_beta.ctagstype = 'beta'
1 0.000016 let type_beta.kinds = [ {'short' : 'f', 'long' : 'fragments', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'slots', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'patterns', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.beta = type_beta
" C {{{3
1 0.000030 0.000009 let type_c = s:TypeInfo.New()
1 0.000004 let type_c.ctagstype = 'c'
1 0.000061 let type_c.kinds = [ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0}, {'short' : 'p', 'long' : 'prototypes', 'fold' : 1, 'stl' : 0}, {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1}, {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0}, {'short' : 't', 'long' : 'typedefs', 'fold' : 0, 'stl' : 0}, {'short' : 's', 'long' : 'structs', 'fold' : 0, 'stl' : 1}, {'short' : 'u', 'long' : 'unions', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 0}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let type_c.sro = '::'
1 0.000007 let type_c.kind2scope = { 'g' : 'enum', 's' : 'struct', 'u' : 'union' }
1 0.000007 let type_c.scope2kind = { 'enum' : 'g', 'struct' : 's', 'union' : 'u' }
1 0.000004 let s:known_types.c = type_c
" C++ {{{3
1 0.000031 0.000009 let type_cpp = s:TypeInfo.New()
1 0.000004 let type_cpp.ctagstype = 'c++'
1 0.000052 let type_cpp.kinds = [ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0}, {'short' : 'p', 'long' : 'prototypes', 'fold' : 1, 'stl' : 0}, {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1}, {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0}, {'short' : 't', 'long' : 'typedefs', 'fold' : 0, 'stl' : 0}, {'short' : 'n', 'long' : 'namespaces', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'structs', 'fold' : 0, 'stl' : 1}, {'short' : 'u', 'long' : 'unions', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 0}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0} ]
1 0.000003 let type_cpp.sro = '::'
1 0.000009 let type_cpp.kind2scope = { 'g' : 'enum', 'n' : 'namespace', 'c' : 'class', 's' : 'struct', 'u' : 'union' }
1 0.000009 let type_cpp.scope2kind = { 'enum' : 'g', 'namespace' : 'n', 'class' : 'c', 'struct' : 's', 'union' : 'u' }
1 0.000004 let s:known_types.cpp = type_cpp
" C# {{{3
1 0.000037 0.000009 let type_cs = s:TypeInfo.New()
1 0.000004 let type_cs.ctagstype = 'c#'
1 0.000051 let type_cs.kinds = [ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0}, {'short' : 'f', 'long' : 'fields', 'fold' : 0, 'stl' : 1}, {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1}, {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0}, {'short' : 't', 'long' : 'typedefs', 'fold' : 0, 'stl' : 1}, {'short' : 'n', 'long' : 'namespaces', 'fold' : 0, 'stl' : 1}, {'short' : 'i', 'long' : 'interfaces', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'structs', 'fold' : 0, 'stl' : 1}, {'short' : 'E', 'long' : 'events', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'properties', 'fold' : 0, 'stl' : 1} ]
1 0.000003 let type_cs.sro = '.'
1 0.000008 let type_cs.kind2scope = { 'n' : 'namespace', 'i' : 'interface', 'c' : 'class', 's' : 'struct', 'g' : 'enum' }
1 0.000009 let type_cs.scope2kind = { 'namespace' : 'n', 'interface' : 'i', 'class' : 'c', 'struct' : 's', 'enum' : 'g' }
1 0.000004 let s:known_types.cs = type_cs
" COBOL {{{3
1 0.000032 0.000010 let type_cobol = s:TypeInfo.New()
1 0.000004 let type_cobol.ctagstype = 'cobol'
1 0.000029 let type_cobol.kinds = [ {'short' : 'd', 'long' : 'data items', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'file descriptions', 'fold' : 0, 'stl' : 1}, {'short' : 'g', 'long' : 'group items', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'paragraphs', 'fold' : 0, 'stl' : 1}, {'short' : 'P', 'long' : 'program ids', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'sections', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.cobol = type_cobol
" DOS Batch {{{3
1 0.000030 0.000009 let type_dosbatch = s:TypeInfo.New()
1 0.000004 let type_dosbatch.ctagstype = 'dosbatch'
1 0.000012 let type_dosbatch.kinds = [ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.dosbatch = type_dosbatch
" Eiffel {{{3
1 0.000030 0.000010 let type_eiffel = s:TypeInfo.New()
1 0.000004 let type_eiffel.ctagstype = 'eiffel'
1 0.000012 let type_eiffel.kinds = [ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'features', 'fold' : 0, 'stl' : 1} ]
1 0.000003 let type_eiffel.sro = '.' " Not sure, is nesting even possible?
1 0.000006 let type_eiffel.kind2scope = { 'c' : 'class', 'f' : 'feature' }
1 0.000006 let type_eiffel.scope2kind = { 'class' : 'c', 'feature' : 'f' }
1 0.000004 let s:known_types.eiffel = type_eiffel
" Erlang {{{3
1 0.000029 0.000009 let type_erlang = s:TypeInfo.New()
1 0.000004 let type_erlang.ctagstype = 'erlang'
1 0.000023 let type_erlang.kinds = [ {'short' : 'm', 'long' : 'modules', 'fold' : 0, 'stl' : 1}, {'short' : 'd', 'long' : 'macro definitions', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'r', 'long' : 'record definitions', 'fold' : 0, 'stl' : 1} ]
1 0.000003 let type_erlang.sro = '.' " Not sure, is nesting even possible?
1 0.000005 let type_erlang.kind2scope = { 'm' : 'module' }
1 0.000005 let type_erlang.scope2kind = { 'module' : 'm' }
1 0.000004 let s:known_types.erlang = type_erlang
" Flex {{{3
" Vim doesn't support Flex out of the box, this is based on rough
" guesses and probably requires
" http://www.vim.org/scripts/script.php?script_id=2909
" Improvements welcome!
1 0.000029 0.000009 let type_as = s:TypeInfo.New()
1 0.000004 let type_as.ctagstype = 'flex'
1 0.000028 let type_as.kinds = [ {'short' : 'v', 'long' : 'global variables', 'fold' : 0, 'stl' : 0}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'properties', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'x', 'long' : 'mxtags', 'fold' : 0, 'stl' : 0} ]
1 0.000003 let type_as.sro = '.'
1 0.000004 let type_as.kind2scope = { 'c' : 'class' }
1 0.000005 let type_as.scope2kind = { 'class' : 'c' }
1 0.000004 let s:known_types.mxml = type_as
1 0.000005 let s:known_types.actionscript = type_as
" Fortran {{{3
1 0.000031 0.000010 let type_fortran = s:TypeInfo.New()
1 0.000004 let type_fortran.ctagstype = 'fortran'
1 0.000104 let type_fortran.kinds = [ {'short' : 'm', 'long' : 'modules', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'programs', 'fold' : 0, 'stl' : 1}, {'short' : 'k', 'long' : 'components', 'fold' : 0, 'stl' : 1}, {'short' : 't', 'long' : 'derived types and structures', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'common blocks', 'fold' : 0, 'stl' : 1}, {'short' : 'b', 'long' : 'block data', 'fold' : 0, 'stl' : 0}, {'short' : 'e', 'long' : 'entry points', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'subroutines', 'fold' : 0, 'stl' : 1}, {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1}, {'short' : 'n', 'long' : 'namelists', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0} ]
1 0.000004 let type_fortran.sro = '.' " Not sure, is nesting even possible?
1 0.000008 let type_fortran.kind2scope = { 'm' : 'module', 'p' : 'program', 'f' : 'function', 's' : 'subroutine' }
1 0.000009 let type_fortran.scope2kind = { 'module' : 'm', 'program' : 'p', 'function' : 'f', 'subroutine' : 's' }
1 0.000004 let s:known_types.fortran = type_fortran
" HTML {{{3
1 0.000032 0.000010 let type_html = s:TypeInfo.New()
1 0.000004 let type_html.ctagstype = 'html'
1 0.000012 let type_html.kinds = [ {'short' : 'f', 'long' : 'JavaScript funtions', 'fold' : 0, 'stl' : 1}, {'short' : 'a', 'long' : 'named anchors', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.html = type_html
" Java {{{3
1 0.000051 0.000009 let type_java = s:TypeInfo.New()
1 0.000004 let type_java.ctagstype = 'java'
1 0.000033 let type_java.kinds = [ {'short' : 'p', 'long' : 'packages', 'fold' : 1, 'stl' : 0}, {'short' : 'f', 'long' : 'fields', 'fold' : 0, 'stl' : 0}, {'short' : 'g', 'long' : 'enum types', 'fold' : 0, 'stl' : 1}, {'short' : 'e', 'long' : 'enum constants', 'fold' : 0, 'stl' : 0}, {'short' : 'i', 'long' : 'interfaces', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1} ]
1 0.000003 let type_java.sro = '.'
1 0.000006 let type_java.kind2scope = { 'g' : 'enum', 'i' : 'interface', 'c' : 'class' }
1 0.000007 let type_java.scope2kind = { 'enum' : 'g', 'interface' : 'i', 'class' : 'c' }
1 0.000004 let s:known_types.java = type_java
" JavaScript {{{3
" JavaScript is weird -- it does have scopes, but ctags doesn't seem to
" properly generate the information for them, instead it simply uses the
" complete name. So ctags has to be fixed before I can do anything here.
" Alternatively jsctags/doctorjs will be used if available.
1 0.000031 0.000010 let type_javascript = s:TypeInfo.New()
1 0.000004 let type_javascript.ctagstype = 'javascript'
1 0.020380 0.000036 let jsctags = s:CheckFTCtags('jsctags', 'javascript')
1 0.000009 if jsctags != ''
let type_javascript.kinds = [ {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
let type_javascript.sro = '.'
let type_javascript.kind2scope = { 'v' : 'namespace', 'f' : 'namespace' }
let type_javascript.scope2kind = { 'namespace' : 'v' }
let type_javascript.ctagsbin = jsctags
let type_javascript.ctagsargs = '-f -'
else
1 0.000054 let type_javascript.kinds = [ {'short' : 'v', 'long' : 'global variables', 'fold' : 0, 'stl' : 0}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'properties', 'fold' : 0, 'stl' : 0}, {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
1 0.000003 endif
1 0.000009 let s:known_types.javascript = type_javascript
" Lisp {{{3
1 0.000081 0.000027 let type_lisp = s:TypeInfo.New()
1 0.000006 let type_lisp.ctagstype = 'lisp'
1 0.000016 let type_lisp.kinds = [ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
1 0.000008 let s:known_types.lisp = type_lisp
1 0.000007 let s:known_types.clojure = type_lisp
" Lua {{{3
1 0.000061 0.000019 let type_lua = s:TypeInfo.New()
1 0.000006 let type_lua.ctagstype = 'lua'
1 0.000018 let type_lua.kinds = [ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
1 0.000008 let s:known_types.lua = type_lua
" Make {{{3
1 0.000058 0.000017 let type_make = s:TypeInfo.New()
1 0.000006 let type_make.ctagstype = 'make'
1 0.000015 let type_make.kinds = [ {'short' : 'm', 'long' : 'macros', 'fold' : 0, 'stl' : 1} ]
1 0.000007 let s:known_types.make = type_make
" Matlab {{{3
1 0.000060 0.000019 let type_matlab = s:TypeInfo.New()
1 0.000006 let type_matlab.ctagstype = 'matlab'
1 0.000016 let type_matlab.kinds = [ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
1 0.000008 let s:known_types.matlab = type_matlab
" Ocaml {{{3
1 0.000101 0.000019 let type_ocaml = s:TypeInfo.New()
1 0.000006 let type_ocaml.ctagstype = 'ocaml'
1 0.000078 let type_ocaml.kinds = [ {'short' : 'M', 'long' : 'modules or functors', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'global variables', 'fold' : 0, 'stl' : 0}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'C', 'long' : 'constructors', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1}, {'short' : 'e', 'long' : 'exceptions', 'fold' : 0, 'stl' : 1}, {'short' : 't', 'long' : 'type names', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'r', 'long' : 'structure fields', 'fold' : 0, 'stl' : 0} ]
1 0.000008 let type_ocaml.sro = '.' " Not sure, is nesting even possible?
1 0.000013 let type_ocaml.kind2scope = { 'M' : 'Module', 'c' : 'class', 't' : 'type' }
1 0.000012 let type_ocaml.scope2kind = { 'Module' : 'M', 'class' : 'c', 'type' : 't' }
1 0.000007 let s:known_types.ocaml = type_ocaml
" Pascal {{{3
1 0.000083 0.000019 let type_pascal = s:TypeInfo.New()
1 0.000006 let type_pascal.ctagstype = 'pascal'
1 0.000024 let type_pascal.kinds = [ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'procedures', 'fold' : 0, 'stl' : 1} ]
1 0.000008 let s:known_types.pascal = type_pascal
" Perl {{{3
1 0.000058 0.000017 let type_perl = s:TypeInfo.New()
1 0.000007 let type_perl.ctagstype = 'perl'
1 0.000047 let type_perl.kinds = [ {'short' : 'p', 'long' : 'packages', 'fold' : 1, 'stl' : 0}, {'short' : 'c', 'long' : 'constants', 'fold' : 0, 'stl' : 0}, {'short' : 'f', 'long' : 'formats', 'fold' : 0, 'stl' : 0}, {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'subroutines', 'fold' : 0, 'stl' : 1} ]
1 0.000007 let s:known_types.perl = type_perl
" PHP {{{3
1 0.000060 0.000019 let type_php = s:TypeInfo.New()
1 0.000007 let type_php.ctagstype = 'php'
1 0.000055 let type_php.kinds = [ {'short' : 'i', 'long' : 'interfaces', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'd', 'long' : 'constant definitions', 'fold' : 0, 'stl' : 0}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0}, {'short' : 'j', 'long' : 'javascript functions', 'fold' : 0, 'stl' : 1} ]
1 0.000008 let s:known_types.php = type_php
" Python {{{3
1 0.000058 0.000017 let type_python = s:TypeInfo.New()
1 0.000007 let type_python.ctagstype = 'python'
1 0.000047 let type_python.kinds = [ {'short' : 'i', 'long' : 'imports', 'fold' : 1, 'stl' : 0}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0} ]
1 0.000007 let type_python.sro = '.'
1 0.000013 let type_python.kind2scope = { 'c' : 'class', 'f' : 'function', 'm' : 'function' }
1 0.000012 let type_python.scope2kind = { 'class' : 'c', 'function' : 'f' }
1 0.000008 let s:known_types.python = type_python
1 0.000008 let s:known_types.pyrex = type_python
1 0.000007 let s:known_types.cython = type_python
" REXX {{{3
1 0.000061 0.000017 let type_rexx = s:TypeInfo.New()
1 0.000007 let type_rexx.ctagstype = 'rexx'
1 0.000016 let type_rexx.kinds = [ {'short' : 's', 'long' : 'subroutines', 'fold' : 0, 'stl' : 1} ]
1 0.000008 let s:known_types.rexx = type_rexx
" Ruby {{{3
1 0.000060 0.000017 let type_ruby = s:TypeInfo.New()
1 0.000007 let type_ruby.ctagstype = 'ruby'
1 0.000040 let type_ruby.kinds = [ {'short' : 'm', 'long' : 'modules', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'methods', 'fold' : 0, 'stl' : 1}, {'short' : 'F', 'long' : 'singleton methods', 'fold' : 0, 'stl' : 1} ]
1 0.000007 let type_ruby.sro = '.'
1 0.000012 let type_ruby.kind2scope = { 'c' : 'class', 'm' : 'class' }
1 0.000009 let type_ruby.scope2kind = { 'class' : 'c' }
1 0.000008 let s:known_types.ruby = type_ruby
" Scheme {{{3
1 0.000059 0.000017 let type_scheme = s:TypeInfo.New()
1 0.000008 let type_scheme.ctagstype = 'scheme'
1 0.000024 let type_scheme.kinds = [ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'sets', 'fold' : 0, 'stl' : 1} ]
1 0.000008 let s:known_types.scheme = type_scheme
1 0.000006 let s:known_types.racket = type_scheme
" Shell script {{{3
1 0.000058 0.000017 let type_sh = s:TypeInfo.New()
1 0.000007 let type_sh.ctagstype = 'sh'
1 0.000016 let type_sh.kinds = [ {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
1 0.000007 let s:known_types.sh = type_sh
1 0.000007 let s:known_types.csh = type_sh
1 0.000007 let s:known_types.zsh = type_sh
" SLang {{{3
1 0.000056 0.000019 let type_slang = s:TypeInfo.New()
1 0.000007 let type_slang.ctagstype = 'slang'
1 0.000069 let type_slang.kinds = [ {'short' : 'n', 'long' : 'namespaces', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1} ]
1 0.000010 let s:known_types.slang = type_slang
" SML {{{3
1 0.000063 0.000022 let type_sml = s:TypeInfo.New()
1 0.000006 let type_sml.ctagstype = 'sml'
1 0.000043 let type_sml.kinds = [ {'short' : 'e', 'long' : 'exception declarations', 'fold' : 0, 'stl' : 0}, {'short' : 'f', 'long' : 'function definitions', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'functor definitions', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'signature declarations', 'fold' : 0, 'stl' : 0}, {'short' : 'r', 'long' : 'structure declarations', 'fold' : 0, 'stl' : 0}, {'short' : 't', 'long' : 'type definitions', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'value bindings', 'fold' : 0, 'stl' : 0} ]
1 0.000005 let s:known_types.sml = type_sml
" SQL {{{3
" The SQL ctags parser seems to be buggy for me, so this just uses the
" normal kinds even though scopes should be available. Improvements
" welcome!
1 0.000034 0.000011 let type_sql = s:TypeInfo.New()
1 0.000003 let type_sql.ctagstype = 'sql'
1 0.000103 let type_sql.kinds = [ {'short' : 'P', 'long' : 'packages', 'fold' : 1, 'stl' : 1}, {'short' : 'd', 'long' : 'prototypes', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'cursors', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'F', 'long' : 'record fields', 'fold' : 0, 'stl' : 1}, {'short' : 'L', 'long' : 'block label', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'procedures', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'subtypes', 'fold' : 0, 'stl' : 1}, {'short' : 't', 'long' : 'tables', 'fold' : 0, 'stl' : 1}, {'short' : 'T', 'long' : 'triggers', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 1}, {'short' : 'i', 'long' : 'indexes', 'fold' : 0, 'stl' : 1}, {'short' : 'e', 'long' : 'events', 'fold' : 0, 'stl' : 1}, {'short' : 'U', 'long' : 'publications', 'fold' : 0, 'stl' : 1}, {'short' : 'R', 'long' : 'services', 'fold' : 0, 'stl' : 1}, {'short' : 'D', 'long' : 'domains', 'fold' : 0, 'stl' : 1}, {'short' : 'V', 'long' : 'views', 'fold' : 0, 'stl' : 1}, {'short' : 'n', 'long' : 'synonyms', 'fold' : 0, 'stl' : 1}, {'short' : 'x', 'long' : 'MobiLink Table Scripts', 'fold' : 0, 'stl' : 1}, {'short' : 'y', 'long' : 'MobiLink Conn Scripts', 'fold' : 0, 'stl' : 1}, {'short' : 'z', 'long' : 'MobiLink Properties', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.sql = type_sql
" Tcl {{{3
1 0.000031 0.000011 let type_tcl = s:TypeInfo.New()
1 0.000003 let type_tcl.ctagstype = 'tcl'
1 0.000016 let type_tcl.kinds = [ {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'methods', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'procedures', 'fold' : 0, 'stl' : 1} ]
1 0.000004 let s:known_types.tcl = type_tcl
" LaTeX {{{3
1 0.000029 0.000009 let type_tex = s:TypeInfo.New()
1 0.000003 let type_tex.ctagstype = 'tex'
1 0.000040 let type_tex.kinds = [ {'short' : 'i', 'long' : 'includes', 'fold' : 1, 'stl' : 0}, {'short' : 'p', 'long' : 'parts', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'chapters', 'fold' : 0, 'stl' : 1}, {'short' : 's', 'long' : 'sections', 'fold' : 0, 'stl' : 1}, {'short' : 'u', 'long' : 'subsections', 'fold' : 0, 'stl' : 1}, {'short' : 'b', 'long' : 'subsubsections', 'fold' : 0, 'stl' : 1}, {'short' : 'P', 'long' : 'paragraphs', 'fold' : 0, 'stl' : 0}, {'short' : 'G', 'long' : 'subparagraphs', 'fold' : 0, 'stl' : 0}, {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 0} ]
1 0.000003 let type_tex.sro = '""'
1 0.000008 let type_tex.kind2scope = { 'p' : 'part', 'c' : 'chapter', 's' : 'section', 'u' : 'subsection', 'b' : 'subsubsection' }
1 0.000010 let type_tex.scope2kind = { 'part' : 'p', 'chapter' : 'c', 'section' : 's', 'subsection' : 'u', 'subsubsection' : 'b' }
1 0.000003 let type_tex.sort = 0
1 0.000007 let s:known_types.tex = type_tex
" Vala {{{3
" Vala is supported by the ctags fork provided by Anjuta, so only add the
" type if the fork is used to prevent error messages otherwise
1 0.018807 if has_key(s:ctags_types, 'vala') || executable('anjuta-tags')
let type_vala = s:TypeInfo.New()
let type_vala.ctagstype = 'vala'
let type_vala.kinds = [ {'short' : 'e', 'long' : 'Enumerations', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'Enumeration values', 'fold' : 0, 'stl' : 0}, {'short' : 's', 'long' : 'Structures', 'fold' : 0, 'stl' : 1}, {'short' : 'i', 'long' : 'Interfaces', 'fold' : 0, 'stl' : 1}, {'short' : 'd', 'long' : 'Delegates', 'fold' : 0, 'stl' : 1}, {'short' : 'c', 'long' : 'Classes', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'Properties', 'fold' : 0, 'stl' : 0}, {'short' : 'f', 'long' : 'Fields', 'fold' : 0, 'stl' : 0}, {'short' : 'm', 'long' : 'Methods', 'fold' : 0, 'stl' : 1}, {'short' : 'E', 'long' : 'Error domains', 'fold' : 0, 'stl' : 1}, {'short' : 'r', 'long' : 'Error codes', 'fold' : 0, 'stl' : 1}, {'short' : 'S', 'long' : 'Signals', 'fold' : 0, 'stl' : 1} ]
let type_vala.sro = '.'
" 'enum' doesn't seem to be used as a scope, but it can't hurt to have
" it here
let type_vala.kind2scope = { 's' : 'struct', 'i' : 'interface', 'c' : 'class', 'e' : 'enum' }
let type_vala.scope2kind = { 'struct' : 's', 'interface' : 'i', 'class' : 'c', 'enum' : 'e' }
let s:known_types.vala = type_vala
endif
1 0.015727 if !has_key(s:ctags_types, 'vala') && executable('anjuta-tags')
let s:known_types.vala.ctagsbin = 'anjuta-tags'
endif
" Vera {{{3
" Why are variables 'virtual'?
1 0.000101 0.000036 let type_vera = s:TypeInfo.New()
1 0.000006 let type_vera.ctagstype = 'vera'
1 0.000082 let type_vera.kinds = [ {'short' : 'd', 'long' : 'macros', 'fold' : 1, 'stl' : 0}, {'short' : 'g', 'long' : 'enums', 'fold' : 0, 'stl' : 1}, {'short' : 'T', 'long' : 'typedefs', 'fold' : 0, 'stl' : 0}, {'short' : 'c', 'long' : 'classes', 'fold' : 0, 'stl' : 1}, {'short' : 'e', 'long' : 'enumerators', 'fold' : 0, 'stl' : 0}, {'short' : 'm', 'long' : 'members', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 't', 'long' : 'tasks', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 0, 'stl' : 0}, {'short' : 'p', 'long' : 'programs', 'fold' : 0, 'stl' : 1} ]
1 0.000006 let type_vera.sro = '.' " Nesting doesn't seem to be possible
1 0.000013 let type_vera.kind2scope = { 'g' : 'enum', 'c' : 'class', 'v' : 'virtual' }
1 0.000010 let type_vera.scope2kind = { 'enum' : 'g', 'class' : 'c', 'virtual' : 'v' }
1 0.000024 let s:known_types.vera = type_vera
" Verilog {{{3
1 0.000067 0.000021 let type_verilog = s:TypeInfo.New()
1 0.000008 let type_verilog.ctagstype = 'verilog'
1 0.000061 let type_verilog.kinds = [ {'short' : 'c', 'long' : 'constants', 'fold' : 0, 'stl' : 0}, {'short' : 'e', 'long' : 'events', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'm', 'long' : 'modules', 'fold' : 0, 'stl' : 1}, {'short' : 'n', 'long' : 'net data types', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'ports', 'fold' : 0, 'stl' : 1}, {'short' : 'r', 'long' : 'register data types', 'fold' : 0, 'stl' : 1}, {'short' : 't', 'long' : 'tasks', 'fold' : 0, 'stl' : 1} ]
1 0.000016 let s:known_types.verilog = type_verilog
" VHDL {{{3
" The VHDL ctags parser unfortunately doesn't generate proper scopes
1 0.000060 0.000018 let type_vhdl = s:TypeInfo.New()
1 0.000007 let type_vhdl.ctagstype = 'vhdl'
1 0.000060 let type_vhdl.kinds = [ {'short' : 'P', 'long' : 'packages', 'fold' : 1, 'stl' : 0}, {'short' : 'c', 'long' : 'constants', 'fold' : 0, 'stl' : 0}, {'short' : 't', 'long' : 'types', 'fold' : 0, 'stl' : 1}, {'short' : 'T', 'long' : 'subtypes', 'fold' : 0, 'stl' : 1}, {'short' : 'r', 'long' : 'records', 'fold' : 0, 'stl' : 1}, {'short' : 'e', 'long' : 'entities', 'fold' : 0, 'stl' : 1}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'p', 'long' : 'procedures', 'fold' : 0, 'stl' : 1} ]
1 0.000013 let s:known_types.vhdl = type_vhdl
" Vim {{{3
1 0.000061 0.000018 let type_vim = s:TypeInfo.New()
1 0.000007 let type_vim.ctagstype = 'vim'
1 0.000088 let type_vim.kinds = [ {'short' : 'n', 'long' : 'vimball filenames', 'fold' : 0, 'stl' : 1}, {'short' : 'v', 'long' : 'variables', 'fold' : 1, 'stl' : 0}, {'short' : 'f', 'long' : 'functions', 'fold' : 0, 'stl' : 1}, {'short' : 'a', 'long' : 'autocommand groups', 'fold' : 1, 'stl' : 1}, {'short' : 'c', 'long' : 'commands', 'fold' : 0, 'stl' : 0}, {'short' : 'm', 'long' : 'maps', 'fold' : 1, 'stl' : 0} ]
1 0.000012 let s:known_types.vim = type_vim
" YACC {{{3
1 0.000064 0.000024 let type_yacc = s:TypeInfo.New()
1 0.000005 let type_yacc.ctagstype = 'yacc'
1 0.000014 let type_yacc.kinds = [ {'short' : 'l', 'long' : 'labels', 'fold' : 0, 'stl' : 1} ]
1 0.000039 let s:known_types.yacc = type_yacc
" }}}3
1 0.003604 0.000059 call s:LoadUserTypeDefs()
49 0.000119 for typeinfo in values(s:known_types)
48 0.003125 0.000396 call typeinfo.createKinddict()
48 0.000054 endfor
1 0.000003 let s:type_init_done = 1
FUNCTION <SNR>93_ExecuteCtags()
Called 2 times
Total time: 0.557662
Self time: 0.031784
count total (s) self (s)
2 0.000068 0.000034 call s:debug('Executing ctags command: ' . a:ctags_cmd)
2 0.000013 if exists('+shellslash')
2 0.000012 let shellslash_save = &shellslash
2 0.000069 set noshellslash
2 0.000004 endif
2 0.000032 if &shell =~ 'cmd\.exe'
2 0.000013 let shellxquote_save = &shellxquote
2 0.000019 set shellxquote=\"
2 0.000011 let shellcmdflag_save = &shellcmdflag
2 0.000011 set shellcmdflag=/s\ /c
2 0.000003 endif
2 0.000005 if s:debug
silent 5verbose let ctags_output = system(a:ctags_cmd)
call s:debug(v:statusmsg)
redraw!
else
2 0.557032 0.031188 let ctags_output = system(a:ctags_cmd)
2 0.000020 endif
2 0.000074 if &shell =~ 'cmd\.exe'
2 0.000034 let &shellxquote = shellxquote_save
2 0.000016 let &shellcmdflag = shellcmdflag_save
2 0.000005 endif
2 0.000019 if exists('+shellslash')
2 0.000099 let &shellslash = shellslash_save
2 0.000005 endif
2 0.000015 return ctags_output
FUNCTION fugitive#is_git_dir()
Called 6 times
Total time: 0.000640
Self time: 0.000491
count total (s) self (s)
6 0.000240 0.000090 let path = s:sub(a:path, '[\/]$', '') . '/'
6 0.000387 return isdirectory(path.'objects') && isdirectory(path.'refs') && getfsize(path.'HEAD') > 10
FUNCTION airline#extensions#branch#head()
Called 3 times
Total time: 0.007203
Self time: 0.004515
count total (s) self (s)
3 0.000026 if exists('b:airline_head') && !empty(b:airline_head)
return b:airline_head
endif
3 0.000013 let b:airline_head = ''
3 0.000013 let found_fugitive_head = 0
3 0.000021 if s:has_fugitive && !exists('b:mercurial_dir')
3 0.000078 0.000047 let b:airline_head = fugitive#head(7)
3 0.000011 let found_fugitive_head = 1
3 0.000021 if empty(b:airline_head) && !exists('b:git_dir')
3 0.006718 0.004062 let b:airline_head = s:get_git_branch(expand("%:p:h"))
3 0.000006 endif
3 0.000004 endif
3 0.000014 if empty(b:airline_head)
3 0.000012 if s:has_lawrencium
let b:airline_head = lawrencium#statusline()
endif
3 0.000003 endif
3 0.000009 if empty(b:airline_head)
3 0.000007 if s:has_vcscommand
call VCSCommandEnableBufferSetup()
if exists('b:VCSCommandBufferInfo')
let b:airline_head = get(b:VCSCommandBufferInfo, 0, '')
endif
endif
3 0.000003 endif
3 0.000021 if empty(b:airline_head) || !found_fugitive_head && !s:check_in_path()
3 0.000010 let b:airline_head = ''
3 0.000002 endif
3 0.000019 if exists("g:airline#extensions#branch#displayed_head_limit")
let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit
if len(b:airline_head) > w:displayed_head_limit - 1
let b:airline_head = b:airline_head[0:w:displayed_head_limit - 1].'…'
endif
endif
3 0.000008 return b:airline_head
FUNCTION <SNR>75_is_excluded_window()
Called 2 times
Total time: 0.000218
Self time: 0.000218
count total (s) self (s)
2 0.000011 for matchft in g:airline_exclude_filetypes
if matchft ==# &ft
return 1
endif
endfor
8 0.000023 for matchw in g:airline_exclude_filenames
6 0.000101 if matchstr(expand('%'), matchw) ==# matchw
return 1
endif
6 0.000006 endfor
2 0.000006 if g:airline_exclude_preview && &previewwindow
return 1
endif
2 0.000003 return 0
FUNCTION airline#parts#mode()
Called 3 times
Total time: 0.000024
Self time: 0.000024
count total (s) self (s)
3 0.000021 return get(w:, 'airline_current_mode', '')
FUNCTION airline#extensions#quickfix#apply()
Called 2 times
Total time: 0.000042
Self time: 0.000042
count total (s) self (s)
2 0.000012 if &buftype == 'quickfix'
let w:airline_section_a = s:get_text()
let w:airline_section_b = '%{get(w:, "quickfix_title", "")}'
let w:airline_section_c = ''
let w:airline_section_x = ''
endif
FUNCTION <SNR>89_get_section()
Called 16 times
Total time: 0.001130
Self time: 0.001009
count total (s) self (s)
16 0.000093 if has_key(s:section_truncate_width, a:key)
8 0.000052 if winwidth(a:winnr) < s:section_truncate_width[a:key]
return ''
endif
8 0.000008 endif
16 0.000069 let spc = g:airline_symbols.space
16 0.000410 0.000290 let text = airline#util#getwinvar(a:winnr, 'airline_section_'.a:key, g:airline_section_{a:key})
16 0.000218 let [prefix, suffix] = [get(a:000, 0, '%('.spc), get(a:000, 1, spc.'%)')]
16 0.000132 return empty(text) ? '' : prefix.text.suffix
FUNCTION fugitive#head()
Called 3 times
Total time: 0.000031
Self time: 0.000031
count total (s) self (s)
3 0.000015 if !exists('b:git_dir')
3 0.000009 return ''
endif
return s:repo().head(a:0 ? a:1 : 0)
FUNCTION airline#statusline()
Called 3 times
Total time: 0.000143
Self time: 0.000143
count total (s) self (s)
3 0.000058 if has_key(s:contexts, a:winnr)
3 0.000071 return '%{airline#check_mode('.a:winnr.')}'.s:contexts[a:winnr].line
endif
" in rare circumstances this happens...see #276
return ''
FUNCTION <SNR>93_CheckFTCtags()
Called 1 time
Total time: 0.020344
Self time: 0.020344
count total (s) self (s)
1 0.020257 if executable(a:bin)
return a:bin
endif
1 0.000020 if exists('g:tagbar_type_' . a:ftype)
execute 'let userdef = ' . 'g:tagbar_type_' . a:ftype
if has_key(userdef, 'ctagsbin')
return userdef.ctagsbin
else
return ''
endif
endif
1 0.000004 return ''
FUNCTION airline#extensions#tabline#default#format()
Called 3 times
Total time: 0.000372
Self time: 0.000208
count total (s) self (s)
3 0.000017 let _ = ''
3 0.000022 let name = bufname(a:bufnr)
3 0.000014 if empty(name)
3 0.000015 let _ .= '[No Name]'
3 0.000006 else
if s:fnamecollapse
let _ .= substitute(fnamemodify(name, s:fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g')
else
let _ .= fnamemodify(name, s:fmod)
endif
endif
3 0.000218 0.000054 return airline#extensions#tabline#default#wrap_name(a:bufnr, _)
FUNCTION airline#extensions#apply()
Called 2 times
Total time: 0.000404
Self time: 0.000186
count total (s) self (s)
2 0.000010 let s:active_winnr = winnr()
2 0.000246 0.000028 if s:is_excluded_window()
return -1
endif
2 0.000006 if &buftype == 'help'
call airline#extensions#apply_left_override('Help', '%f')
let w:airline_section_x = ''
let w:airline_section_y = ''
let w:airline_render_right = 1
endif
2 0.000004 if &previewwindow
let w:airline_section_a = 'Preview'
let w:airline_section_b = ''
let w:airline_section_c = bufname(winbufnr(winnr()))
endif
2 0.000017 if has_key(s:filetype_overrides, &ft)
let args = s:filetype_overrides[&ft]
call airline#extensions#apply_left_override(args[0], args[1])
endif
2 0.000013 for item in items(s:filetype_regex_overrides)
if match(&ft, item[0]) >= 0
call airline#extensions#apply_left_override(item[1][0], item[1][1])
endif
endfor
FUNCTION airline#highlighter#get_highlight()
Called 28 times
Total time: 0.006064
Self time: 0.002204
count total (s) self (s)
28 0.002096 0.000437 let fg = s:get_syn(a:group, 'fg')
28 0.001878 0.000408 let bg = s:get_syn(a:group, 'bg')
28 0.000772 let reverse = has('gui_running') ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui') : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm')|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term')
28 0.001253 0.000522 return reverse ? s:get_array(bg, fg, a:000) : s:get_array(fg, bg, a:000)
FUNCTION airline#extensions#syntastic#get_warnings()
Called 3 times
Total time: 0.000623
Self time: 0.000077
count total (s) self (s)
3 0.000585 0.000038 let errors = SyntasticStatuslineFlag()
3 0.000014 if strlen(errors) > 0
return errors.(g:airline_symbols.space)
endif
3 0.000005 return ''
FUNCTION tagbar#getusertypes()
Called 1 time
Total time: 0.003360
Self time: 0.003360
count total (s) self (s)
1 0.003318 let userdefs = filter(copy(g:), 'v:key =~ "^tagbar_type_"')
1 0.000009 let typedict = {}
1 0.000011 for [key, val] in items(userdefs)
let type = substitute(key, '^tagbar_type_', '', '')
let typedict[type] = val
endfor
1 0.000003 return typedict
FUNCTION <SNR>93_AutoUpdate()
Called 1 time
Total time: 0.000877
Self time: 0.000752
count total (s) self (s)
1 0.000052 0.000028 call s:debug('AutoUpdate called [' . a:fname . ']')
" This file is being loaded due to a quickfix command like vimgrep, so
" don't process it
1 0.000006 if exists('s:tagbar_qf_active')
return
elseif exists('s:window_opening')
" This can happen if another plugin causes the active window to change
" with an autocmd during the initial Tagbar window creation. In that
" case InitWindow() hasn't had a chance to run yet and things can
" break. MiniBufExplorer does this, for example. Completely disabling
" autocmds at that point is also not ideal since for example
" statusline plugins won't be able to update.
call s:debug('Still opening window, stopping processing')
return
endif
" Get the filetype of the file we're about to process
1 0.000566 let bufnr = bufnr(a:fname)
1 0.000014 let ftype = getbufvar(bufnr, '&filetype')
" Don't do anything if we're in the tagbar window
1 0.000005 if ftype == 'tagbar'
call s:debug('In Tagbar window, stopping processing')
return
endif
" Only consider the main filetype in cases like 'python.django'
1 0.000021 let sftype = get(split(ftype, '\.'), 0, '')
1 0.000038 0.000021 call s:debug("Vim filetype: '" . ftype . "', " . "sanitized filetype: '" . sftype . "'")
" Don't do anything if the file isn't supported
1 0.000096 0.000024 if !s:IsValidFile(a:fname, sftype)
1 0.000020 0.000009 call s:debug('Not a valid file, stopping processing')
1 0.000004 let s:nearby_disabled = 1
1 0.000002 return
endif
let updated = 0
" Process the file if it's unknown or the information is outdated.
" Testing the mtime of the file is necessary in case it got changed
" outside of Vim, for example by checking out a different version from a
" VCS.
if s:known_files.has(a:fname)
let curfile = s:known_files.get(a:fname)
" if a:force || getbufvar(curfile.bufnr, '&modified') ||
if a:force || empty(curfile) || (filereadable(a:fname) && getftime(a:fname) > curfile.mtime)
call s:debug('File data outdated, updating [' . a:fname . ']')
call s:ProcessFile(a:fname, sftype)
let updated = 1
else
call s:debug('File data seems up to date [' . a:fname . ']')
endif
elseif !s:known_files.has(a:fname)
call s:debug('New file, processing [' . a:fname . ']')
call s:ProcessFile(a:fname, sftype)
let updated = 1
endif
let fileinfo = s:known_files.get(a:fname)
" If we don't have an entry for the file by now something must have gone
" wrong, so don't change the tagbar content
if empty(fileinfo)
call s:debug('fileinfo empty after processing [' . a:fname . ']')
return
endif
" Display the tagbar content if the tags have been updated or a different
" file is being displayed
if bufwinnr('__Tagbar__') != -1 && !s:paused && (s:new_window || updated || (!empty(s:known_files.getCurrent(0)) && a:fname != s:known_files.getCurrent(0).fpath))
call s:RenderContent(fileinfo)
endif
" Call setCurrent after rendering so RenderContent can check whether the
" same file is being redisplayed
if !empty(fileinfo)
call s:debug('Setting current file [' . a:fname . ']')
call s:known_files.setCurrent(fileinfo)
let s:nearby_disabled = 0
endif
call s:HighlightTag(0)
call s:debug('AutoUpdate finished successfully')
FUNCTION session#active()
Called 1 time
Total time: 0.000016
Self time: 0.000016
count total (s) self (s)
1 0.000014 return v:this_session != ""
FUNCTION <SNR>14_init()
Called 2 times
Total time: 0.000075
Self time: 0.000075
count total (s) self (s)
2 0.000006 if !s:airline_initialized
let s:airline_initialized = 1
call airline#init#bootstrap()
call airline#extensions#load()
call airline#init#sections()
let s:airline_theme_defined = exists('g:airline_theme')
if s:airline_theme_defined || !airline#switch_matching_theme()
let g:airline_theme = get(g:, 'airline_theme', 'dark')
call airline#switch_theme(g:airline_theme)
endif
endif
FUNCTION SyntasticStatuslineFlag()
Called 3 times
Total time: 0.000547
Self time: 0.000086
count total (s) self (s)
3 0.000543 0.000082 return g:SyntasticLoclist.current().getStatuslineFlag()
FUNCTION airline#util#prepend()
Called 3 times
Total time: 0.000046
Self time: 0.000046
count total (s) self (s)
3 0.000014 if a:minwidth > 0 && winwidth(0) < a:minwidth
return ''
endif
3 0.000019 return empty(a:text) ? '' : a:text.s:spc.g:airline_right_alt_sep.s:spc
FUNCTION <SNR>93_GetSupportedFiletypes()
Called 1 time
Total time: 0.287040
Self time: 0.000582
count total (s) self (s)
1 0.000043 0.000018 call s:debug('Getting filetypes sypported by Exuberant Ctags')
1 0.000654 0.000023 let ctags_cmd = s:EscapeCtagsCmd(g:tagbar_ctags_bin, '--list-languages')
1 0.000004 if ctags_cmd == ''
return
endif
1 0.285823 0.000021 let ctags_output = s:ExecuteCtags(ctags_cmd)
1 0.000003 if v:shell_error
" this shouldn't happen as potential problems would have already been
" caught by the previous ctags checking
return
endif
1 0.000112 let types = split(ctags_output, '\n\+')
42 0.000075 for type in types
41 0.000229 let s:ctags_types[tolower(type)] = 1
41 0.000055 endfor
1 0.000004 let s:checked_ctags_types = 1
FUNCTION <SNR>93_CheckForExCtags()
Called 1 time
Total time: 0.347214
Self time: 0.074451
count total (s) self (s)
1 0.000091 0.000047 call s:debug('Checking for Exuberant Ctags')
1 0.000015 if !exists('g:tagbar_ctags_bin')
1 0.000016 let ctagsbins = []
1 0.000014 let ctagsbins += ['ctags-exuberant'] " Debian
1 0.000005 let ctagsbins += ['exuberant-ctags']
1 0.000009 let ctagsbins += ['exctags'] " FreeBSD, NetBSD
1 0.000006 let ctagsbins += ['/usr/local/bin/ctags'] " Homebrew
1 0.000006 let ctagsbins += ['/opt/local/bin/ctags'] " Macports
1 0.000008 let ctagsbins += ['ectags'] " OpenBSD
1 0.000008 let ctagsbins += ['ctags']
1 0.000012 let ctagsbins += ['ctags.exe']
1 0.000004 let ctagsbins += ['tags']
7 0.000050 for ctags in ctagsbins
7 0.073770 if executable(ctags)
1 0.000013 let g:tagbar_ctags_bin = ctags
1 0.000003 break
endif
6 0.000017 endfor
1 0.000009 if !exists('g:tagbar_ctags_bin')
let errmsg = 'Tagbar: Exuberant ctags not found!'
let infomsg = 'Please download Exuberant Ctags from' . ' ctags.sourceforge.net and install it in a' . ' directory in your $PATH or set g:tagbar_ctags_bin.'
call s:CtagsErrMsg(errmsg, infomsg, a:silent)
let s:checked_ctags = 2
return 0
endif
1 0.000002 else
" reset 'wildignore' temporarily in case *.exe is included in it
let wildignore_save = &wildignore
set wildignore&
let g:tagbar_ctags_bin = expand(g:tagbar_ctags_bin)
let &wildignore = wildignore_save
if !executable(g:tagbar_ctags_bin)
let errmsg = "Tagbar: Exuberant ctags not found at " . "'" . g:tagbar_ctags_bin . "'!"
let infomsg = 'Please check your g:tagbar_ctags_bin setting.'
call s:CtagsErrMsg(errmsg, infomsg, a:silent)
let s:checked_ctags = 2
return 0
endif
endif
1 0.000615 0.000043 let ctags_cmd = s:EscapeCtagsCmd(g:tagbar_ctags_bin, '--version')
1 0.000003 if ctags_cmd == ''
let s:checked_ctags = 2
return 0
endif
1 0.271895 0.000034 let ctags_output = s:ExecuteCtags(ctags_cmd)
1 0.000023 if v:shell_error || ctags_output !~# 'Exuberant Ctags'
let errmsg = 'Tagbar: Ctags doesn''t seem to be Exuberant Ctags!'
let infomsg = 'GNU ctags will NOT WORK.' . ' Please download Exuberant Ctags from ctags.sourceforge.net' . ' and install it in a directory in your $PATH' . ' or set g:tagbar_ctags_bin.'
call s:CtagsErrMsg(errmsg, infomsg, a:silent, ctags_cmd, ctags_output)
let s:checked_ctags = 2
return 0
elseif !s:CheckExCtagsVersion(ctags_output)
let errmsg = 'Tagbar: Exuberant Ctags is too old!'
let infomsg = 'You need at least version 5.5 for Tagbar to work.' . ' Please download a newer version from ctags.sourceforge.net.'
call s:CtagsErrMsg(errmsg, infomsg, a:silent, ctags_cmd, ctags_output)
let s:checked_ctags = 2
return 0
else
1 0.000007 let s:checked_ctags = 1
1 0.000003 return 1
endif
FUNCTION <SNR>17_can_diffoff()
Called 1 time
Total time: 0.000018
Self time: 0.000018
count total (s) self (s)
1 0.000017 return getwinvar(bufwinnr(a:buf), '&diff') && !empty(getbufvar(a:buf, 'git_dir')) && !empty(getwinvar(bufwinnr(a:buf), 'fugitive_diff_restore'))
FUNCTION <SNR>89_add_section()
Called 14 times
Total time: 0.012639
Self time: 0.000698
count total (s) self (s)
" i have no idea why the warning section needs special treatment, but it's
" needed to prevent separators from showing up
14 0.000042 if a:key == 'warning'
2 0.000042 0.000026 call a:builder.add_raw('%(')
2 0.000003 endif
14 0.012278 0.000369 call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
14 0.000048 if a:key == 'warning'
2 0.000039 0.000022 call a:builder.add_raw('%)')
2 0.000003 endif
FUNCTION <SNR>14_on_window_changed()
Called 2 times
Total time: 0.015157
Self time: 0.000067
count total (s) self (s)
2 0.000009 if pumvisible()
return
endif
2 0.000096 0.000021 call <sid>init()
2 0.015039 0.000024 call airline#update_statusline()
FUNCTION airline#builder#new()
Called 3 times
Total time: 0.000182
Self time: 0.000182
count total (s) self (s)
3 0.000041 let builder = copy(s:prototype)
3 0.000017 let builder._context = a:context
3 0.000010 let builder._side = 1
3 0.000010 let builder._curgroup = ''
3 0.000009 let builder._line = ''
3 0.000071 call extend(builder._context, { 'left_sep': g:airline_left_sep, 'left_alt_sep': g:airline_left_alt_sep, 'right_sep': g:airline_right_sep, 'right_alt_sep': g:airline_right_alt_sep, }, 'keep')
3 0.000007 return builder
FUNCTIONS SORTED ON TOTAL TIME
count total (s) self (s) function
3 0.725503 0.009062 airline#extensions#tagbar#currenttag()
1 0.704093 0.000265 tagbar#currenttag()
1 0.703820 0.001557 <SNR>93_Init()
2 0.557662 0.031784 <SNR>93_ExecuteCtags()
1 0.347214 0.074451 <SNR>93_CheckForExCtags()
1 0.287040 0.000582 <SNR>93_GetSupportedFiletypes()
1 0.066719 0.038673 <SNR>93_InitTypes()
1 0.020344 <SNR>93_CheckFTCtags()
2 0.015157 0.000067 <SNR>14_on_window_changed()
2 0.015016 0.000305 airline#update_statusline()
2 0.014710 0.000191 <SNR>15_invoke_funcrefs()
2 0.014371 0.000279 airline#util#exec_funcrefs()
2 0.013518 0.000248 airline#extensions#default#apply()
4 0.013077 0.000439 <SNR>89_build_sections()
17 0.012724 0.003078 96()
14 0.012639 0.000698 <SNR>89_add_section()
1 0.010101 0.000742 <SNR>59_mergelists()
14 0.009646 0.000462 airline#highlighter#add_separator()
2 0.009277 0.000160 airline#extensions#tabline#get()
14 0.009184 0.001100 <SNR>84_exec_separator()
FUNCTIONS SORTED ON SELF TIME
count total (s) self (s) function
1 0.347214 0.074451 <SNR>93_CheckForExCtags()
1 0.066719 0.038673 <SNR>93_InitTypes()
2 0.557662 0.031784 <SNR>93_ExecuteCtags()
1 0.020344 <SNR>93_CheckFTCtags()
3 0.725503 0.009062 airline#extensions#tagbar#currenttag()
1 0.008367 0.007700 ctrlp#mrufiles#cachefile()
3 0.007203 0.006227 airline#extensions#tabline#get_buffer_name()
3 0.007203 0.004515 airline#extensions#branch#head()
2 0.004680 0.003570 fugitive#extract_git_dir()
1 0.003360 tagbar#getusertypes()
56 0.003129 <SNR>84_get_syn()
17 0.012724 0.003078 96()
48 0.002730 129()
28 0.006064 0.002204 airline#highlighter#get_highlight()
1 0.002233 0.002093 ctrlp#utils#writecache()
1 0.703820 0.001557 <SNR>93_Init()
41 0.001408 127()
14 0.001526 0.001351 airline#highlighter#exec()
1 0.001194 0.001108 <SNR>64_VimEnter()
14 0.009184 0.001100 <SNR>84_exec_separator()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment