Skip to content

Instantly share code, notes, and snippets.

@haya14busa
Last active March 26, 2016 03:40
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 haya14busa/bf1e12b4ac9112e633e4 to your computer and use it in GitHub Desktop.
Save haya14busa/bf1e12b4ac9112e633e4 to your computer and use it in GitHub Desktop.

新しくなった vital のベンチマーク

  • vital#of('incsearch') はPR以前ではなくこのPRのものなので以前より速くなってます.(そのベンチマークは後ほど)
  • 計測してるプラグインはこれ haya14busa/incsearch.vim#113
  • この revital の記事 http://haya14busa.com/revital-vim-makes-vital-vim-a-lot-faster/ より s:_vital_incsearch_of() が僅かに遅いです. これはおそらく,:finish 対応をするためにモジュールファイルを書き換えるコードをスクリプトの先頭にもってきた結果 function('s:method') を先に保存しておけなくなったということが考えられるけどそれほど変わるかは謎.
  • なお計測は実行の順番入れ替えたり何度も実行したりしてますがほとんど変わらないです.

FUNCTIONS SORTED ON SELF TIME count total (s) self (s) function 4 0.117675 0.117447 neocomplete#helper#clean() 100 0.117161 0.115500 vital#of()

雑に :profile した結果 vital#of()自体が遅いので vital#of({plugin-name})よりvital#{plugin-name}#of() が速いことがわかるかとおもいます.

command! -bar TimerStart let start_time = reltime()
command! -bar TimerEnd echo reltimestr(reltime(start_time)) | unlet start_time

function! s:_vital_of() abort
  let V = vital#of('incsearch')
  call V.load('Data.List')
  call V.unload()
endfunction

function! s:_vital_incsearch_of() abort
  let V = vital#incsearch#of()
  call V.load('Data.List')
  call V.unload()
endfunction

let s:times = 100

TimerStart
for _ in range(s:times)
  call s:_vital_incsearch_of()
endfor
TimerEnd
" => 0.040110

TimerStart
for _ in range(s:times)
  call s:_vital_of()
endfor
TimerEnd
" => 0.156313
vital#of({plugin-name}) vital#of{plugin-name}#()
0.156313 0.040110
FUNCTION  yankround#on_cmdwinleave()
Called 1 time
Total time:   0.000227
 Self time:   0.000015

count  total (s)   self (s)
    1              0.000003   if !has_key(s:, 'save_rounder')
                                return
                              end
    1              0.000002   let g:_yankround_stop_caching = 1
    1              0.000002   let s:rounder = s:save_rounder
    1   0.000219   0.000007   call s:_rounder_autocmd()

FUNCTION  <SNR>203_single_word()
Called 2 times
Total time:   0.000101
 Self time:   0.000038

count  total (s)   self (s)
    2              0.000004 	let pattern = a:pattern
    2              0.000002 	if pattern ==# ""
                            		let word = expand("<cword>")
                            	else
    2   0.000078   0.000015 		let word = s:Buffer.get_text_from_pattern(pattern)
    2              0.000001 	endif
                            
                            	" マルチバイト文字はハイライトしない
    2              0.000006 	if word == ""	|| !empty(filter(split(word, '\zs'), "strlen(v:val) > 1"))
    2              0.000002 		return
                            	endif
                            
                            	let ignore_word_pattern = get(b:, "brightest_ignore_word_pattern", g:brightest#ignore_word_pattern)
                            	if !empty(ignore_word_pattern) && word =~ ignore_word_pattern
                            		return
                            	endif
                            
                            	let pattern = s:Prelude.escape_pattern(word)
                            
                            	if &cursorline && a:cursorline.group ==# "BrightestCursorLineBg"
                            		call brightest#define_cursorline_highlight_group(a:highlight.group)
                            	endif
                            
                            	" nocursorline の場合、BrightestCursorLineBg でハイライトしない
                            	let is_highlight_cursorline		= !(a:cursorline.group ==# "BrightestCursorLineBg" && &cursorline == 0 || a:cursorline.group == "")
                            
                            	if is_highlight_cursorline
                            		call s:highlight("cursor_line_over", '\%<' . line('.') . 'l' . pattern, a:highlight)
                            		call s:highlight("cursor_line_down", '\%>' . line('.') . 'l' . pattern, a:highlight)
                            	else
                            		call s:highlight("cursor_word", pattern, a:highlight)
                            	endif
                            
                            	if is_highlight_cursorline
                            		call s:highlight("cursor_line", '\%' . line('.') . 'l' . pattern, a:cursorline)
                            	endif
                            	return 1

FUNCTION  neocomplete#available_sources()
Called 1 time
Total time:   0.000014
 Self time:   0.000009

count  total (s)   self (s)
    1   0.000014   0.000009   return copy(neocomplete#variables#get_sources())

FUNCTION  neocomplete#is_cache_disabled()
Called 10 times
Total time:   0.000331
 Self time:   0.000201

count  total (s)   self (s)
   10              0.000034   let ignore_filetypes = ['fuf', 'ku']
   10              0.000039   let bufnr = a:0 > 0 ? a:1 : bufnr('%')
   10   0.000249   0.000119   return !neocomplete#is_enabled() || index(ignore_filetypes, &filetype) >= 0 || neocomplete#get_current_neocomplete().lock || (g:neocomplete#lock_buffer_name_pattern != '' &&   bufname(bufnr) =~ g:neocomplete#lock_buffer_name_pattern)

FUNCTION  neocomplete#init#_current_neocomplete()
Called 1 time
Total time:   0.000131
 Self time:   0.000036

count  total (s)   self (s)
    1   0.000130   0.000035   let b:neocomplete = { 'context' : {      'input' : '',      'complete_pos' : -1,      'complete_str' : '',      'candidates' : [], }, 'lock' : 0, 'skip_next_complete' : 0, 'filetype' : '', 'context_filetype' : '', 'context_filetypes' : [], 'completion_length' : -1, 'update_time_save' : &updatetime, 'foldinfo' : [], 'skipped' : 0, 'event' : '', 'cur_text' : '', 'old_cur_text' : '', 'old_linenr' : line('.'), 'old_complete_pos' : -1, 'old_char' : '', 'complete_str' : '', 'complete_pos' : -1, 'candidates' : [], 'complete_sources' : [], 'manual_sources' : [], 'start_time' : reltime(), 'linenr' : 0, 'completeopt' : &completeopt, 'sources' : [], 'sources_filetype' : '', 'within_comment' : 0, 'is_auto_complete' : 0, 'indent_text' : '', 'default_matchers' : neocomplete#init#_filters(  (g:neocomplete#enable_fuzzy_completion ?   ['matcher_fuzzy'] : ['matcher_head'])  + ['matcher_length']),}

FUNCTION  neocomplete#util#uniq()
Called 3 times
Total time:   0.000232
 Self time:   0.000034

count  total (s)   self (s)
    3   0.000231   0.000033   return call(s:get_list().uniq, a:000)

FUNCTION  vital#_incsearch#new()
Called 100 times
Total time:   0.001661
 Self time:   0.000481

count  total (s)   self (s)
  100   0.001628   0.000448   return vital#{s:_plugin_name[1:]}#of()

FUNCTION  neosnippet#helpers#get_completion_snippets()
Called 1 time
Total time:   0.002100
 Self time:   0.000149

count  total (s)   self (s)
    1   0.002099   0.000148   return filter(neosnippet#helpers#get_snippets(), "!get(v:val.options, 'oneshot', 0)")

FUNCTION  <SNR>287_vp_dlclose()
Called 1 time
Total time:   0.000132
 Self time:   0.000007

count  total (s)   self (s)
    1   0.000132   0.000007   call s:libcall('vp_dlclose', [a:handle])

FUNCTION  <SNR>408_reset_filetype()
Called 2 times
Total time:   0.000035
 Self time:   0.000017

count  total (s)   self (s)
    2   0.000028   0.000010 	if &filetype != precious#base_filetype()
                            		let &filetype = precious#base_filetype()
                            	endif

FUNCTION  <SNR>414_get_list()
Called 3 times
Total time:   0.000023
 Self time:   0.000023

count  total (s)   self (s)
    3              0.000009   if !exists('s:List')
                                let s:List = neocomplete#util#get_vital().import('Data.List')
                              endif
    3              0.000002   return s:List

FUNCTION  anzu#clear_search_status()
Called 1 time
Total time:   0.000003
 Self time:   0.000003

count  total (s)   self (s)
    1              0.000003 	let s:status_cache = ""

FUNCTION  neocomplete#variables#get_sources()
Called 4 times
Total time:   0.000024
 Self time:   0.000024

count  total (s)   self (s)
    4              0.000011   if !exists('s:sources')
                                let s:sources = {}
                              endif
    4              0.000004   return s:sources

FUNCTION  neocomplete#helper#match_word()
Called 11 times
Total time:   0.000275
 Self time:   0.000275

count  total (s)   self (s)
   11              0.000032   let pattern = a:0 >= 1 ? a:1 : neocomplete#get_keyword_pattern_end()
                            
                              " Check wildcard.
   11              0.000165   let complete_pos = match(a:cur_text, pattern)
                            
   11              0.000040   let complete_str = (complete_pos >=0) ? a:cur_text[complete_pos :] : ''
                            
   11              0.000020   return [complete_pos, complete_str]

FUNCTION  neocomplete#cache#load_from_cache()
Called 1 time
Total time:   0.000308
 Self time:   0.000174

count  total (s)   self (s)
    1              0.000004   let is_string = get(a:000, 0, 0)
                            
    1              0.000001   try
                                " Note: For neocomplete.
    1              0.000001     let list = []
                            
    1              0.000001     if is_string
    1              0.000001       lua << EOF
                            do
                              local ret = vim.eval('list')
                              local list = {}
                              for line in io.lines(vim.eval(
                                  'neocomplete#cache#encode_name(a:cache_dir, a:filename)')) do
                                list = (loadstring) and loadstring('return ' .. line)()
                                                    or  load('return ' .. line)()
                              end
                            
                              for i = 1, #list do
                                ret:add(list[i])
                              end
                            end
                            EOF
    1              0.000001     else
                                  let list = eval(get(neocomplete#cache#readfile( a:cache_dir, a:filename), 0, '[]'))
                                endif
                            
    1              0.000005     if !empty(list) && is_string && type(list[0]) != type('')
                                  " Type check.
                                  throw 'Type error'
                                endif
                            
    1              0.000002     return list
                              catch
                                " echomsg string(v:errmsg)
                                " echomsg string(v:exception)
                            
                                " Delete old cache file.
                                let cache_name = neocomplete#cache#encode_name(a:cache_dir, a:filename)
                                if filereadable(cache_name)
                                  call delete(cache_name)
                                endif
                            
                                return []
                              endtry

FUNCTION  300()
Called 1 time
Total time:   0.017766
 Self time:   0.001217

count  total (s)   self (s)
    1              0.000002   if self.do_validate
    1   0.017763   0.001214     call filter(self.candidates, 's:is_file_exist(v:val)')
    1              0.000001   endif

FUNCTION  fugitive#detect()
Called 1 time
Total time:   0.001103
 Self time:   0.000161

count  total (s)   self (s)
    1              0.000004   if exists('b:git_dir') && (b:git_dir ==# '' || b:git_dir =~# '/$')
                                unlet b:git_dir
                              endif
    1              0.000001   if !exists('b:git_dir')
    1   0.000268   0.000007     let dir = fugitive#extract_git_dir(a:path)
    1              0.000001     if dir !=# ''
    1              0.000002       let b:git_dir = dir
    1              0.000001     endif
    1              0.000000   endif
    1              0.000002   if exists('b:git_dir')
    1              0.000004     if exists('#User#FugitiveBoot')
                                  try
                                    let [save_mls, &modelines] = [&mls, 0]
                                    doautocmd User FugitiveBoot
                                  finally
                                    let &mls = save_mls
                                  endtry
                                endif
    1              0.000002     if !exists('g:fugitive_no_maps')
    1              0.000028       cnoremap <buffer> <expr> <C-R><C-G> fnameescape(<SID>recall())
    1              0.000025       nnoremap <buffer> <silent> y<C-G> :call setreg(v:register, <SID>recall())<CR>
    1              0.000001     endif
    1   0.000042   0.000009     let buffer = fugitive#buffer()
    1              0.000007     if expand('%:p') =~# '//'
                                  call buffer.setvar('&path', s:sub(buffer.getvar('&path'), '^\.%(,|$)', ''))
                                endif
    1   0.000011   0.000008     if stridx(buffer.getvar('&tags'), escape(b:git_dir, ', ')) == -1
    1              0.000007       if filereadable(b:git_dir.'/tags')
                                    call buffer.setvar('&tags', escape(b:git_dir.'/tags', ', ').','.buffer.getvar('&tags'))
                                  endif
    1              0.000005       if &filetype !=# '' && filereadable(b:git_dir.'/'.&filetype.'.tags')
                                    call buffer.setvar('&tags', escape(b:git_dir.'/'.&filetype.'.tags', ', ').','.buffer.getvar('&tags'))
                                  endif
    1              0.000001     endif
    1              0.000001     try
    1              0.000008       let [save_mls, &modelines] = [&mls, 0]
    1   0.000651   0.000006       doautocmd User Fugitive
    1              0.000001     finally
    1              0.000006       let &mls = save_mls
    1              0.000001     endtry
    1              0.000000   endif

FUNCTION  context_filetype#get()
Called 17 times
Total time:   0.011298
 Self time:   0.000286

count  total (s)   self (s)
   17              0.000044   let base_filetype = get(a:, 1, &filetype)
   17   0.000226   0.000074   let filetypes = s:get_filetypes({})
   17   0.010934   0.000074   let context = s:get_nest(base_filetype, filetypes)
   17              0.000019   if context.range == s:null_range
   17              0.000031     let context.filetype = base_filetype
   17              0.000012   endif
   17              0.000017   return context

FUNCTION  <SNR>443_check_force_omni()
Called 3 times
Total time:   0.001588
 Self time:   0.000045

count  total (s)   self (s)
    3              0.000005   let cur_text = a:cur_text
    3   0.001561   0.000018   let complete_pos = neocomplete#helper#get_force_omni_complete_pos(cur_text)
                            
    3              0.000007   if complete_pos >= 0 && !neocomplete#complete#_check_previous_position(       cur_text, complete_pos)
                                call s:complete_key("\<Plug>(neocomplete_start_omni_complete)")
                              endif
                            
    3              0.000002   return complete_pos

FUNCTION  neosnippet#handlers#_cursor_moved()
Called 4 times
Total time:   0.000083
 Self time:   0.000040

count  total (s)   self (s)
    4   0.000062   0.000019   let expand_stack = neosnippet#variables#expand_stack()
                            
                              " Get patterns and count.
    4              0.000012   if !&l:modifiable || !&l:modified || empty(expand_stack)
    4              0.000003     return
                              endif
                            
                              let expand_info = expand_stack[-1]
                              if expand_info.begin_line == expand_info.end_line && line('.') != expand_info.begin_line
                                call neosnippet#view#_clear_markers(expand_info)
                              endif

FUNCTION  <SNR>287_garbage_collect()
Called 1 time
Total time:   0.000025
 Self time:   0.000025

count  total (s)   self (s)
    1              0.000005   for pid in values(s:bg_processes)
                                " Check processes.
                                try
                                  let [cond, _] = s:libcall('vp_waitpid', [pid])
                                  " echomsg string([pid, cond, _])
                                  if cond !=# 'run' || a:is_force
                                    if cond !=# 'exit'
                                      " Kill process.
                                      call vimproc#kill(pid, g:vimproc#SIGTERM)
                                    endif
                            
                                    if vimproc#util#is_windows()
                                      call s:libcall('vp_close_handle', [pid])
                                    endif
                                    call remove(s:bg_processes, pid)
                                  endif
                                catch
                                  " Ignore error.
                                endtry
                              endfor

FUNCTION  <SNR>2_init_cmdwin()
Called 1 time
Total time:   0.000280
 Self time:   0.000280

count  total (s)   self (s)
    1              0.000005   setlocal nonumber
    1              0.000039   silent! 1,$-20 delete _ | call cursor('$', 0)
                            
    1              0.000070   nnoremap <silent><buffer>q          :<C-u>quit<CR>
    1              0.000020   nnoremap <silent><buffer><CR>       <CR>
    1              0.000020   inoremap <silent><buffer><expr><CR> pumvisible() ? "\<C-y>\<CR>" : "\<CR>"
    1              0.000019   nnoremap <silent><buffer><TAB>      :<C-u>quit<CR>
                            
    1              0.000016   nnoremap <silent><buffer><Space> <CR>q:
    1              0.000017   nnoremap <silent><buffer>;;      <CR>q:
    1              0.000016   inoremap <silent><buffer>;;      <CR>q:
                            
                              " Completion.
    1              0.000017   inoremap <silent><buffer><expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"
    1              0.000017   inoremap <silent><buffer><expr><C-p>  pumvisible() ? "\<C-p>" : "\<C-o>0\<UP>"
    1              0.000017   inoremap <silent><buffer><expr><C-n>  pumvisible() ? "\<C-n>" : "\<C-o>0\<DOWN>"
                            
    1              0.000002   startinsert!

FUNCTION  <SNR>441_uniq()
Called 5 times
Total time:   0.000227
 Self time:   0.000028

count  total (s)   self (s)
    5   0.000226   0.000027   return s:uniq_by(a:list, 'v:val')

FUNCTION  <SNR>97_append()
Called 1 time
Total time:   0.000025
 Self time:   0.000017

count  total (s)   self (s)
    1              0.000003   if bufnr('%') != expand('<abuf>')
                                return
                              endif
                            
    1              0.000006   if !has('vim_starting') || bufname(bufnr('%')) != ''
    1   0.000014   0.000006     call unite#sources#buffer#variables#append(bufnr('%'))
    1              0.000001   endif

FUNCTION  <SNR>456_is_beginning_of_line()
Called 1 time
Total time:   0.000019
 Self time:   0.000019

count  total (s)   self (s)
    1              0.000001   let keyword_pattern = '\S\+'
    1              0.000007   let cur_keyword_str = matchstr(a:cur_text, keyword_pattern.'$')
    1              0.000004   let line_part = a:cur_text[: -1-len(cur_keyword_str)]
    1              0.000005   let prev_word_end = matchend(line_part, keyword_pattern)
                            
    1              0.000001   return prev_word_end <= 0

FUNCTION  neocomplete#get_cur_text()
Called 3 times
Total time:   0.000204
 Self time:   0.000038

count  total (s)   self (s)
                              " Return cached text.
    3   0.000032   0.000013   let neocomplete = neocomplete#get_current_neocomplete()
    3   0.000171   0.000024   return (a:0 == 0 && mode() ==# 'i' &&  neocomplete.cur_text != '') ? neocomplete.cur_text : neocomplete#helper#get_cur_text()

FUNCTION  <SNR>232_is_sudo()
Called 2 times
Total time:   0.000012
 Self time:   0.000012

count  total (s)   self (s)
    2              0.000012   return $SUDO_USER != '' && $USER !=# $SUDO_USER && $HOME !=# expand('~'.$USER) && $HOME ==# expand('~'.$SUDO_USER)

FUNCTION  <SNR>409_get_context()
Called 34 times
Total time:   0.010323
 Self time:   0.005366

count  total (s)   self (s)
   34              0.000102   let base_filetype = empty(a:filetype) ? 'nothing' : a:filetype
   34              0.000111   let context_filetypes = get(a:context_filetypes, base_filetype, [])
   34              0.000052   if empty(context_filetypes)
                                return s:null_context
                              endif
                            
   34              0.000089   let pos = [line('.'), col('.')]
                            
  170              0.000188   for context in context_filetypes
  136   0.005550   0.000593     let range = s:search_range(context.start, context.end)
                            
                                " insert 時にカーソル座標がずれるのでそれの対応
  136              0.000239     let start = range[0]
  136              0.000521     let end   = [range[1][0], (mode() ==# 'i') ? range[1][1]+1 : range[1][1]]
                            
                                " start <= pos && pos <= end
                                " search_range[0] <= start && start <= search_range[1]
                                " search_range[0] <= end   && end   <= search_range[1]
  136              0.000682     if range != s:null_range  && s:is_in(start, end, pos)  && s:is_in(a:search_range[0], a:search_range[1], range[0])  && s:is_in(a:search_range[0], a:search_range[1], range[1])
                                  let context_filetype = context.filetype
                                  if context.filetype =~ '\\\d\+'
                                    let stopline_back = s:stopline_back()
                                    let line = getline( searchpos(context.start, 'nbW', stopline_back)[0] )
                                    let match_list = matchlist(line, context.start)
                                    let context_filetype = s:replace_submatch(context.filetype, match_list)
                                  endif
                                  return { "filetype" : context_filetype, "range" : range }
                                endif
  136              0.000098   endfor
                            
   34              0.000036   return s:null_context

FUNCTION  neocomplete#get_current_neocomplete()
Called 144 times
Total time:   0.000999
 Self time:   0.000868

count  total (s)   self (s)
  144              0.000306   if !exists('b:neocomplete')
    1   0.000140   0.000009     call neocomplete#init#_current_neocomplete()
    1              0.000001   endif
                            
  144              0.000151   return b:neocomplete

FUNCTION  precious#context_filetype()
Called 1 time
Total time:   0.000845
 Self time:   0.000015

count  total (s)   self (s)
    1              0.000004 	for matcher in values(s:matchers)
    1   0.000836   0.000006 		let filetype = matcher.apply()
    1              0.000002 		if !empty(filetype)
    1              0.000001 			return filetype
                            		endif
                            	endfor
                            	return precious#base_filetype()

FUNCTION  neocomplete#init#_filters()
Called 1 time
Total time:   0.000095
 Self time:   0.000089

count  total (s)   self (s)
    1              0.000001   let _ = []
    1   0.000017   0.000011   let filters = neocomplete#variables#get_filters()
                            
    3              0.000004   for name in a:names
    2              0.000004     if !has_key(filters, name)
                                  " Search autoload.
                                  for filter_name in map(split(globpath(&runtimepath, 'autoload/neocomplete/filters/'.   substitute(name,'^\%(matcher\|sorter\|converter\)_[^/_-]\+\zs[/_-].*$', '', '')  .'*.vim'), '\n'), "fnamemodify(v:val, ':t:r')")
                                    let filter = neocomplete#filters#{filter_name}#define()
                                    if empty(filter)
                                      " Ignore.
                                      continue
                                    endif
                            
                                    call neocomplete#define_filter(filter)
                                  endfor
                            
                                  if !has_key(filters, name)
                                    " Not found.
                                    call neocomplete#print_error( printf('filter name : %s is not found.', string(name)))
                                    continue
                                  endif
                                endif
                            
    2              0.000004     if has_key(filters, name)
    2              0.000005       call add(_, filters[name])
    2              0.000001     endif
    2              0.000001   endfor
                            
    1              0.000001   return _

FUNCTION  <SNR>139_repo_head()
Called 18 times
Total time:   0.001530
 Self time:   0.000460

count  total (s)   self (s)
   18   0.000989   0.000102     let head = s:repo().head_ref()
                            
   18              0.000095     if head =~# '^ref: '
   18   0.000274   0.000091       let branch = s:sub(head,'^ref: %(refs/%(heads/|remotes/|tags/)=)=','')
   18              0.000019     elseif head =~# '^\x\{40\}$'
                                  " truncate hash to a:1 characters if we're in detached head mode
                                  let len = a:0 ? a:1 : 0
                                  let branch = len ? head[0:len-1] : ''
                                else
                                  return ''
                                endif
                            
   18              0.000018     return branch

FUNCTION  839()
Called 2 times
Total time:   0.000218
 Self time:   0.000078

count  total (s)   self (s)
    2              0.000004   let filetype = a:context.filetype
    2              0.000005   if filetype ==# 'vimshell' || filetype ==# 'unite' || filetype ==# 'int-ssh'
                                return -1
                              endif
                            
                              " Filename pattern.
    2   0.000088   0.000017   let pattern = neocomplete#get_keyword_pattern_end('filename', self.name)
    2   0.000065   0.000017   let [complete_pos, complete_str] = neocomplete#helper#match_word(a:context.input, pattern)
                            
    2   0.000046   0.000025   if (complete_str =~ '//' || complete_str == '/' || (neocomplete#is_auto_complete() &&    (complete_str !~ '/' || len(complete_str) <          g:neocomplete#auto_completion_start_length ||     complete_str =~#          '\\[^ ;*?[]"={}'']\|\.\.\+$\|/c\%[ygdrive/]$')))
                                " Not filename pattern.
    2              0.000001     return -1
                              endif
                            
                              if complete_str =~ '/'
                                let complete_pos += strridx(complete_str, '/') + 1
                              endif
                            
                              return complete_pos

FUNCTION  <SNR>486_restore_options()
Called 1 time
Total time:   0.000003
 Self time:   0.000003

count  total (s)   self (s)
    1              0.000002 	if s:search_highlighted || s:set_flag == 0
    1              0.000001 		return
                            	endif
                            
                            	let s:set_flag = 0
                            	let &incsearch = s:old_incsearch
                            	let &hlsearch  = s:old_hlsearch
                            	if g:over_enable_auto_nohlsearch
                            		call s:silent_feedkeys(":nohlsearch\<CR>", "nohlsearch", 'n')
                            		call feedkeys("\<Plug>(over-restore-nohlsearch)")
                            	endif
                            	execute "normal \<Plug>(over-restore-search-pattern)"
                            " 	call s:silent_feedkeys(":let @/ = " . string(s:old_search_pattern) . "\<CR>", "restore-search-pattern", 'n')

FUNCTION  <SNR>563__get_module()
Called 200 times
Total time:   0.026817
 Self time:   0.004411

count  total (s)   self (s)
  200              0.000237   try
  200   0.024620   0.002214     let module = vital#_{self.plugin_name}#{substitute(a:name, '\.', '#', 'g')}#import()
  200              0.000283   catch /E117: Unknown function:/
                                if !s:has_latest_module
                                  throw 'vital: module not found: ' . a:name
                                endif
                                " Retry to support loading self modules.
                                let module = s:_get_latest_module(a:name)
                              endtry
  200              0.000206   return module

FUNCTION  <SNR>435_make_cache_current_buffer()
Called 3 times
Total time:   0.001455
 Self time:   0.000872

count  total (s)   self (s)
    3              0.000007   let srcname = bufnr('%')
                            
                              " Make cache from current buffer.
    3   0.000080   0.000013   if !s:should_create_cache(srcname)
                                return
                              endif
                            
    3   0.000075   0.000013   if !s:exists_current_source()
    1   0.000228   0.000006     call s:initialize_source(srcname)
    1              0.000000   endif
                            
    3              0.000008   let source = s:buffer_sources[srcname]
    3              0.000006   let keyword_pattern = source.keyword_pattern
    3              0.000005   if keyword_pattern == ''
                                return
                              endif
                            
    3              0.000003   let words = []
                            
    3              0.000003   lua << EOF
                            do
                              local words = vim.eval('words')
                              local dup = {}
                              local b = vim.buffer()
                              local min_length = vim.eval('g:neocomplete#min_keyword_length')
                              for linenr = vim.eval('a:start'), vim.eval('a:end') do
                                local match = 0
                                while 1 do
                                  local match_str = vim.eval('matchstr(getline('..linenr..
                                  '), keyword_pattern, ' .. match .. ')')
                                  if match_str == '' then
                                    break
                                  end
                                  if dup[match_str] == nil
                                    and string.len(match_str) >= min_length then
                                    dup[match_str] = 1
                                    words:add(match_str)
                                  end
                            
                                  -- Next match.
                                  match = vim.eval('matchend(getline(' .. linenr ..
                                    '), keyword_pattern, ' .. match .. ')')
                                end
                              end
                            end
                            EOF
                            
    3   0.000262   0.000030   let source.words = neocomplete#util#uniq(source.words + words)

FUNCTION  precious#switch()
Called 2 times
Total time:   0.000056
 Self time:   0.000029

count  total (s)   self (s)
    2              0.000005 	let context_filetype = a:filetype
                            
    2   0.000041   0.000014 	let prev_context_filetype = s:prev_context_filetype()
    2              0.000005 	if context_filetype == prev_context_filetype
    2              0.000002 		return 0
                            	endif
                            
                            	let base_filetype = precious#base_filetype()
                            	let context = {		"base_filetype" : base_filetype,		"context_filetype" : context_filetype,		"prev_context_filetype" : prev_context_filetype	}
                            
                            	call precious#reset_contextlocal()
                            	try
                            		for [name, switcher] in items(s:switchers)
                            			if s:is_enable_switch(name, base_filetype)
                            				call switcher.apply(context)
                            			endif
                            		endfor
                            	finally
                            		let b:precious_prev_context_filetype = context_filetype
                            	endtry

FUNCTION  neocomplete#helper#check_invalid_omnifunc()
Called 7 times
Total time:   0.000021
 Self time:   0.000021

count  total (s)   self (s)
    7              0.000019   return a:omnifunc == '' || (a:omnifunc !~ '#' && !exists('*' . a:omnifunc))

FUNCTION  fugitive#extract_git_dir()
Called 1 time
Total time:   0.000261
 Self time:   0.000143

count  total (s)   self (s)
    1   0.000031   0.000010   if s:shellslash(a:path) =~# '^fugitive://.*//'
                                return matchstr(s:shellslash(a:path), '\C^fugitive://\zs.\{-\}\ze//')
                              endif
    1   0.000028   0.000017   let root = s:shellslash(simplify(fnamemodify(a:path, ':p:s?[\/]$??')))
    1              0.000001   let previous = ""
    2              0.000004   while root !=# previous
    2              0.000011     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
    2              0.000013     if index(split($GIT_CEILING_DIRECTORIES, ':'), root) >= 0
                                  break
                                endif
    2              0.000005     if root ==# $GIT_WORK_TREE && fugitive#is_git_dir($GIT_DIR)
                                  return $GIT_DIR
                                endif
    2   0.000040   0.000009     if fugitive#is_git_dir($GIT_DIR)
                                  " Ensure that we've cached the worktree
                                  call s:configured_tree($GIT_DIR)
                                  if has_key(s:dir_for_worktree, root)
                                    return s:dir_for_worktree[root]
                                  endif
                                endif
    2   0.000022   0.000008     let dir = s:sub(root, '[\/]$', '') . '/.git'
    2              0.000008     let type = getftype(dir)
    2   0.000025   0.000005     if type ==# 'dir' && fugitive#is_git_dir(dir)
    1              0.000001       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
    1              0.000001     let previous = root
    1              0.000003     let root = fnamemodify(root, ':h')
    1              0.000001   endwhile
                              return ''

FUNCTION  <SNR>203_is_enable_on_cursorhold()
Called 4 times
Total time:   0.000013
 Self time:   0.000013

count  total (s)   self (s)
    4              0.000008 	return g:brightest#enable_on_CursorHold && get(b:, "brightest_enable_on_CursorHold", 1)

FUNCTION  <SNR>139_repo()
Called 36 times
Total time:   0.000694
 Self time:   0.000694

count  total (s)   self (s)
   36              0.000190   let dir = a:0 ? a:1 : (exists('b:git_dir') && b:git_dir !=# '' ? b:git_dir : fugitive#extract_git_dir(expand('%:p')))
   36              0.000040   if dir !=# ''
   36              0.000073     if has_key(s:repos, dir)
   36              0.000082       let repo = get(s:repos, dir)
   36              0.000019     else
                                  let repo = {'git_dir': dir}
                                  let s:repos[dir] = repo
                                endif
   36              0.000166     return extend(extend(repo, s:repo_prototype, 'keep'), s:abstract_prototype, 'keep')
                              endif
                              call s:throw('not a git repository: '.expand('%:p'))

FUNCTION  neosnippet#commands#_make_cache()
Called 3 times
Total time:   0.000088
 Self time:   0.000058

count  total (s)   self (s)
    3   0.000027   0.000012   call neosnippet#init#check()
                            
    3              0.000008   let filetype = a:filetype == '' ? &filetype : a:filetype
    3              0.000003   if filetype ==# ''
                                let filetype = 'nothing'
                              endif
                            
    3   0.000028   0.000013   let snippets = neosnippet#variables#snippets()
    3              0.000006   if has_key(snippets, filetype)
    3              0.000001     return
                              endif
                            
                              let snippets[filetype] = {}
                            
                              let path = join(neosnippet#helpers#get_snippets_directory(), ',')
                              let cache_dir = neosnippet#variables#data_dir()
                            
                              for filename in s:get_snippets_files(path, filetype)
                                " Clear cache file
                                call s:Cache.deletefile(cache_dir, filename)
                                let snippets[filetype] = extend(snippets[filetype], neosnippet#parser#_parse_snippets(filename))
                              endfor
                            
                              if g:neosnippet#enable_snipmate_compatibility
                                " Load file snippets
                                for filename in s:get_snippet_files(path, filetype)
                                  let trigger = fnamemodify(filename, ':t:r')
                                  let snippets[filetype][trigger] = neosnippet#parser#_parse_snippet(filename, trigger)
                                endfor
                              endif

FUNCTION  neosnippet#util#get_cur_text()
Called 1 time
Total time:   0.000009
 Self time:   0.000009

count  total (s)   self (s)
    1              0.000008   return (mode() ==# 'i' ? (col('.')-1) : col('.')) >= len(getline('.')) ?      getline('.') :      matchstr(getline('.'),         '^.*\%' . col('.') . 'c' . (mode() ==# 'i' ? '' : '.'))

FUNCTION  neocomplete#complete#_get_complete_pos()
Called 2 times
Total time:   0.000022
 Self time:   0.000022

count  total (s)   self (s)
    2              0.000004   if empty(a:sources)
                                return -1
                              endif
                            
    2              0.000016   return min([col('.')] + map(copy(a:sources), 'v:val.neocomplete__context.complete_pos'))

FUNCTION  849()
Called 1 time
Total time:   0.000005
 Self time:   0.000005

count  total (s)   self (s)
    1              0.000004   silent! delcommand NeoCompleteTagMakeCache

FUNCTION  neomru#_append()
Called 1 time
Total time:   0.000007
 Self time:   0.000007

count  total (s)   self (s)
    1              0.000006   if &l:buftype =~ 'help\|nofile' || &l:previewwindow
    1              0.000001     return
                              endif
                            
                              let path = s:substitute_path_separator(expand('%:p'))
                              if path !~ '\a\+:'
                                let path = s:substitute_path_separator( simplify(resolve(path)))
                              endif
                            
                              " Append the current buffer to the mru list.
                              if s:is_file_exist(path)
                                call s:file_mru.append(path)
                              endif
                            
                              let filetype = getbufvar(bufnr('%'), '&filetype')
                              if filetype ==# 'vimfiler' && type(getbufvar(bufnr('%'), 'vimfiler')) == type({})
                                let path = getbufvar(bufnr('%'), 'vimfiler').current_dir
                              elseif filetype ==# 'vimshell' && type(getbufvar(bufnr('%'), 'vimshell')) == type({})
                                let path = getbufvar(bufnr('%'), 'vimshell').current_dir
                              else
                                let path = getcwd()
                              endif
                            
                              let path = s:substitute_path_separator(simplify(resolve(path)))
                              " Chomp last /.
                              let path = substitute(path, '/$', '', '')
                            
                              " Append the current buffer to the mru list.
                              if s:is_directory_exist(path)
                                call s:directory_mru.append(path)
                              endif

FUNCTION  <SNR>232_uniq()
Called 2 times
Total time:   0.014227
 Self time:   0.000056

count  total (s)   self (s)
    2   0.014227   0.000056   return s:uniq_by(a:list, 'tolower(v:val)')

FUNCTION  <SNR>207_region()
Called 2 times
Total time:   0.000040
 Self time:   0.000040

count  total (s)   self (s)
    2              0.000006 	let flag_first = get(a:, 1, "")
    2              0.000005 	let flag_last  = get(a:, 2, "")
    2              0.000029 	return [searchpos(a:pattern, flag_first), searchpos(a:pattern, flag_last)]

FUNCTION  neocomplete#filters#escape()
Called 3 times
Total time:   0.000026
 Self time:   0.000026

count  total (s)   self (s)
                              " Escape string for lua regexp.
    3              0.000022   return substitute(a:string, '[%\[\]().*+?^$-]', '%\0', 'g')

FUNCTION  <SNR>404_is_enable_switch_CursorMoved()
Called 1 time
Total time:   0.000007
 Self time:   0.000007

count  total (s)   self (s)
    1              0.000007 	return (get(g:precious_enable_switch_CursorMoved, "*", 1)		 || get(g:precious_enable_switch_CursorMoved, a:filetype, 0))		 && get(g:precious_enable_switch_CursorMoved, a:filetype, 1)

FUNCTION  <SNR>203_is_ignore()
Called 2 times
Total time:   0.000055
 Self time:   0.000026

count  total (s)   self (s)
    2   0.000054   0.000025 	return !s:is_enable_in_current(a:context) || s:is_ignore_syntax_in_cursor(a:context)

FUNCTION  <SNR>563_load()
Called 200 times
Total time:   0.077336
 Self time:   0.022675

count  total (s)   self (s)
  400              0.000624   for arg in a:000
  200              0.001060     let [name; as] = type(arg) == type([]) ? arg[: 1] : [arg, arg]
  200              0.001648     let target = split(join(as, ''), '\W\+')
  200              0.000275     let dict = self
  200              0.000418     let dict_type = type({})
  600              0.000856     while !empty(target)
  400              0.000867       let ns = remove(target, 0)
  400              0.000715       if !has_key(dict, ns)
  400              0.000690         let dict[ns] = {}
  400              0.000232       endif
  400              0.000835       if type(dict[ns]) == dict_type
  400              0.000564         let dict = dict[ns]
  400              0.000219       else
                                    unlet dict
                                    break
                                  endif
  400              0.000285     endwhile
  200              0.000358     if exists('dict')
  200   0.059340   0.004679       call extend(dict, self._import(name))
  200              0.000162     endif
  200              0.000285     unlet arg
  200              0.000155   endfor
  200              0.000197   return self

FUNCTION  <SNR>443_is_skip_auto_complete()
Called 3 times
Total time:   0.000073
 Self time:   0.000056

count  total (s)   self (s)
    3   0.000027   0.000010   let neocomplete = neocomplete#get_current_neocomplete()
                            
    3              0.000024   if (g:neocomplete#lock_iminsert && &l:iminsert) || (&l:formatoptions =~# '[tca]' && &l:textwidth > 0     && strwidth(a:cur_text) >= &l:textwidth)
                                let neocomplete.skip_next_complete = 0
                                return 1
                              endif
                            
    3              0.000006   let skip = neocomplete.skip_next_complete
                            
    3              0.000003   if !skip
    3              0.000003     return 0
                              endif
                            
                              let neocomplete.skip_next_complete = 0
                              return skip

FUNCTION  neoyank#_append()
Called 2 times
Total time:   0.000081
 Self time:   0.000046

count  total (s)   self (s)
    2              0.000008   let prev_histories = copy(s:yank_histories)
                            
    4              0.000006   for register in g:neoyank#save_registers
    2   0.000048   0.000013     call s:add_register(register)
    2              0.000003   endfor
                            
    2              0.000004   if prev_histories !=# s:yank_histories
                                " Updated.
                                call neoyank#_save()
                              endif

FUNCTION  <SNR>489_Hier()
Called 2 times
Total time:   0.000448
 Self time:   0.000409

count  total (s)   self (s)
    4              0.000007 	for m in getmatches()
   14              0.000016 		for h in ['QFError', 'QFWarning', 'QFInfo', 'LocError', 'LocWarning', 'LocInfo']
   12              0.000013 			if m.group == h
                            				call matchdelete(m.id)
                            			endif
   12              0.000006 		endfor
    2              0.000001 	endfor
                            
    2              0.000004 	if g:hier_enabled == 0 || a:clearonly == 1
                            		return
                            	endif
                            
    2              0.000004 	let bufnr = bufnr('%')
                            
    6              0.000007 	for type in ['qf', 'loc']
   14   0.000076   0.000037 		for i in s:Getlist(0, type)
   10              0.000010 			if i.bufnr == bufnr
                            				let hi_group = 'QFError'
                            				if i.type == 'I' || i.type == 'info'
                            					let hi_group = 'QFInfo'
                            				elseif i.type == 'W' || i.type == 'warning'
                            					let hi_group = 'QFWarning'
                            				elseif eval('g:hier_highlight_group_'.type) == ""
                            					continue
                            				endif
                            
                            				if i.lnum > 0
                            					call matchadd(hi_group, '\%'.i.lnum.'l')
                            				elseif i.pattern != ''
                            					call matchadd(hi_group, i.pattern)
                            				endif
                            			endif
   10              0.000004 		endfor
    4              0.000003 	endfor

FUNCTION  neocomplete#helper#clean()
Called 4 times
Total time:   0.117675
 Self time:   0.117447

count  total (s)   self (s)
    4   0.000250   0.000022   let directory = neocomplete#get_data_directory() .'/'.a:directory
 2024              0.089451   for file in split(glob(directory . '/*'), '\n')
 2020              0.015801     let orig = substitute(substitute(fnamemodify(file, ':t'),             '=-', ':', 'g'), '=+', '/', 'g')
 2020              0.007935     if !filereadable(orig)
                                  call delete(file)
                                endif
 2020              0.001045   endfor

FUNCTION  804()
Called 1 time
Total time:   0.000830
 Self time:   0.000028

count  total (s)   self (s)
    1   0.000012   0.000004 	let base_filetype = precious#base_filetype()
    1              0.000002 	let has_contextfiletype_vim = 0
    1   0.000019   0.000013 	silent! let has_contextfiletype_vim = context_filetype#version()
    1              0.000002 	if has_contextfiletype_vim
    1   0.000795   0.000007 		return context_filetype#get_filetype(base_filetype)
                            	else
                            		echo "precious.vim - Please install context_filetype.vim"
                            		return ""
                            	endif

FUNCTION  807()
Called 3 times
Total time:   0.000858
 Self time:   0.000775

count  total (s)   self (s)
    3              0.000008   if len(a:context.complete_str) > 10
                                " Mix fuzzy mode.
                                let len = len(a:context.complete_str)
                                let fuzzy_len = len - len/(1 + len/10)
                                let pattern = neocomplete#filters#escape(     a:context.complete_str[: fuzzy_len-1])  . neocomplete#filters#fuzzy_escape(     a:context.complete_str[fuzzy_len :])
                              else
    3   0.000101   0.000018     let pattern = neocomplete#filters#fuzzy_escape( a:context.complete_str)
    3              0.000002   endif
                            
                              " The first letter must be matched.
    3              0.000005   let pattern = '^' . pattern
                            
    3              0.000004   lua << EOF
                            do
                              local pattern = vim.eval('pattern')
                              local input = vim.eval('a:context.complete_str')
                              local candidates = vim.eval('a:context.candidates')
                              if vim.eval('&ignorecase') ~= 0 then
                                pattern = string.lower(pattern)
                                input = string.lower(input)
                                for i = #candidates-1, 0, -1 do
                                  local word = vim.type(candidates[i]) == 'dict' and
                                    string.lower(candidates[i].word) or string.lower(candidates[i])
                                  if string.find(word, pattern, 1) == nil then
                                    candidates[i] = nil
                                  end
                                end
                              else
                                for i = #candidates-1, 0, -1 do
                                  local word = vim.type(candidates[i]) == 'dict' and
                                    candidates[i].word or candidates[i]
                                  if string.find(word, pattern, 1) == nil then
                                    candidates[i] = nil
                                  end
                                end
                              end
                            end
                            EOF
                            
    3              0.000007   return a:context.candidates

FUNCTION  neocomplete#complete#_set_results_pos()
Called 2 times
Total time:   0.003792
 Self time:   0.001247

count  total (s)   self (s)
                              " Initialize sources.
    2   0.000017   0.000004   let neocomplete = neocomplete#get_current_neocomplete()
                            
    2   0.000026   0.000005   let filetype = neocomplete#get_context_filetype()
    2   0.000165   0.000014   let sources = (a:0 > 0) ? a:1 : (filetype ==# neocomplete.sources_filetype) ? neocomplete.sources : neocomplete#helper#get_sources_list()
                            
    2              0.000005   let pos = winsaveview()
                            
                              " Try source completion. "{{{
    2              0.000002   let complete_sources = []
   20   0.000541   0.000089   for source in filter(values(sources), 'neocomplete#helper#is_enabled_source(v:val, filetype)')
   18              0.000020     if !source.loaded
                                  call neocomplete#helper#call_hook(source, 'on_init', {})
                                  let source.loaded = 1
                                endif
                            
   18              0.000025     let context = source.neocomplete__context
   18              0.000035     let context.input = a:cur_text
   18              0.000024     let context.filetype = filetype
   18   0.000254   0.000073     let context.filetypes = neocomplete#context_filetype#filetypes()
                            
   18              0.000019     try
   18   0.001889   0.000263       let complete_pos = s:use_previous_result(source, context) ? context.prev_complete_pos : has_key(source, 'get_complete_position') ? source.get_complete_position(context) : neocomplete#helper#match_word(context.input,    neocomplete#get_keyword_pattern_end(filetype, source.name))[0]
   18              0.000015     catch
                                  call neocomplete#print_error(v:throwpoint)
                                  call neocomplete#print_error(v:exception)
                                  call neocomplete#print_error( 'Error occurred in source''s get_complete_position()!')
                                  call neocomplete#print_error( 'Source name is ' . source.name)
                                  return complete_sources
                                finally
   18              0.000060       if winsaveview() != pos
                                    call winrestview(pos)
                                  endif
   18              0.000011     endtry
                            
   18              0.000018     if complete_pos < 0
    8              0.000012       let context.complete_pos = -1
    8              0.000009       let context.complete_str = ''
    8              0.000010       continue
                                endif
                            
   10              0.000022     let complete_str = context.input[complete_pos :]
   10   0.000151   0.000050     if neocomplete#is_auto_complete() && len(complete_str) < source.min_pattern_length
                                  " Skip.
    5              0.000005       let context.complete_pos = -1
    5              0.000008       let context.complete_str = ''
    5              0.000007       continue
                                endif
                            
    5              0.000009     let context.complete_pos = complete_pos
    5              0.000008     let context.complete_str = complete_str
    5              0.000013     call add(complete_sources, source)
    5              0.000004   endfor
                              "}}}
                            
    2              0.000002   return complete_sources

FUNCTION  neocomplete#helper#get_sources_list()
Called 1 time
Total time:   0.000151
 Self time:   0.000085

count  total (s)   self (s)
    1   0.000012   0.000002   let filetype = neocomplete#get_context_filetype()
                            
    1              0.000008   let source_names = exists('b:neocomplete_sources') ? b:neocomplete_sources : get(a:000, 0,   get(g:neocomplete#sources, filetype,     get(g:neocomplete#sources, '_', ['_'])))
    1   0.000022   0.000007   call neocomplete#init#_sources(source_names)
                            
    1   0.000020   0.000006   let all_sources = neocomplete#available_sources()
    1              0.000001   let sources = {}
    1              0.000002   for source_name in source_names
    1              0.000001     if source_name ==# '_'
                                  " All sources.
    1              0.000002       let sources = all_sources
    1              0.000001       break
                                endif
                            
                                if !has_key(all_sources, source_name)
                                  call neocomplete#print_warning(printf( 'Invalid source name "%s" is given.', source_name))
                                  continue
                                endif
                            
                                let sources[source_name] = all_sources[source_name]
                              endfor
                            
    1   0.000009   0.000003   let neocomplete = neocomplete#get_current_neocomplete()
    1   0.000055   0.000034   let neocomplete.sources = filter(sources, "   empty(v:val.filetypes) ||   neocomplete#helper#check_filetype(v:val.filetypes)")
    1              0.000002   let neocomplete.sources_filetype = neocomplete.context_filetype
                            
    1              0.000001   return neocomplete.sources

FUNCTION  <SNR>414_get_prelude()
Called 7 times
Total time:   0.000050
 Self time:   0.000050

count  total (s)   self (s)
    7              0.000015   if !exists('s:Prelude')
                                let s:Prelude = neocomplete#util#get_vital().import('Prelude')
                              endif
    7              0.000008   return s:Prelude

FUNCTION  neosnippet#mappings#_clear_select_mode_mappings()
Called 1 time
Total time:   0.001887
 Self time:   0.001887

count  total (s)   self (s)
    1              0.000002   if !g:neosnippet#disable_select_mode_mappings
                                return
                              endif
                            
    1              0.000003   redir => mappings
    1              0.000729     silent! smap
    1              0.000005   redir END
                            
    1              0.001052   for map in map(filter(split(mappings, '\n'), "v:val !~# '^s' && v:val !~ '^\\a*\\s*<\\S\\+>'"), "matchstr(v:val, '^\\a*\\s*\\zs\\S\\+')")
                                silent! execute 'sunmap' map
                                silent! execute 'sunmap <buffer>' map
                              endfor
                            
                              " Define default select mode mappings.
    1              0.000025   snoremap <CR>     a<BS>
    1              0.000018   snoremap <BS>     a<BS>
    1              0.000015   snoremap <Del>    a<BS>
    1              0.000015   snoremap <C-h>    a<BS>
    1              0.000014   snoremap <ESC>    <BS><ESC>

FUNCTION  830()
Called 1 time
Total time:   0.002138
 Self time:   0.000038

count  total (s)   self (s)
    1   0.002119   0.000019   let snippets = values(neosnippet#helpers#get_completion_snippets())
    1              0.000015   if matchstr(a:context.input, '\S\+$') !=# matchstr(a:context.input, '\w\+$')
                                " Word filtering
                                call filter(snippets, 'v:val.options.word')
                              endif
    1              0.000001   return snippets

FUNCTION  833()
Called 1 time
Total time:   0.000009
 Self time:   0.000009

count  total (s)   self (s)
    1              0.000003   silent! delcommand NeoCompleteBufferMakeCache
                            
    1              0.000006   let s:buffer_sources = {}

FUNCTION  835()
Called 1 time
Total time:   0.000536
 Self time:   0.000030

count  total (s)   self (s)
    1   0.000486   0.000007   call s:check_async_cache(a:context)
                            
    1              0.000002   let keyword_list = []
    3   0.000037   0.000010   for source in s:get_sources_list(a:context)
    2              0.000005     let keyword_list += source.words
    2              0.000002   endfor
    1              0.000001   return keyword_list

FUNCTION  837()
Called 1 time
Total time:   0.000004
 Self time:   0.000004

count  total (s)   self (s)
    1              0.000004   silent! delcommand NeoCompleteDictionaryMakeCache

FUNCTION  838()
Called 1 time
Total time:   0.000087
 Self time:   0.000048

count  total (s)   self (s)
    1              0.000001   let list = []
                            
    2              0.000003   for ft in a:context.filetypes
    1              0.000003     if !has_key(s:dictionary_cache, ft)
    1   0.000012   0.000005       call s:make_cache(ft)
    1              0.000001     endif
    1   0.000041   0.000009     call neocomplete#cache#check_cache( 'dictionary_cache', ft, s:async_dictionary_list, s:dictionary_cache, 1)
                            
    1              0.000005     let list += get(s:dictionary_cache, ft, [])
    1              0.000001   endfor
                            
    1              0.000001   return list

FUNCTION  843()
Called 2 times
Total time:   0.000064
 Self time:   0.000056

count  total (s)   self (s)
                              " Check member prefix pattern.
    2              0.000004   let filetype = a:context.filetype
    2              0.000010   let prefix = get(g:neocomplete#sources#member#prefix_patterns, filetype, get(g:neocomplete#sources#member#prefix_patterns, '_', ''))
    2              0.000003   if prefix == ''
                                return -1
                              endif
                            
    2   0.000017   0.000009   let member = s:get_member_pattern(filetype)
    2              0.000022   let complete_pos = matchend(a:context.input, member . '\m\%(' . prefix . '\m\)\ze\w*$')
    2              0.000002   return complete_pos

FUNCTION  neosnippet#init#check()
Called 4 times
Total time:   0.000020
 Self time:   0.000020

count  total (s)   self (s)
    4              0.000010   if !exists('s:is_initialized')
                                call neosnippet#init#_initialize()
                              endif

FUNCTION  846()
Called 2 times
Total time:   0.000399
 Self time:   0.000042

count  total (s)   self (s)
    2   0.000379   0.000028   let a:context.source__complete_results = s:set_complete_results_pos(   s:get_omni_funcs(a:context.filetype), a:context.input)
                            
    2   0.000019   0.000013   return s:get_complete_pos(a:context.source__complete_results)

FUNCTION  <SNR>435_get_sources_list()
Called 2 times
Total time:   0.000053
 Self time:   0.000053

count  total (s)   self (s)
    2              0.000004   let filetypes_dict = {}
    4              0.000005   for filetype in a:context.filetypes
    2              0.000005     let filetypes_dict[filetype] = 1
    2              0.000001   endfor
                            
    2              0.000032   return values(filter(copy(s:buffer_sources), "has_key(filetypes_dict, v:val.filetype) || has_key(filetypes_dict, '_') || bufnr('%') == v:key || (bufname('%') ==# '[Command Line]' && bufwinnr('#') == v:key)"))

FUNCTION  850()
Called 1 time
Total time:   0.000205
 Self time:   0.000035

count  total (s)   self (s)
    1              0.000006   if !has_key(s:async_tags_list, bufnr('%')) && !has_key(s:tags_list, bufnr('%'))
    1   0.000139   0.000006     call neocomplete#sources#tag#make_cache(0)
    1              0.000000   endif
                            
    1   0.000016   0.000008   if neocomplete#within_comment()
                                return []
                              endif
                            
    1   0.000036   0.000007   call neocomplete#cache#check_cache( 'tags_cache', bufnr('%'), s:async_tags_list, s:tags_list, 0)
                            
    1              0.000004   return copy(get(s:tags_list, bufnr('%'), []))

FUNCTION  fugitive#head()
Called 24 times
Total time:   0.002145
 Self time:   0.000230

count  total (s)   self (s)
   24              0.000049   if !exists('b:git_dir')
    6              0.000003     return ''
                              endif
                            
   18   0.002040   0.000125   return s:repo().head(a:0 ? a:1 : 0)

FUNCTION  <SNR>439_make_cache_current_buffer()
Called 3 times
Total time:   0.004855
 Self time:   0.000074

count  total (s)   self (s)
    3   0.004360   0.000011   let filetype = neocomplete#get_context_filetype(1)
                            
    3              0.000011   if !has_key(s:member_sources, bufnr('%'))
    1   0.000088   0.000010     call s:initialize_source(bufnr('%'), filetype)
    1              0.000001   endif
                            
    3   0.000384   0.000030   call s:make_cache_lines(bufnr('%'), filetype, getline(a:start, a:end))

FUNCTION  neosnippet#get_sync_placeholder_marker_pattern()
Called 1 time
Total time:   0.000001
 Self time:   0.000001

count  total (s)   self (s)
    1              0.000001   return '<{\d\+\%(:.\{-}\)\?\\\@<!}>'

FUNCTION  neobundle#util#expand()
Called 1 time
Total time:   0.000013
 Self time:   0.000013

count  total (s)   self (s)
    1              0.000009   let path = (a:path =~ '^\~') ? fnamemodify(a:path, ':p') : (a:path =~ '^\$\h\w*') ? substitute(a:path,               '^\$\h\w*', '\=eval(submatch(0))', '') : a:path
    1              0.000003   return (s:is_windows && path =~ '\\') ? neobundle#util#substitute_path_separator(path) : path

FUNCTION  fugitive#buffer()
Called 1 time
Total time:   0.000033
 Self time:   0.000007

count  total (s)   self (s)
    1   0.000033   0.000007   return s:buffer(a:0 ? a:1 : '%')

FUNCTION  unite#loaded_sources_list()
Called 1 time
Total time:   0.000023
 Self time:   0.000006

count  total (s)   self (s)
    1   0.000022   0.000005   return unite#variables#loaded_sources()

FUNCTION  <SNR>440_get_complete_pos()
Called 2 times
Total time:   0.000006
 Self time:   0.000006

count  total (s)   self (s)
    2              0.000004   if empty(a:complete_results)
    2              0.000002     return -1
                              endif
                            
                              let complete_pos = col('.')
                              for result in values(a:complete_results)
                                if complete_pos > result.complete_pos
                                  let complete_pos = result.complete_pos
                                endif
                              endfor
                            
                              return complete_pos

FUNCTION  automatic#run()
Called 13 times
Total time:   0.001008
 Self time:   0.000455

count  total (s)   self (s)
   13   0.000649   0.000096 	let context = automatic#make_current_context(get(a:, 1, {}))
                            
   13              0.000028 	let def_conf = g:automatic_default_match_config
                            
   13              0.000066 	let setlist = filter(deepcopy(g:automatic_config), "s:is_match(v:val, def_conf, context)")
                            " 	let setlist = filter(deepcopy(g:automatic_config), "automatic#is_match(extend(deepcopy(def_conf), s:as_match_config(get(v:val, 'match', {}))), context)")
                            
   13              0.000019 	let unsettings = []
   13              0.000028 	for config in setlist
                            		if get(get(config, "set", {}), "unsetting", 0)
                            			return -1
                            		endif
                            		let unsettings = get(get(config, "set", {}), "unsettings", [])
                            	endfor
                            
   13              0.000028 	let def_set = g:automatic_default_set_config
   13              0.000051 	call map(setlist, "automatic#set_current(extend(deepcopy(def_set), get(v:val, 'set', {})), context, unsettings)")

FUNCTION  vital#of()
Called 100 times
Total time:   0.117161
 Self time:   0.115500

count  total (s)   self (s)
  100              0.111954   let files = globpath(&runtimepath, 'autoload/vital/' . a:name . '.vital')
  100              0.000567   let file = split(files, "\n")
  100              0.000163   if empty(file)
                                throw 'vital: version file not found: ' . a:name
                              endif
  100              0.001176   let ver = readfile(file[0], 'b')
  100              0.000148   if empty(ver)
                                throw 'vital: invalid version file: ' . a:name
                              endif
  100   0.002622   0.000961   return vital#_{substitute(ver[0], '\W', '', 'g')}#new()

FUNCTION  context_filetype#get_filetype()
Called 17 times
Total time:   0.011449
 Self time:   0.000151

count  total (s)   self (s)
   17              0.000057   let base_filetype = get(a:, 1, &filetype)
   17   0.011386   0.000088   return context_filetype#get(base_filetype).filetype

FUNCTION  <SNR>161_add_register()
Called 2 times
Total time:   0.000035
 Self time:   0.000035

count  total (s)   self (s)
                              " Append register value.
    2              0.000006   if !has_key(s:yank_histories, a:name)
                                let s:yank_histories[a:name] = []
                              endif
                            
    2              0.000012   let reg = [getreg(a:name), getregtype(a:name)]
    2              0.000008   if get(s:yank_histories[a:name], 0, []) ==# reg
                                " Skip same register value.
    2              0.000002     return
                              endif
                            
                              let len_history = len(reg[0])
                              " Ignore too long yank.
                              if len_history < 2 || len_history > 100000 || reg[0] =~ '[\x00-\x09\x10-\x1a\x1c-\x1f]\{3,}'
                                return
                              endif
                            
                              let s:prev_registers[a:name] = reg
                            
                              call insert(s:yank_histories[a:name], reg)
                              call s:uniq(a:name)

FUNCTION  unite#variables#loaded_sources()
Called 1 time
Total time:   0.000017
 Self time:   0.000008

count  total (s)   self (s)
                              " Initialize load.
    1   0.000013   0.000004   let unite = unite#get_current_unite()
    1              0.000004   return a:0 == 0 ? unite.sources : get(filter(copy(unite.sources), 'v:val.name ==# a:1'), 0, {})

FUNCTION  <SNR>139_define_commands()
Called 1 time
Total time:   0.000308
 Self time:   0.000308

count  total (s)   self (s)
   28              0.000022   for command in s:commands
   27              0.000260     exe 'command! -buffer '.command
   27              0.000018   endfor

FUNCTION  <SNR>206_get_text_from_pattern()
Called 2 times
Total time:   0.000063
 Self time:   0.000023

count  total (s)   self (s)
    2   0.000057   0.000017 	let [first, last] = s:Search.region(a:pattern, "Wncb", "Wnce")
    2              0.000004 	if first == [0, 0]
    2              0.000001 		return ""
                            	endif
                            	if last == [0, 0]
                            		return ""
                            	endif
                            	let result = s:get_text_from_region([0] + first + [0], [0] + last + [0], "v")
                            	if result !~ '^' . a:pattern . '$'
                            		return ""
                            	endif
                            	return result

FUNCTION  <SNR>203_highlighting()
Called 2 times
Total time:   0.000267
 Self time:   0.000062

count  total (s)   self (s)
    2   0.000033   0.000006 	call brightest#hl_clear()
                            
    2   0.000036   0.000014 	let context = s:context()
    2   0.000064   0.000009 	if s:is_ignore(context)
                            		return
                            	endif
                            
    2              0.000005 	if get(a:, 1, "") == ""
    2   0.000116   0.000015 		if s:single_word(a:pattern, a:highlight, a:cursorline)
                            			call s:highlight_on()
                            		endif
    2              0.000001 	else
                            " 		return s:with_current(a:1, a:group, a:pattern)
                            	endif
                            

FUNCTION  neocomplete#get_keyword_pattern()
Called 13 times
Total time:   0.000381
 Self time:   0.000301

count  total (s)   self (s)
   13              0.000038   let filetype = a:0 != 0? a:1 : neocomplete#get_context_filetype()
   13              0.000012   if a:0 < 2
                                return neocomplete#helper#unite_patterns( g:neocomplete#keyword_patterns, filetype)
                              endif
                            
   13   0.000135   0.000055   let source = neocomplete#variables#get_source(a:2)
   13              0.000029   if !has_key(source, 'neocomplete__keyword_patterns')
                                let source.neocomplete__keyword_patterns = {}
                              endif
   13              0.000026   if !has_key(source.neocomplete__keyword_patterns, filetype)
                                let source.neocomplete__keyword_patterns[filetype] = neocomplete#helper#unite_patterns(         source.keyword_patterns, filetype)
                              endif
                            
   13              0.000022   return source.neocomplete__keyword_patterns[filetype]

FUNCTION  neocomplete#util#expand()
Called 7 times
Total time:   0.000093
 Self time:   0.000093

count  total (s)   self (s)
    7              0.000089   return expand(escape(a:path, '*?[]"={}'), 1)

FUNCTION  unite#get_context()
Called 1 time
Total time:   0.000015
 Self time:   0.000006

count  total (s)   self (s)
    1   0.000012   0.000003   let unite = unite#get_current_unite()
    1              0.000003   return has_key(unite, 'context') ? unite.context : unite#init#_context({})

FUNCTION  <SNR>417_substitute_path_separator()
Called 7 times
Total time:   0.000023
 Self time:   0.000023

count  total (s)   self (s)
    7              0.000022   return s:is_windows ? substitute(a:path, '\\', '/', 'g') : a:path

FUNCTION  neobundle#config#source_bundles()
Called 2 times
Total time:   0.000012
 Self time:   0.000012

count  total (s)   self (s)
    2              0.000003   if !empty(a:bundles)
                                call neobundle#config#source(map(copy(a:bundles), "type(v:val) == type({}) ? v:val.name : v:val"))
                              endif

FUNCTION  automatic#make_current_context()
Called 13 times
Total time:   0.000553
 Self time:   0.000553

count  total (s)   self (s)
   13              0.000041 	let base = get(a:, 1, {})
   13              0.000029 	if has_key(base, "autocmd")
   13              0.000051 		call add(s:autocmd_histories, base.autocmd)
   13              0.000039 		if len(s:autocmd_histories) > g:autocmd_history_size
   13              0.000027 			unlet s:autocmd_histories[0]
   13              0.000011 		endif
   13              0.000010 	endif
   13              0.000035 	let bufname = bufname("%")
   13              0.000286 	return extend({		"filetype"  : &filetype,		"bufname"   : bufname,		"buftype"   : &buftype,		"filename"  : substitute(fnamemodify(bufname, ":p"), '\\', '/', "g"),		"autocmd"   : "",		"autocmd_history"   : s:autocmd_histories,		"localtime" : localtime(),	}, base)

FUNCTION  yankround#on_cmdwinenter()
Called 1 time
Total time:   0.000004
 Self time:   0.000004

count  total (s)   self (s)
    1              0.000002   if !has_key(s:, 'rounder')
    1              0.000001     return
                              end
                              let s:save_rounder = deepcopy(s:rounder)
                              unlet s:rounder
                              aug yankround_rounder
                                autocmd!
                              aug END
                              let g:_yankround_stop_caching = 0

FUNCTION  <SNR>203_highlight_in_cursorline()
Called 2 times
Total time:   0.000013
 Self time:   0.000013

count  total (s)   self (s)
    2              0.000012 	return get(b:, "brightest_highlight_in_cursorline", extend(copy(s:highlight_in_cursorline_default), g:brightest#highlight_in_cursorline))

FUNCTION  neocomplete#get_context_filetype()
Called 9 times
Total time:   0.005812
 Self time:   0.000106

count  total (s)   self (s)
    9              0.000037   let neocomplete = exists('b:neocomplete') ? b:neocomplete : neocomplete#get_current_neocomplete()
                            
    9              0.000023   if a:0 != 0 || mode() !=# 'i' || neocomplete.context_filetype == ''
    4   0.005720   0.000014     call neocomplete#context_filetype#set()
    4              0.000004   endif
                            
    9              0.000011   return neocomplete.context_filetype

FUNCTION  <SNR>28_LoadFTPlugin()
Called 1 time
Total time:   0.008462
 Self time:   0.007541

count  total (s)   self (s)
    1              0.000003     if exists("b:undo_ftplugin")
                                  exe b:undo_ftplugin
                                  unlet! b:undo_ftplugin b:did_ftplugin
                                endif
                            
    1              0.000003     let s = expand("<amatch>")
    1              0.000002     if s != ""
    1              0.000006       if &cpo =~# "S" && exists("b:did_ftplugin")
                            	" In compatible mode options are reset to the global values, need to
                            	" set the local values also when a plugin was already used.
                            	unlet b:did_ftplugin
                                  endif
                            
                                  " When there is a dot it is used to separate filetype names.  Thus for
                                  " "aaa.bbb" load "aaa" and then "bbb".
    2              0.000008       for name in split(s, '\.')
    1   0.008420   0.007499 	exe 'runtime! ftplugin/' . name . '.vim ftplugin/' . name . '_*.vim ftplugin/' . name . '/*.vim'
    1              0.000004       endfor
    1              0.000002     endif

FUNCTION  <SNR>563_new()
Called 200 times
Total time:   0.001554
 Self time:   0.001554

count  total (s)   self (s)
  200              0.000815   let base = deepcopy(s:Vital)
  200              0.000444   let base.plugin_name = a:plugin_name
  200              0.000180   return base

FUNCTION  unite#handlers#_on_buf_unload()
Called 2 times
Total time:   0.000454
 Self time:   0.000322

count  total (s)   self (s)
    2   0.000022   0.000012   call unite#view#_clear_match()
    2   0.000020   0.000007   call unite#view#_clear_match_highlight()
                            
                              " Save unite value.
    2              0.000227   silent! let unite = getbufvar(a:bufname, 'unite')
    2              0.000006   if type(unite) != type({})
                                " Invalid unite.
                                return
                              endif
                            
    2              0.000009   if &l:statusline == unite.statusline
                                " Restore statusline.
                                let &l:statusline = &g:statusline
                              endif
                            
    2              0.000002   if unite.is_finalized
    1              0.000001     return
                              endif
                            
                              " Restore options.
    1              0.000002   if has_key(unite, 'redrawtime_save')
    1              0.000004     let &redrawtime = unite.redrawtime_save
    1              0.000001   endif
    1              0.000003   let &sidescrolloff = unite.sidescrolloff_save
                            
    1   0.000041   0.000010   call unite#handlers#_restore_updatetime()
                            
                              " Call finalize functions.
    1   0.000092   0.000014   call unite#helper#call_hook(unite#loaded_sources_list(), 'on_close')
    1              0.000002   let unite.is_finalized = 1

FUNCTION  neocomplete#cache#encode_name()
Called 2 times
Total time:   0.000284
 Self time:   0.000034

count  total (s)   self (s)
                              " Check cache directory.
    2   0.000161   0.000018   let cache_dir = neocomplete#get_data_directory() . '/' . a:cache_dir
    2   0.000121   0.000014   return s:Cache.getfilename(cache_dir, a:filename)

FUNCTION  neocomplete#complete#_set_results_words()
Called 2 times
Total time:   0.005151
 Self time:   0.000780

count  total (s)   self (s)
                              " Try source completion.
                            
                              " Save options.
    2              0.000004   let ignorecase_save = &ignorecase
    2              0.000005   let pos = winsaveview()
                            
    2              0.000002   try
    7              0.000008     for source in a:sources
    5   0.000280   0.000016       if neocomplete#complete_check()
                                    return
                                  endif
                            
    5              0.000008       let context = source.neocomplete__context
                            
    5              0.000047       let &ignorecase = (g:neocomplete#enable_smart_case || g:neocomplete#enable_camel_case) ?   context.complete_str !~ '\u' : g:neocomplete#enable_ignore_case
                            
    5   0.000149   0.000028       if s:use_previous_result(source, context)
                                    " Use previous candidates.
    1              0.000261         let context.candidates = deepcopy(context.prev_candidates)
    1              0.000001       else
    4              0.000005         try
    4   0.002990   0.000024           let context.candidates = source.gather_candidates(context)
    4              0.000004         catch
                                      call neocomplete#print_error(v:throwpoint)
                                      call neocomplete#print_error(v:exception)
                                      call neocomplete#print_error( 'Source name is ' . source.name)
                                      call neocomplete#print_error( 'Error occurred in source''s gather_candidates()!')
                            
                                      return
                                    finally
    4              0.000018           if winsaveview() != pos
                                        call winrestview(pos)
                                      endif
    4              0.000004         endtry
                            
    4              0.000007         let context.prev_line = context.input
    4              0.000021         let context.prev_candidates = copy(context.candidates)
    4              0.000008         let context.prev_complete_pos = context.complete_pos
    4              0.000003       endif
                            
    5              0.000007       if !empty(context.candidates)
    3   0.000021   0.000014         let matchers = empty(source.neocomplete__matchers) ?   neocomplete#get_current_neocomplete().default_matchers : source.neocomplete__matchers
    3   0.001013   0.000021         let context.candidates = neocomplete#helper#call_filters( matchers, source, {})
    3              0.000003       endif
                            
    5   0.000068   0.000047       call neocomplete#print_debug(source.name)
    5              0.000004     endfor
    2              0.000002   finally
    2              0.000007     let &ignorecase = ignorecase_save
    2              0.000002   endtry

FUNCTION  <SNR>2_hl_trailing_spaces()
Called 1 time
Total time:   0.000027
 Self time:   0.000027

count  total (s)   self (s)
                              " Test   
    1              0.000014   highlight! link TrailingSpaces Error
    1              0.000011   syntax match TrailingSpaces containedin=ALL /\s\+$/

FUNCTION  301()
Called 1 time
Total time:   0.001054
 Self time:   0.001054

count  total (s)   self (s)
    1              0.000002   if self.do_validate
    1              0.001051     call filter(self.candidates, 'getftype(v:val) ==# "dir"')
    1              0.000001   endif

FUNCTION  unite#sources#buffer#variables#append()
Called 1 time
Total time:   0.000008
 Self time:   0.000008

count  total (s)   self (s)
                              " Append the current buffer.
    1              0.000007   let s:buffer_list[a:bufnr] = { 'action__buffer_nr' : a:bufnr, 'source__time' : localtime(), }

FUNCTION  neocomplete#is_enabled()
Called 17 times
Total time:   0.000090
 Self time:   0.000061

count  total (s)   self (s)
   17   0.000088   0.000059   return neocomplete#init#is_enabled()

FUNCTION  MyFugitive()
Called 24 times
Total time:   0.002567
 Self time:   0.000422

count  total (s)   self (s)
   24              0.000040     try
   24              0.000224       if &ft !~? 'vimfiler\|gundo' && exists('*fugitive#head')
   24   0.002217   0.000072         return fugitive#head()
                                  endif
                                catch
                                endtry
                                return ''

FUNCTION  neocomplete#context_filetype#filetypes()
Called 39 times
Total time:   0.000371
 Self time:   0.000147

count  total (s)   self (s)
   39   0.000362   0.000138   return copy(neocomplete#get_current_neocomplete().context_filetypes)

FUNCTION  <SNR>443_close_preview_window()
Called 4 times
Total time:   0.000028
 Self time:   0.000028

count  total (s)   self (s)
    4              0.000017   if g:neocomplete#enable_auto_close_preview && bufname('%') !=# '[Command Line]' && winnr('$') != 1 && !&l:previewwindow && !neocomplete#is_cache_disabled()
                                " Close preview window.
                                pclose!
                              endif

FUNCTION  MyModified()
Called 17 times
Total time:   0.000164
 Self time:   0.000164

count  total (s)   self (s)
   17              0.000155     return &ft =~ 'help\|vimfiler\|gundo' ? '' : &modified ? '+' : &modifiable ? '' : '-'

FUNCTION  <SNR>165_subseparator()
Called 12 times
Total time:   0.000391
 Self time:   0.000391

count  total (s)   self (s)
   12              0.000044   let [c, f, v] = [ s:lightline.component, s:lightline.component_function,  s:lightline.component_visible_condition ]
   12              0.000338   return '%{('.(a:a?'1':has_key(f,a:x)?'!!strlen(exists("*'.f[a:x].'")?'.f[a:x].'():"")':get(v,a:x,has_key(c,a:x)?'1': '0')).')*(('.join(map(range(len(a:y)),'(a:b[v:val]?"1":has_key(f,a:y[v:val])?"!!strlen(exists(\"*".f[a:y[v:val]]."\")?".f[a:y[v:val]]."():\"\")":get(v,a:y[v:val],has_key(c,a:y[v:val])?"1":"0"))'),')+(')."))?('".a:s."'):''}"

FUNCTION  <SNR>435_exists_current_source()
Called 3 times
Total time:   0.000062
 Self time:   0.000022

count  total (s)   self (s)
    3   0.000061   0.000021   return has_key(s:buffer_sources, bufnr('%')) && !s:check_changed_buffer(bufnr('%'))

FUNCTION  <SNR>435_check_async_cache()
Called 1 time
Total time:   0.000479
 Self time:   0.000070

count  total (s)   self (s)
    3   0.000036   0.000010   for source in s:get_sources_list(a:context)
    2              0.000006     if !has_key(s:async_dictionary_list, source.path)
    1              0.000002       continue
                                endif
                            
                                " Load from cache.
    1   0.000402   0.000019     let [loaded, file_cache] = neocomplete#cache#get_cache_list( 'buffer_cache', s:async_dictionary_list[source.path])
    1              0.000001     if loaded
    1              0.000006       let source.words = file_cache
    1              0.000001     endif
                            
    1              0.000003     if empty(s:async_dictionary_list[source.path])
    1              0.000004       call remove(s:async_dictionary_list, source.path)
    1              0.000000     endif
    1              0.000001   endfor

FUNCTION  neosnippet#variables#expand_stack()
Called 5 times
Total time:   0.000050
 Self time:   0.000050

count  total (s)   self (s)
    5              0.000014   if !exists('s:expand_stack')
                                let s:expand_stack = []
                              endif
                            
    5              0.000006   return s:expand_stack

FUNCTION  neocomplete#complete#_set_previous_position()
Called 5 times
Total time:   0.000074
 Self time:   0.000047

count  total (s)   self (s)
    5   0.000044   0.000017   let neocomplete = neocomplete#get_current_neocomplete()
    5              0.000011   let neocomplete.old_complete_pos = a:complete_pos
    5              0.000010   let neocomplete.old_linenr = line('.')
    5              0.000008   let neocomplete.old_cur_text = a:cur_text

FUNCTION  <SNR>563__import()
Called 200 times
Total time:   0.054661
 Self time:   0.027844

count  total (s)   self (s)
  200              0.000459   if has_key(s:loaded, a:name)
                                return copy(s:loaded[a:name])
                              endif
  200   0.027651   0.000834   let module = self._get_module(a:name)
  200              0.000395   if has_key(module, '_vital_created')
                                call module._vital_created(module)
                              endif
  200              0.019520   let export_module = filter(copy(module), 'v:key =~# "^\\a"')
                              " Cache module before calling module.vital_loaded() to avoid cyclic
                              " dependences but remove the cache if module._vital_loaded() fails.
                              " let s:loaded[a:name] = export_module
  200              0.000571   let s:loaded[a:name] = export_module
  200              0.000374   if has_key(module, '_vital_loaded')
                                try
                                  call module._vital_loaded(vital#{s:plugin_name}#of())
                                catch
                                  unlet s:loaded[a:name]
                                  throw 'vital: fail to call ._vital_loaded(): ' . v:exception
                                endtry
                              endif
  200              0.002752   return copy(s:loaded[a:name])

FUNCTION  neocomplete#util#is_text_changed()
Called 2 times
Total time:   0.000017
 Self time:   0.000017

count  total (s)   self (s)
                              " Note: Vim 7.4.143 fixed TextChangedI bug.
    2              0.000015   return v:version > 704 || v:version == 704 && has('patch143')

FUNCTION  <SNR>490_Show_Quickfix_In_Status()
Called 4 times
Total time:   0.000016
 Self time:   0.000016

count  total (s)   self (s)
    4              0.000010     if !exists("b:qfstatus_list")
    4              0.000003         return
                                endif
                                let ln = line('.')
                                if !has_key(b:qfstatus_list,ln)
                                    echo 
                                    return
                                else
                                    echo b:qfstatus_list[ln]
                                endif

FUNCTION  <SNR>139_buffer_type()
Called 1 time
Total time:   0.000156
 Self time:   0.000081

count  total (s)   self (s)
    1   0.000005   0.000003   if self.getvar('fugitive_type') != ''
                                let type = self.getvar('fugitive_type')
                              elseif fnamemodify(self.spec(),':p') =~# '.\git/refs/\|\.git/\w*HEAD$'
                                let type = 'head'
                              elseif self.getline(1) =~ '^tree \x\{40\}$' && self.getline(2) == ''
                                let type = 'tree'
                              elseif self.getline(1) =~ '^\d\{6\} \w\{4\} \x\{40\}\>\t'
                                let type = 'tree'
                              elseif self.getline(1) =~ '^\d\{6\} \x\{40\}\> \d\t'
                                let type = 'index'
                              elseif isdirectory(self.spec())
                                let type = 'directory'
                              elseif self.spec() == ''
                                let type = 'null'
                              else
    1              0.000001     let type = 'file'
    1              0.000001   endif
    1              0.000001   if a:0
    1              0.000006     return !empty(filter(copy(a:000),'v:val ==# type'))
                              else
                                return type
                              endif

FUNCTION  vimfiler#util#expand()
Called 1 time
Total time:   0.000035
 Self time:   0.000024

count  total (s)   self (s)
    1   0.000034   0.000023   return s:get_prelude().substitute_path_separator( (a:path =~ '^\~') ? substitute(a:path, '^\~', expand('~'), '') : (a:path =~ '^\$\h\w*') ? substitute(a:path,               '^\$\h\w*', '\=eval(submatch(0))', '') : a:path)

FUNCTION  <SNR>203_is_ignore_syntax_in_cursor()
Called 2 times
Total time:   0.000015
 Self time:   0.000015

count  total (s)   self (s)
    2              0.000007 	let list = get(b:, "brightest_ignore_syntax_list", g:brightest#ignore_syntax_list)
                            
    2              0.000003 	if empty(list)
    2              0.000002 		return 0
                            	endif
                            
                            	return index(list, a:context.syntax_name) != -1

FUNCTION  neocomplete#has_vimproc()
Called 1 time
Total time:   0.000021
 Self time:   0.000005

count  total (s)   self (s)
    1   0.000021   0.000005   return neocomplete#util#has_vimproc()

FUNCTION  neosnippet#commands#_clear_markers()
Called 1 time
Total time:   0.000019
 Self time:   0.000012

count  total (s)   self (s)
    1   0.000012   0.000005   let expand_stack = neosnippet#variables#expand_stack()
                            
                              " Get patterns and count.
    1              0.000004   if !&l:modifiable || !&l:modified || empty(expand_stack) || neosnippet#variables#current_neosnippet().trigger
    1              0.000001     return
                              endif
                            
                              call neosnippet#view#_clear_markers(expand_stack[-1])

FUNCTION  neocomplete#variables#get_source()
Called 13 times
Total time:   0.000080
 Self time:   0.000080

count  total (s)   self (s)
   13              0.000024   if !exists('s:sources')
                                let s:sources = {}
                              endif
   13              0.000031   return get(s:sources, a:name, {})

FUNCTION  neomru#_save()
Called 1 time
Total time:   0.034519
 Self time:   0.000050

count  total (s)   self (s)
    1              0.000005   let opts = a:0 >= 1 && type(a:1) == type({}) ? a:1 : {}
                            
    3              0.000007   for m in values(s:MRUs)
    2   0.034501   0.000032     call m.save(opts)
    2              0.000002   endfor

FUNCTION  <SNR>563_unload()
Called 200 times
Total time:   0.001136
 Self time:   0.001136

count  total (s)   self (s)
  200              0.000810   let s:loaded = {}
  200              0.000219   unlet! s:vital_files

FUNCTION  lightline#mode()
Called 16 times
Total time:   0.000107
 Self time:   0.000107

count  total (s)   self (s)
   16              0.000098   return get(s:lightline.mode_map, mode(), s:lightline.mode_map['?'])

FUNCTION  neocomplete#handler#_on_text_changed()
Called 2 times
Total time:   0.000116
 Self time:   0.000038

count  total (s)   self (s)
    2   0.000068   0.000007   if neocomplete#is_cache_disabled()
                                return
                              endif
                            
    2              0.000004   if getline('.') == ''
                                call s:make_cache_current_line()
                              endif
                            
    2   0.000028   0.000011   if !neocomplete#util#is_text_changed()
                                call s:indent_current_line()
                              endif

FUNCTION  neocomplete#is_multibyte_input()
Called 2 times
Total time:   0.000022
 Self time:   0.000022

count  total (s)   self (s)
    2              0.000020   return (exists('b:skk_on') && b:skk_on)   || (!g:neocomplete#enable_multibyte_completion         && char2nr(split(a:cur_text, '\zs')[-1]) > 0x80)

FUNCTION  zenspace#is_on()
Called 2 times
Total time:   0.000019
 Self time:   0.000019

count  total (s)   self (s)
    2              0.000006   if !exists('w:zenspace_mode')
    1              0.000003     let w:zenspace_mode = g:zenspace#default_mode
    1              0.000001   endif
    2              0.000002   if w:zenspace_mode ==# 'list'
    2              0.000003     return &l:list
                              endif
                              return w:zenspace_mode ==# 'on'

FUNCTION  neocomplete#sources#tag#make_cache()
Called 1 time
Total time:   0.000133
 Self time:   0.000129

count  total (s)   self (s)
    1   0.000008   0.000004   if !neocomplete#is_enabled()
                                call neocomplete#initialize()
                              endif
                            
    1              0.000002   let bufnumber = bufnr('%')
                            
    1              0.000003   let s:async_tags_list[bufnumber] = []
    1              0.000098   let tagfiles = tagfiles()
    1              0.000003   if get(g:, 'loaded_neoinclude', 0)
                                let tagfiles += neoinclude#include#get_tag_files()
                              endif
    1              0.000005   for tags in map(filter(tagfiles, 'getfsize(v:val) > 0'), "neocomplete#util#substitute_path_separator(    fnamemodify(v:val, ':p'))")
                                if tags !~? '/doc/tags\%(-\w\+\)\?$' && (a:force || getfsize(tags)         < g:neocomplete#sources#tags#cache_limit_size)
                                  call add(s:async_tags_list[bufnumber], s:initialize_tags(tags))
                                endif
                              endfor

FUNCTION  <SNR>139_shellslash()
Called 6 times
Total time:   0.000074
 Self time:   0.000044

count  total (s)   self (s)
    6   0.000050   0.000020   if s:winshell()
                                return s:gsub(a:path,'\\','/')
                              else
    6              0.000006     return a:path
                              endif

FUNCTION  neocomplete#sources#buffer#make_cache_current_line()
Called 3 times
Total time:   0.001623
 Self time:   0.000066

count  total (s)   self (s)
    3   0.000112   0.000010   if neocomplete#is_locked()
                                return
                              endif
                            
                              " let start = reltime()
    3   0.001501   0.000046   call s:make_cache_current_buffer( max([1, line('.') - winline()]), min([line('$'), line('.') + winheight(0) - winline()]))
                              " echomsg reltimestr(reltime(start))

FUNCTION  <SNR>120_append()
Called 1 time
Total time:   0.000016
 Self time:   0.000009

count  total (s)   self (s)
    1              0.000003   if bufnr('%') != expand('<abuf>') || a:path == ''
                                return
                              endif
                            
    1   0.000011   0.000004   call neomru#_append()

FUNCTION  <SNR>203_is_enable()
Called 2 times
Total time:   0.000009
 Self time:   0.000009

count  total (s)   self (s)
    2              0.000009 	return get(g:, "brightest_enable", 1) && get(b:, "brightest_enable", 1)

FUNCTION  neosnippet#variables#current_neosnippet()
Called 1 time
Total time:   0.000011
 Self time:   0.000011

count  total (s)   self (s)
    1              0.000002   if !exists('b:neosnippet')
    1              0.000006     let b:neosnippet = { 'snippets' : {}, 'selected_text' : '', 'target' : '', 'trigger' : 0, 'optional_tabstop' : 0,}
    1              0.000000   endif
                            
    1              0.000001   return b:neosnippet

FUNCTION  neosnippet#get_placeholder_marker_pattern()
Called 1 time
Total time:   0.000002
 Self time:   0.000002

count  total (s)   self (s)
    1              0.000002   return '<`\d\+\%(:.\{-}\)\?\\\@<!`>'

FUNCTION  neocomplete#handler#_on_insert_leave()
Called 1 time
Total time:   0.002371
 Self time:   0.000024

count  total (s)   self (s)
    1   0.000030   0.000003   call neocomplete#helper#clear_result()
                            
    1   0.000012   0.000005   call s:close_preview_window()
    1   0.002313   0.000007   call s:make_cache_current_line()
                            
    1   0.000012   0.000005   let neocomplete = neocomplete#get_current_neocomplete()
    1              0.000002   let neocomplete.cur_text = ''

FUNCTION  fugitive#is_git_dir()
Called 4 times
Total time:   0.000072
 Self time:   0.000042

count  total (s)   self (s)
    4   0.000046   0.000016   let path = s:sub(a:path, '[\/]$', '') . '/'
    4              0.000020   return isdirectory(path.'objects') && isdirectory(path.'refs') && getfsize(path.'HEAD') > 10

FUNCTION  <SNR>399_substitute_path_separator()
Called 1 time
Total time:   0.000004
 Self time:   0.000004

count  total (s)   self (s)
    1              0.000004   return s:is_windows ? substitute(a:path, '\\', '/', 'g') : a:path

FUNCTION  context_filetype#version()
Called 1 time
Total time:   0.000006
 Self time:   0.000006

count  total (s)   self (s)
    1              0.000005   return str2nr(printf('%02d%02d', 1, 0))

FUNCTION  <SNR>102_WinDo()
Called 2 times
Total time:   0.000017
 Self time:   0.000017

count  total (s)   self (s)
                              " Work around Vim bug.
                              " See https://groups.google.com/forum/#!topic/vim_dev/LLTw8JV6wKg
    2              0.000005   let curaltwin = winnr('#') ? winnr('#') : 1
    2              0.000002   let currwin=winnr()
                              " avoid errors in CmdWin
    2              0.000005   if exists('*getcmdwintype') && getcmdwintype() != ''
    2              0.000001     return
                              endif
                              silent! execute 'keepjumps noautocmd windo ' . a:command
                              silent! execute curaltwin . 'wincmd w'
                              silent! execute currwin . 'wincmd w'

FUNCTION  828()
Called 2 times
Total time:   0.000029
 Self time:   0.000010

count  total (s)   self (s)
    2   0.000027   0.000008   if neocomplete#is_auto_complete() || !vimshell#check_prompt()
    2              0.000002     return -1
                              endif
                            
                              return vimshell#get_prompt_length()

FUNCTION  <SNR>440_get_omni_funcs()
Called 2 times
Total time:   0.000280
 Self time:   0.000203

count  total (s)   self (s)
    2              0.000003   let funcs = []
    6              0.000015   for ft in insert(split(a:filetype, '\.'), '_')
    4   0.000046   0.000032     let omnifuncs = neocomplete#util#convert2list( get(g:neocomplete#sources#omni#functions, ft, &l:omnifunc))
                            
    8              0.000009     for omnifunc in omnifuncs
    4   0.000026   0.000015       if neocomplete#helper#check_invalid_omnifunc(omnifunc)
                                    " omnifunc is irregal.
    4              0.000006         continue
                                  endif
                            
                                  if get(g:neocomplete#sources#omni#input_patterns, omnifunc, '') != ''
                                    let pattern = g:neocomplete#sources#omni#input_patterns[omnifunc]
                                  elseif get(g:neocomplete#sources#omni#input_patterns, ft, '') != ''
                                    let pattern = g:neocomplete#sources#omni#input_patterns[ft]
                                  else
                                    let pattern = ''
                                  endif
                            
                                  if pattern == ''
                                    continue
                                  endif
                            
                                  call add(funcs, [omnifunc, pattern])
                                endfor
    4              0.000000   endfor
                            
    2   0.000062   0.000010   return s:List.uniq(funcs)

FUNCTION  242()
Called 4 times
Total time:   0.000011
 Self time:   0.000011

count  total (s)   self (s)
    4              0.000009 	return keys(self.variables.hl_list)

FUNCTION  neocomplete#handler#_on_moved_i()
Called 3 times
Total time:   0.000101
 Self time:   0.000057

count  total (s)   self (s)
    3   0.000036   0.000013   let neocomplete = neocomplete#get_current_neocomplete()
    3              0.000009   if neocomplete.linenr != line('.')
                                call neocomplete#helper#clear_result()
                              endif
    3              0.000008   let neocomplete.linenr = line('.')
                            
    3   0.000040   0.000019   call s:close_preview_window()

FUNCTION  neosnippet#get_mirror_placeholder_marker_pattern()
Called 1 time
Total time:   0.000001
 Self time:   0.000001

count  total (s)   self (s)
    1              0.000001   return '<|\d\+|>'

FUNCTION  unite#variables#current_unite()
Called 3 times
Total time:   0.000017
 Self time:   0.000017

count  total (s)   self (s)
    3              0.000006   if !exists('s:current_unite')
                                let s:current_unite = {}
                              endif
                            
    3              0.000004   return s:current_unite

FUNCTION  <SNR>149_Highlight_Matching_Pair()
Called 7 times
Total time:   0.000501
 Self time:   0.000501

count  total (s)   self (s)
                              " Remove any previous match.
    7              0.000022   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).
    7              0.000022   if pumvisible() || (&t_Co < 8 && !has("gui_running"))
                                return
                              endif
                            
                              " Get the character under the cursor and check if it's in 'matchpairs'.
    7              0.000018   let c_lnum = line('.')
    7              0.000012   let c_col = col('.')
    7              0.000009   let before = 0
                            
    7              0.000017   let text = getline(c_lnum)
    7              0.000079   let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
    7              0.000012   if empty(matches)
                                let [c_before, c] = ['', '']
                              else
    7              0.000027     let [c_before, c] = matches[1:2]
    7              0.000003   endif
    7              0.000082   let plist = split(&matchpairs, '.\zs[:,]')
    7              0.000019   let i = index(plist, c)
    7              0.000007   if i < 0
                                " not found, in Insert mode try character before the cursor
    7              0.000018     if c_col > 1 && (mode() == 'i' || mode() == 'R')
    4              0.000010       let before = strlen(c_before)
    4              0.000006       let c = c_before
    4              0.000008       let i = index(plist, c)
    4              0.000002     endif
    7              0.000005     if i < 0
                                  " not found, nothing to do
    7              0.000005       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
                            
                              " Build an expression that detects whether the current cursor position is in
                              " certain syntax types (string, comment, etc.), for use as searchpairpos()'s
                              " skip argument.
                              " We match "escape" for special items, such as lispEscapeSpecial.
                              let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
                              " If executing the expression determines that the cursor is currently in
                              " one of the syntax types, then we want searchpairpos() to find the pair
                              " within those syntax types (i.e., not skip).  Otherwise, the cursor is
                              " outside of the syntax types and s_skip should keep its value so we skip any
                              " matching pair inside the syntax types.
                              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  neocomplete#print_debug()
Called 11 times
Total time:   0.000043
 Self time:   0.000043

count  total (s)   self (s)
   11              0.000013   if g:neocomplete#enable_debug
                                echomsg string(a:expr)
                              endif

FUNCTION  neobundle#autoload#filetype()
Called 1 time
Total time:   0.000584
 Self time:   0.000173

count  total (s)   self (s)
    1   0.000474   0.000087   let bundles = filter(neobundle#config#get_autoload_bundles(), "has_key(v:val.autoload, 'filetypes')")
    3   0.000030   0.000018   for filetype in add(neobundle#util#get_filetypes(), 'all')
    2   0.000072   0.000060     call neobundle#config#source_bundles(filter(copy(bundles)," index(v:val.autoload.filetypes, filetype) >= 0"))
    2              0.000002   endfor

FUNCTION  <SNR>165_expand()
Called 8 times
Total time:   0.001321
 Self time:   0.001321

count  total (s)   self (s)
    8              0.000034   let [e, t, d, f] = [ s:lightline.component_expand, s:lightline.component_type, s:lightline.component, s:lightline.component_function ]
    8              0.000019   let [a, c, _] = [[], [], []]
   23              0.000035   for i in range(len(a:x))
   36              0.000080     if !len(_) || len(_[-1]) | call add(_, []) | call add(c, []) | endif
   42              0.000060     for j in range(len(a:x[i]))
   27              0.000057       if has_key(e, a:x[i][j])
                                    call s:_expand(a, c, _, e, t, i, j, a:x)
                                  elseif has_key(d, a:x[i][j]) || has_key(f, a:x[i][j])
   27              0.000077         if !len(a) || type(a[-1]) != type(i) || a[-1] != i
   15              0.000028           call add(a, i)
   15              0.000050           if len(_) && len(_[-1]) | call add(_, []) | call add(c, []) | endif
   15              0.000011         endif
   46              0.000109         call add(_[-1], a:x[i][j]) | call add(c[-1], 0)
   27              0.000014       endif
   27              0.000013     endfor
   15              0.000012   endfor
    8              0.000016   call add(a, len(a:x))
    8              0.000036   while len(_) && !len(_[-1]) | call remove(_, -1) | call remove(c, -1) | endwhile
    8              0.000013   return [a, c, _]

FUNCTION  <SNR>203_context()
Called 2 times
Total time:   0.000022
 Self time:   0.000022

count  total (s)   self (s)
    2              0.000021 	return {		"filetype" : &filetype,		"line" : line("."),		"col"  : col("."),		"syntax_name" : synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name")	}

FUNCTION  <SNR>139_buffer()
Called 3 times
Total time:   0.000070
 Self time:   0.000060

count  total (s)   self (s)
    3              0.000013   let buffer = {'#': bufnr(a:0 ? a:1 : '%')}
    3              0.000027   call extend(extend(buffer,s:buffer_prototype,'keep'),s:abstract_prototype,'keep')
    3   0.000023   0.000013   if buffer.getvar('git_dir') !=# ''
    3              0.000003     return buffer
                              endif
                              call s:throw('not a git repository: '.expand('%:p'))

FUNCTION  neocomplete#util#convert2list()
Called 5 times
Total time:   0.000018
 Self time:   0.000018

count  total (s)   self (s)
    5              0.000016   return type(a:expr) ==# type([]) ? a:expr : [a:expr]

FUNCTION  anzu#clear_search_cache()
Called 2 times
Total time:   0.000021
 Self time:   0.000021

count  total (s)   self (s)
    2              0.000010 	let bufnr = get(a:, 1, bufnr("%"))
    2              0.000010 	call setbufvar(bufnr, "anzu_searchpos_cache", {})

FUNCTION  Yankround_append()
Called 1 time
Total time:   0.000065
 Self time:   0.000019

count  total (s)   self (s)
    1   0.000052   0.000006   call s:_reloadhistory()
    1              0.000012   if g:_yankround_stop_caching || @" ==# substitute(get(g:_yankround_cache, 0, ''), '^.\d*\t', '', '') || @"=~'^.\?$' || g:yankround_max_element_length!=0 && strlen(@")>g:yankround_max_element_length
    1              0.000001     return
                              end
                              call insert(g:_yankround_cache, getregtype('"'). "\t". @")
                              call s:newDupliMiller().mill(g:_yankround_cache)
                              if len(g:_yankround_cache) > g:yankround_max_history
                                call remove(g:_yankround_cache, g:yankround_max_history, -1)
                              end
                              call s:_persistent()

FUNCTION  294()
Called 2 times
Total time:   0.000013
 Self time:   0.000013

count  total (s)   self (s)
    2              0.000011   return self.mtime < getftime(self.mru_file)

FUNCTION  295()
Called 2 times
Total time:   0.034469
 Self time:   0.000556

count  total (s)   self (s)
    2   0.000027   0.000015   if s:is_sudo()
                                return
                              endif
                            
    2              0.000008   let opts = a:0 >= 1 && type(a:1) == type({}) ? a:1 : {}
                            
    2   0.000023   0.000010   if self.has_external_update() && filereadable(self.mru_file)
                                " only need to get the list which contains the latest MRUs
                                let [ver; items] = readfile(self.mru_file)
                                if self.version_check(ver)
                                  call extend(self.candidates, items)
                                endif
                              endif
                            
    2   0.014335   0.000108   let self.candidates = s:uniq(self.candidates)
    2              0.000006   if len(self.candidates) > self.limit
                                let self.candidates = self.candidates[: self.limit - 1]
                              endif
                            
    2              0.000006   if get(opts, 'event') ==# 'VimLeavePre'
    2   0.019001   0.000181     call self.validate()
    2              0.000000   endif
                            
    2   0.001015   0.000174   call s:writefile(self.mru_file, [self.version] + self.candidates)
                            
    2              0.000013   let self.mtime = getftime(self.mru_file)

FUNCTION  localrc#search()
Called 1 time
Total time:   0.006607
 Self time:   0.000186

count  total (s)   self (s)
    1              0.000003   let path = 1 <= a:0 ? a:1 : expand('%:p:h')
    1              0.000004   if empty(a:fnames) || !isdirectory(path)
                                return []
                              endif
                            
    1              0.000001   let depth = 2 <= a:0 ? a:2 : -1
    1              0.000001   let targets = []
    1              0.000004   let dir = fnamemodify(path, ':p:h')
    1              0.000001   let updir = ''
    7              0.000013   while depth != 0 && dir !=# updir
    6   0.006466   0.000045     let targets = s:match_files(dir, a:fnames) + targets
    6              0.000009     let updir = dir
    6              0.000018     let dir = fnamemodify(dir, ':h')
    6              0.000045     if (has('win32') || has('win64')) && dir =~ '^\\\\[^\\]\+$'
                                  break
                                endif
    6              0.000010     let depth -= 1
    6              0.000005   endwhile
    1              0.000001   return targets

FUNCTION  neocomplete#get_data_directory()
Called 7 times
Total time:   0.000461
 Self time:   0.000231

count  total (s)   self (s)
    7              0.000073   let g:neocomplete#data_directory = get(g:, 'neocomplete#data_directory',  ($XDG_CACHE_HOME != '' ?   $XDG_CACHE_HOME . '/neocomplete' : '~/.cache/neocomplete'))
    7   0.000303   0.000073   let directory = neocomplete#util#substitute_path_separator( neocomplete#util#expand(g:neocomplete#data_directory))
    7              0.000019   if !isdirectory(directory)
                                if neocomplete#util#is_sudo()
                                  call neocomplete#print_error(printf( 'Cannot create Directory "%s" in sudo session.', directory))
                                else
                                  call mkdir(directory, 'p')
                                endif
                              endif
                            
    7              0.000009   return directory

FUNCTION  neocomplete#is_auto_complete()
Called 21 times
Total time:   0.000209
 Self time:   0.000095

count  total (s)   self (s)
   21   0.000180   0.000066   let neocomplete = neocomplete#get_current_neocomplete()
   21              0.000024   return neocomplete.is_auto_complete

FUNCTION  neosnippet#helpers#get_filetype()
Called 1 time
Total time:   0.000695
 Self time:   0.000020

count  total (s)   self (s)
    1              0.000002   if !exists('s:exists_context_filetype')
                                " context_filetype.vim installation check.
                                try
                                  call context_filetype#version()
                                  let s:exists_context_filetype = 1
                                catch
                                  let s:exists_context_filetype = 0
                                endtry
                              endif
                            
    1   0.000680   0.000005   let context_filetype = s:exists_context_filetype ? context_filetype#get_filetype() : &filetype
    1              0.000001   if context_filetype == ''
                                let context_filetype = 'nothing'
                              endif
                            
    1              0.000001   return context_filetype

FUNCTION  vital#_incsearch#Data#List#import()
Called 200 times
Total time:   0.022406
 Self time:   0.022406

count  total (s)   self (s)
  200              0.022295     return map({'combinations': '', 'and': '', 'sort_by': '', 'foldr1': '', 'sort': '', 'flatten': '', 'has_index': '', 'find_indices': '', 'any': '', 'unshift': '', 'span': '', 'pop': '', 'binary_search': '', 'uniq_by': '', 'or': '', 'all': '', 'zip': '', 'find_last_index': '', 'find': '', 'partition': '', 'map_accum': '', 'permutations': '', 'break': '', 'max_by': '', 'foldl': '', 'foldr': '', 'find_index': '', 'group_by': '', 'take_while': '', 'conj': '', 'push': '', 'char_range': '', 'cons': '', 'foldl1': '', 'intersect': '', 'concat': '', 'shift': '', 'clear': '', 'has_common_items': '', 'product': '', 'zip_fill': '', 'uniq': '', 'has': '', 'min_by': '', 'with_index': ''},  'function("s:" . v:key)')

FUNCTION  neocomplete#init#disable()
Called 1 time
Total time:   0.000428
 Self time:   0.000234

count  total (s)   self (s)
    1   0.000011   0.000005   if !neocomplete#is_enabled()
                                return
                              endif
                            
    1              0.000002   let s:is_enabled = 0
                            
    1              0.000003   augroup neocomplete
    1              0.000186     autocmd!
    1              0.000001   augroup END
                            
    1              0.000010   silent! delcommand NeoCompleteDisable
                            
    1   0.000210   0.000022   call neocomplete#helper#call_hook(filter(values( neocomplete#variables#get_sources()), 'v:val.loaded'), 'on_final', {})

FUNCTION  <SNR>29_LoadIndent()
Called 1 time
Total time:   0.001255
 Self time:   0.001222

count  total (s)   self (s)
    1              0.000007     if exists("b:undo_indent")
                                  exe b:undo_indent
                                  unlet! b:undo_indent b:did_indent
                                endif
    1              0.000013     let s = expand("<amatch>")
    1              0.000001     if s != ""
    1              0.000002       if exists("b:did_indent")
                            	unlet b:did_indent
                                  endif
                            
                                  " When there is a dot it is used to separate filetype names.  Thus for
                                  " "aaa.bbb" load "indent/aaa.vim" and then "indent/bbb.vim".
    2              0.000007       for name in split(s, '\.')
    1   0.001194   0.001161 	exe 'runtime! indent/' . name . '.vim'
    1              0.000001       endfor
    1              0.000001     endif

FUNCTION  <SNR>443_check_in_do_auto_complete()
Called 3 times
Total time:   0.000131
 Self time:   0.000030

count  total (s)   self (s)
    3   0.000115   0.000014   if neocomplete#is_locked()
                                return 1
                              endif
                            
                              " Detect completefunc.
    3              0.000006   if &l:completefunc != '' && &l:buftype =~ 'nofile'
                                return 1
                              endif

FUNCTION  <SNR>102_isReasonable()
Called 2 times
Total time:   0.000024
 Self time:   0.000024

count  total (s)   self (s)
    2              0.000007   if &l:foldmethod ==# 'manual' | return 0 | endif
                            
    2              0.000004   if g:fastfold_force | return 1 | endif
    2              0.000003   if &l:foldmethod ==# 'syntax' || &l:foldmethod ==# 'expr'
                                return 1
                              endif
                            
    2              0.000002   return 0

FUNCTION  <SNR>443_make_cache_current_line()
Called 1 time
Total time:   0.002306
 Self time:   0.000028

count  total (s)   self (s)
    1   0.000010   0.000004   let neocomplete = neocomplete#get_current_neocomplete()
    1   0.000053   0.000005   if neocomplete#helper#is_enabled_source('buffer', neocomplete.context_filetype)
                                " Caching current cache line.
    1   0.000547   0.000005     call neocomplete#sources#buffer#make_cache_current_line()
    1              0.000001   endif
    1   0.000061   0.000007   if neocomplete#helper#is_enabled_source('member', neocomplete.context_filetype)
                                " Caching current cache line.
    1   0.001633   0.000005     call neocomplete#sources#member#make_cache_current_line()
    1              0.000000   endif

FUNCTION  neocomplete#complete#_get_results()
Called 2 times
Total time:   0.009270
 Self time:   0.000136

count  total (s)   self (s)
    2   0.000014   0.000008   call neocomplete#print_debug('start get_complete_sources')
                            
    2   0.000018   0.000007   let neocomplete = neocomplete#get_current_neocomplete()
    2              0.000005   let neocomplete.start_time = reltime()
                            
                              " Comment check.
    2   0.000117   0.000013   let neocomplete.within_comment = neocomplete#helper#get_syn_name(1) ==# 'Comment'
                            
    2   0.003811   0.000019   let complete_sources = call( 'neocomplete#complete#_set_results_pos', [a:cur_text] + a:000)
    2              0.000004   if empty(complete_sources)
                                call neocomplete#print_debug('Skipped.')
                                return []
                              endif
                            
    2   0.000029   0.000009   if neocomplete#is_auto_complete()
    2   0.000034   0.000012     let complete_pos = neocomplete#complete#_get_complete_pos(complete_sources)
    2   0.000038   0.000010     call neocomplete#complete#_set_previous_position(a:cur_text, complete_pos)
    2              0.000001   endif
                            
    2   0.005169   0.000018   call neocomplete#complete#_set_results_words(complete_sources)
                            
    2              0.000015   return filter(copy(complete_sources), '!empty(v:val.neocomplete__context.candidates)')

FUNCTION  neocomplete#util#substitute_path_separator()
Called 7 times
Total time:   0.000137
 Self time:   0.000064

count  total (s)   self (s)
    7   0.000134   0.000061   return call(s:get_prelude().substitute_path_separator, a:000)

FUNCTION  lightline#update()
Called 3 times
Total time:   0.003596
 Self time:   0.000153

count  total (s)   self (s)
    3              0.000016   if s:_ | call lightline#init() | call lightline#colorscheme() | endif
    3              0.000011   if !s:lightline.enable.statusline | return | endif
    3              0.000006   let w = winnr()
    3   0.003471   0.000028   let s = winnr('$') == 1 ? [lightline#statusline(0)] : [lightline#statusline(0), lightline#statusline(1)]
    7              0.000011   for n in range(1, winnr('$'))
    4              0.000049     call setwinvar(n, '&statusline', s[n!=w])
    4              0.000011     call setwinvar(n, 'lightline', n!=w)
    4              0.000003   endfor

FUNCTION  zenspace#update()
Called 2 times
Total time:   0.000070
 Self time:   0.000051

count  total (s)   self (s)
    2   0.000028   0.000009   let on = zenspace#is_on()
    2              0.000006   let current_state = exists('w:zenspace_match_id')
                            
    2              0.000002   if on == current_state
    1              0.000000     return
                              endif
                            
    1              0.000001   if on
    1              0.000022     let w:zenspace_match_id = matchadd('ZenSpace', ' ')
    1              0.000001   else
                                call matchdelete(w:zenspace_match_id)
                                unlet w:zenspace_match_id
                              endif

FUNCTION  MyMode()
Called 16 times
Total time:   0.000204
 Self time:   0.000097

count  total (s)   self (s)
   16   0.000198   0.000091     return winwidth('.') > 60 ? lightline#mode() : ''

FUNCTION  <SNR>486_parse_substitute()
Called 2 times
Total time:   0.000116
 Self time:   0.000116

count  total (s)   self (s)
    2              0.000004 	let very_magic   = '\v'
    2              0.000003 	let range        = '(.{-})'
    2              0.000004 	let command      = 's%[ubstitute]'
    2              0.000004 	let first_slash  = '([\x00-\xff]&[^\\"|[:alnum:][:blank:]])'
    2              0.000003 	let pattern      = '(%(\\.|.){-})'
    2              0.000003 	let second_slash = '\2'
    2              0.000003 	let string       = '(%(\\.|.){-})'
    2              0.000004 	let flags        = '%(\2([&cegiInp#lr]*))?'
    2              0.000017 	let parse_pattern		= very_magic		. '^:*'		. range		. command		. first_slash		. pattern		. '%('		. second_slash		. string		. flags		. ')?$'
    2              0.000055 	let result = matchlist(a:word, parse_pattern)[1:5]
    2              0.000008 	if type(result) == type(0) || empty(result)
    2              0.000002 		return []
                            	endif
                            	unlet result[1]
                            	return result

FUNCTION  neocomplete#is_locked()
Called 6 times
Total time:   0.000203
 Self time:   0.000037

count  total (s)   self (s)
    6   0.000201   0.000035   return neocomplete#is_cache_disabled() || &paste || (&t_Co != '' && &t_Co < 8) || g:neocomplete#disable_auto_complete

FUNCTION  <SNR>409_stopline_forward()
Called 136 times
Total time:   0.000767
 Self time:   0.000767

count  total (s)   self (s)
  136              0.000378   let stopline_forward = line('.') + g:context_filetype#search_offset
  136              0.000333   return (stopline_forward > line('$')) ? line('$') : stopline_forward

FUNCTION  <SNR>203_is_enable_in_current()
Called 2 times
Total time:   0.000014
 Self time:   0.000014

count  total (s)   self (s)
    2              0.000007 	let default = get(g:brightest#enable_filetypes, "_", 1)
    2              0.000005 	return get(g:brightest#enable_filetypes, a:context.filetype, default)

FUNCTION  neocomplete#helper#complete_check()
Called 5 times
Total time:   0.000245
 Self time:   0.000168

count  total (s)   self (s)
    5   0.000046   0.000017   let neocomplete = neocomplete#get_current_neocomplete()
    5              0.000005   if g:neocomplete#enable_debug
                                echomsg split(reltimestr(reltime(neocomplete.start_time)))[0]
                              endif
    5   0.000139   0.000091   let ret = neocomplete#is_auto_complete()     && g:neocomplete#skip_auto_completion_time != ''     && split(reltimestr(reltime(neocomplete.start_time)))[0] >          g:neocomplete#skip_auto_completion_time
    5              0.000005   if ret
                                let neocomplete = neocomplete#get_current_neocomplete()
                                let neocomplete.skipped = 1
                            
                                call neocomplete#print_debug('Skipped.')
                              endif
                            
    5              0.000004   return ret

FUNCTION  <SNR>65__persistent()
Called 1 time
Total time:   0.000290
 Self time:   0.000290

count  total (s)   self (s)
    1              0.000004   if g:yankround_dir=='' || g:_yankround_cache==[]
                                return
                              end
    1              0.000003   let path = s:yankround_dir. '/history'
    1              0.000273   call writefile(g:_yankround_cache, path)
    1              0.000007   let s:_histfilever = getftime(path)

FUNCTION  neocomplete#cache#get_cache_list()
Called 1 time
Total time:   0.000383
 Self time:   0.000075

count  total (s)   self (s)
    1              0.000003   let cache_list = a:async_cache_list
                            
    1              0.000001   let loaded_keywords = []
    1              0.000002   let loaded = 0
    2              0.000022   for cache in filter(copy(cache_list), 'filereadable(v:val.cachename)')
    1              0.000002     let loaded = 1
    1   0.000334   0.000026     let loaded_keywords = neocomplete#cache#load_from_cache( a:cache_dir, cache.filename, 1)
    1              0.000001   endfor
                            
    1              0.000010   call filter(cache_list, '!filereadable(v:val.cachename)')
                            
    1              0.000002   return [loaded, loaded_keywords]

FUNCTION  <SNR>439_initialize_source()
Called 1 time
Total time:   0.000078
 Self time:   0.000044

count  total (s)   self (s)
    1              0.000016   let path = (a:srcname=~ '^\d\+$') ? fnamemodify(bufname(a:srcname), ':p') : a:srcname
    1              0.000004   let filename = fnamemodify(path, ':t')
    1              0.000001   if filename == ''
                                let filename = '[No Name]'
                                let path .= '/[No Name]'
                              endif
                            
    1              0.000002   let ft = a:filetype
    1              0.000001   if ft == ''
                                let ft = 'nothing'
                              endif
                            
    1   0.000050   0.000016   let s:member_sources[a:srcname] = { 'member_cache' : {}, 'filetype' : ft, 'time' : getftime(path), 'keyword_pattern' : neocomplete#get_keyword_pattern(ft, s:source.name),}

FUNCTION  <SNR>102_EnterWin()
Called 2 times
Total time:   0.000054
 Self time:   0.000018

count  total (s)   self (s)
    2   0.000043   0.000007   if s:Skip()
    2              0.000008     if exists('w:lastfdm') | unlet w:lastfdm | endif
    2              0.000002     return
                              endif
                            
                              let w:lastfdm = &l:foldmethod
                              setlocal foldmethod=manual

FUNCTION  neocomplete#util#has_vimproc()
Called 1 time
Total time:   0.000016
 Self time:   0.000016

count  total (s)   self (s)
                              " Initialize.
    1              0.000003   if !exists('g:neocomplete#use_vimproc')
                                " Check vimproc.
                                try
                                  call vimproc#version()
                                  let exists_vimproc = 1
                                catch
                                  let exists_vimproc = 0
                                endtry
                            
                                let g:neocomplete#use_vimproc = exists_vimproc
                              endif
                            
    1              0.000002   return g:neocomplete#use_vimproc

FUNCTION  unite#helper#call_hook()
Called 1 time
Total time:   0.000055
 Self time:   0.000040

count  total (s)   self (s)
    1   0.000023   0.000008   let context = unite#get_context()
    1              0.000002   if context.unite__disable_hooks
                                return
                              endif
                            
    2              0.000003   for source in a:sources
    1              0.000003     if !has_key(source.hooks, a:hook_name)
    1              0.000001       continue
                                endif
                            
                                try
                                  call call(source.hooks[a:hook_name], [source.args, source.unite__context], source.hooks)
                                catch
                                  call unite#print_error(v:throwpoint)
                                  call unite#print_error(v:exception)
                                  call unite#print_error( 'Error occurred in calling hook "' . a:hook_name . '"!')
                                  call unite#print_error( 'Source name is ' . source.name)
                                endtry
                              endfor

FUNCTION  <SNR>287_finalize()
Called 1 time
Total time:   0.000180
 Self time:   0.000023

count  total (s)   self (s)
    1   0.000036   0.000011   call s:garbage_collect(1)
                            
    1              0.000003   if exists('s:dll_handle')
    1   0.000139   0.000007     call s:vp_dlclose(s:dll_handle)
    1              0.000001   endif

FUNCTION  <SNR>435_initialize_source()
Called 1 time
Total time:   0.000222
 Self time:   0.000041

count  total (s)   self (s)
    1              0.000006   let path = fnamemodify(bufname(a:srcname), ':p')
    1              0.000002   let filename = fnamemodify(path, ':t')
    1              0.000001   if filename == ''
                                let filename = '[No Name]'
                                let path .= '/[No Name]'
                              endif
                            
    1              0.000002   let ft = getbufvar(a:srcname, '&filetype')
    1              0.000001   if ft == ''
                                let ft = 'nothing'
                              endif
                            
    1   0.000036   0.000005   let keyword_pattern = neocomplete#get_keyword_pattern(ft, s:source.name)
                            
    1   0.000166   0.000016   let s:buffer_sources[a:srcname] = { 'words' : [], 'frequencies' : {}, 'name' : filename, 'filetype' : ft, 'keyword_pattern' : keyword_pattern, 'cached_time' : 0, 'path' : path, 'cache_name' : neocomplete#cache#encode_name('buffer_cache', path),}

FUNCTION  neocomplete#helper#check_filetype()
Called 21 times
Total time:   0.000318
 Self time:   0.000128

count  total (s)   self (s)
   21   0.000311   0.000121   return !empty(filter(neocomplete#context_filetype#filetypes(), 'get(a:dictionary, v:val, 0)'))

FUNCTION  over#setup()
Called 1 time
Total time:   0.000237
 Self time:   0.000237

count  total (s)   self (s)
    1              0.000002 	let s:set_flag = 0
    1              0.000001 	let s:search_highlighted = 0
    1              0.000003 	augroup over-cmdwindow
    1              0.000210 		autocmd!
    1              0.000008 		autocmd InsertCharPre * call s:search_highlight(getline(".") . v:char)
    1              0.000005 		autocmd InsertEnter   * call s:set_options()
    1              0.000005 		autocmd InsertLeave   * call s:restore_options()
    1              0.000001 	augroup END

FUNCTION  <SNR>112_optionset()
Called 1 time
Total time:   0.000012
 Self time:   0.000012

count  total (s)   self (s)
    1              0.000004   if s:ON && expand('<amatch>') is# 'number'
                                if v:option_new
                                  call s:dummysign_off()
                                else
                                  call s:clear_enable_auto()
                                  call s:dummysign()
                                endif
                              endif

FUNCTION  neocomplete#helper#call_filters()
Called 3 times
Total time:   0.000992
 Self time:   0.000130

count  total (s)   self (s)
    3              0.000010   let context = extend(a:source.neocomplete__context, a:context)
    7              0.000010   for filter in a:filters
    4              0.000004     try
    4   0.000893   0.000031       let context.candidates = call(filter.filter, [context], filter)
    4              0.000003     catch
                                  call neocomplete#print_error(v:throwpoint)
                                  call neocomplete#print_error(v:exception)
                                  call neocomplete#print_error( 'Error occurred in calling filter '   . filter.name . '!')
                                  call neocomplete#print_error( 'Source name is ' . a:source.name)
                                endtry
    4              0.000003   endfor
                            
    3              0.000003   return context.candidates

FUNCTION  <SNR>561__vital_of()
Called 100 times
Total time:   0.158038
 Self time:   0.001568

count  total (s)   self (s)
  100   0.117609   0.000448   let V = vital#of('incsearch')
  100   0.039234   0.000493   call V.load('Data.List')
  100   0.001141   0.000573   call V.unload()

FUNCTION  <SNR>102_LeaveWin()
Called 2 times
Total time:   0.000013
 Self time:   0.000013

count  total (s)   self (s)
    2              0.000007   if exists('w:lastfdm') && &l:foldmethod ==# 'manual'
                                let &l:foldmethod= w:lastfdm
                              endif

FUNCTION  <SNR>486_search_highlight()
Called 2 times
Total time:   0.000136
 Self time:   0.000020

count  total (s)   self (s)
    2   0.000131   0.000015 	let result = s:parse_substitute(a:line)
    2              0.000003 	if empty(result)
    2              0.000002 		return
                            	endif
                            	if !s:set_flag
                            		let s:search_highlighted = 1
                            		let s:set_flag = 1
                            		call feedkeys("\<C-o>:set hlsearch | set incsearch\<CR>", 'n')
                            	endif
                            	let @/ = result[1]

FUNCTION  <SNR>441_uniq_by()
Called 5 times
Total time:   0.000199
 Self time:   0.000199

count  total (s)   self (s)
    5              0.000040   let list = map(copy(a:list), printf('[v:val, %s]', a:f))
    5              0.000007   let i = 0
    5              0.000007   let seen = {}
   10              0.000020   while i < len(list)
    5              0.000019     let key = string(list[i][1])
    5              0.000010     if has_key(seen, key)
    2              0.000005       call remove(list, i)
    2              0.000001     else
    3              0.000008       let seen[key] = 1
    3              0.000004       let i += 1
    3              0.000003     endif
    5              0.000004   endwhile
    5              0.000014   return map(list, 'v:val[0]')

FUNCTION  <SNR>102_Skip()
Called 2 times
Total time:   0.000036
 Self time:   0.000012

count  total (s)   self (s)
    2   0.000035   0.000011   if !s:isReasonable() | return 1 | endif
                              if !&l:modifiable    | return 1 | endif
                              if s:inSkipList()    | return 1 | endif
                            
                              return 0

FUNCTION  neocomplete#init#is_enabled()
Called 17 times
Total time:   0.000029
 Self time:   0.000029

count  total (s)   self (s)
   17              0.000024   return s:is_enabled

FUNCTION  neobundle#autoload#explorer()
Called 1 time
Total time:   0.000042
 Self time:   0.000029

count  total (s)   self (s)
    1              0.000001   if a:path == ''
                                return
                              endif
                            
    1              0.000002   let path = a:path
                              " For ":edit ~".
    1              0.000003   if fnamemodify(path, ':t') ==# '~'
                                let path = '~'
                              endif
                            
    1   0.000020   0.000007   let path = neobundle#util#expand(path)
    1              0.000012   if !(isdirectory(path) || (!filereadable(path) && path =~ '^\h\w\+://'))
    1              0.000001     return
                              endif
                            
                              let bundles = filter(neobundle#config#get_autoload_bundles(), "get(v:val.autoload, 'explorer', 0)")
                              if empty(bundles)
                                augroup neobundle-explorer
                                  autocmd!
                                augroup END
                              else
                                call neobundle#config#source_bundles(bundles)
                                execute 'doautocmd' a:event
                              endif

FUNCTION  <SNR>439_get_member_pattern()
Called 5 times
Total time:   0.000022
 Self time:   0.000022

count  total (s)   self (s)
    5              0.000020   return get(g:neocomplete#sources#member#input_patterns, a:filetype, get(g:neocomplete#sources#member#input_patterns, '_', ''))

FUNCTION  neocomplete#complete_check()
Called 5 times
Total time:   0.000264
 Self time:   0.000019

count  total (s)   self (s)
    5   0.000263   0.000018   return neocomplete#helper#complete_check()

FUNCTION  context_filetype#get_filetypes()
Called 8 times
Total time:   0.005700
 Self time:   0.000336

count  total (s)   self (s)
    8   0.005214   0.000042   let filetype = call('context_filetype#get_filetype', a:000)
                            
    8              0.000014   let filetypes = [filetype]
    8              0.000038   if filetype =~ '\.'
                                if has_key(g:context_filetype#ignore_composite_filetypes, filetype)
                                  let filetypes = [g:context_filetype#ignore_composite_filetypes[filetype]]
                                else
                                  " Set composite filetype.
                                  let filetypes += split(filetype, '\.')
                                endif
                              endif
                            
   16              0.000029   for ft in copy(filetypes)
    8   0.000259   0.000067     let filetypes += s:get_same_filetypes(ft)
    8              0.000005   endfor
                            
    8              0.000014   if len(filetypes) > 1
                                let filetypes = s:uniq(filetypes)
                              endif
                            
    8              0.000008   return filetypes

FUNCTION  <SNR>201_uniq()
Called 6 times
Total time:   0.000102
 Self time:   0.000102

count  total (s)   self (s)
    6              0.000011   let i = 0
    6              0.000014   let len = len(a:list)
    6              0.000010   let seen = {}
    6              0.000011   while i < len
                                if has_key(seen, a:list[i])
                                  call remove(a:list, i)
                                else
                                  let seen[a:list[i]] = 1
                                  let i += 1
                                endif
                              endwhile
    6              0.000008   return a:list

FUNCTION  brightest#highlighting()
Called 2 times
Total time:   0.000329
 Self time:   0.000033

count  total (s)   self (s)
    2   0.000328   0.000032 	call s:highlighting(		get(b:, "brightest_pattern", g:brightest#pattern),		s:default(),		s:highlight_in_cursorline(),	)

FUNCTION  <SNR>139_sub()
Called 24 times
Total time:   0.000227
 Self time:   0.000227

count  total (s)   self (s)
   24              0.000221   return substitute(a:str,'\v\C'.a:pat,a:rep,'')

FUNCTION  neocomplete#handler#_do_auto_complete()
Called 3 times
Total time:   0.016130
 Self time:   0.000316

count  total (s)   self (s)
    3   0.000030   0.000011   let neocomplete = neocomplete#get_current_neocomplete()
                            
    3   0.000158   0.000027   if (g:neocomplete#enable_cursor_hold_i && empty(neocomplete.candidates) && a:event ==# 'CursorMovedI') || s:check_in_do_auto_complete() || (a:event ==# 'InsertEnter'     && neocomplete.old_cur_text != '')
                                return
                              endif
                            
    3              0.000004   let neocomplete.skipped = 0
    3              0.000006   let neocomplete.event = a:event
    3   0.000076   0.000011   call neocomplete#helper#clear_result()
                            
                              " Set context filetype.
    3   0.004338   0.000018   call neocomplete#context_filetype#set()
                            
    3   0.000223   0.000019   let cur_text = neocomplete#get_cur_text(1)
    3              0.000004   let complete_pos = -1
                            
    3   0.000029   0.000017   call neocomplete#print_debug('cur_text = ' . cur_text)
                            
    3              0.000004   try
                                " Prevent infinity loop.
    3   0.000087   0.000014     if s:is_skip_auto_complete(cur_text)
                                  call neocomplete#print_debug('Skipped.')
                                  return
                                endif
                            
    3   0.001602   0.000014     let complete_pos = s:check_force_omni(cur_text)
    3              0.000004     if complete_pos >= 0
                                  return
                                endif
                            
                                " Check multibyte input or eskk or spaces.
    3   0.000057   0.000029     if cur_text =~ '^\s*$' || neocomplete#is_eskk_enabled() || neocomplete#is_multibyte_input(cur_text)
    1   0.000008   0.000004       call neocomplete#print_debug('Skipped.')
    1              0.000001       return
                                endif
                            
    2              0.000002     try
    2              0.000003       let neocomplete.is_auto_complete = 1
                            
                                  " Do prefetch.
    2   0.009283   0.000013       let neocomplete.complete_sources = neocomplete#complete#_get_results(cur_text)
    2              0.000002     finally
    2              0.000004       let neocomplete.is_auto_complete = 0
    2              0.000001     endtry
                            
    2              0.000003     if empty(neocomplete.complete_sources)
    2   0.000068   0.000014       call s:check_fallback(cur_text)
    2              0.000002       return
                                endif
                            
                                " Start auto complete.
                                call s:complete_key( "\<Plug>(neocomplete_start_auto_complete)")
                              finally
    3   0.000068   0.000022     call neocomplete#complete#_set_previous_position(cur_text, complete_pos)
    3              0.000003   endtry

FUNCTION  <SNR>464_getfilename()
Called 2 times
Total time:   0.000107
 Self time:   0.000012

count  total (s)   self (s)
    2   0.000107   0.000012   return s:_encode_name(a:cache_dir, a:filename)

FUNCTION  <SNR>139_buffer_getline()
Called 3 times
Total time:   0.000012
 Self time:   0.000012

count  total (s)   self (s)
    3              0.000012   return get(getbufline(self['#'], a:lnum), 0, '')

FUNCTION  neocomplete#sources#member#remake_cache()
Called 1 time
Total time:   0.000020
 Self time:   0.000013

count  total (s)   self (s)
    1   0.000014   0.000007   if !neocomplete#is_enabled()
                                call neocomplete#initialize()
                              endif
                            
    1              0.000003   if get(g:neocomplete#sources#member#prefix_patterns, a:filetype, '') == ''
    1              0.000001     return
                              endif
                            
                              for dictionary in filter(map(neocomplete#sources#dictionary#get_dictionaries(a:filetype),  "neocomplete#util#substitute_path_separator(      fnamemodify(v:val, ':p'))"), "filereadable(v:val) && (!has_key(s:member_sources, v:val)    || getftime(v:val) > s:member_sources[v:val].time)")
                                call s:make_cache_lines(dictionary, a:filetype, readfile(dictionary))
                              endfor

FUNCTION  <SNR>102_UpdateWin()
Called 1 time
Total time:   0.000035
 Self time:   0.000018

count  total (s)   self (s)
                              " skip if another session still loading
    1              0.000004   if a:check && exists('g:SessionLoad') | return | endif
                            
    1              0.000002   let s:curwin = winnr()
    1   0.000016   0.000006   call s:WinDo("if winnr() == s:curwin | call s:LeaveWin() | endif")
    1   0.000011   0.000004   call s:WinDo("if winnr() == s:curwin | call s:EnterWin() | endif")

FUNCTION  <SNR>139_repo_dir()
Called 36 times
Total time:   0.000147
 Self time:   0.000147

count  total (s)   self (s)
   36              0.000132   return join([self.git_dir]+a:000,'/')

FUNCTION  <SNR>485__rounder_autocmd()
Called 1 time
Total time:   0.000212
 Self time:   0.000212

count  total (s)   self (s)
    1              0.000004   aug yankround_rounder
    1              0.000189     autocmd!
    1              0.000009     autocmd CursorMoved *   if s:rounder.is_cursormoved()| call s:destroy_rounder()| end
    1              0.000004     autocmd BufWritePost *  call s:rounder.update_changedtick()
    1              0.000004     autocmd InsertEnter *   call s:rounder.clear_region_hl()
    1              0.000001   aug END

FUNCTION  <SNR>287_libcall()
Called 1 time
Total time:   0.000125
 Self time:   0.000095

count  total (s)   self (s)
    1   0.000120   0.000090   let stack_buf = libcall(g:vimproc#dll_path, a:func, s:encode_list(a:args))
    1              0.000003   if empty(stack_buf)
    1              0.000001     return []
                              endif
                              let [result, err] = s:decode_list(stack_buf)
                              if err
                                let s:lasterr = result
                                let msg = vimproc#util#iconv(string(result), vimproc#util#systemencoding(), &encoding)
                            
                                throw printf('vimproc: %s: %s', a:func, msg)
                              endif
                              return result

FUNCTION  <SNR>160_IndentLinesDisable()
Called 1 time
Total time:   0.000160
 Self time:   0.000160

count  total (s)   self (s)
    1              0.000002     let b:indentLine_enabled = 0
    1              0.000001     try
    1              0.000125         syntax clear IndentLine
    1              0.000017         syntax clear IndentLineSpace
                                catch /^Vim\%((\a\+)\)\=:E28/	" catch error E28
    1              0.000002     endtry

FUNCTION  <SNR>139_can_diffoff()
Called 2 times
Total time:   0.000016
 Self time:   0.000016

count  total (s)   self (s)
    2              0.000014   return getwinvar(bufwinnr(a:buf), '&diff') && !empty(getbufvar(a:buf, 'git_dir')) && !empty(getwinvar(bufwinnr(a:buf), 'fugitive_diff_restore'))

FUNCTION  MyFilename()
Called 17 times
Total time:   0.000775
 Self time:   0.000385

count  total (s)   self (s)
   17   0.000757   0.000367     return ('' != MyReadonly() ? MyReadonly() . ' ' : '') . (&ft == 'vimfiler' ? vimfiler#get_status_string() :  &ft == 'unite' ? unite#get_status_string() :  &ft == 'vimshell' ? vimshell#get_status_string() : '' != expand('%:t') ? expand('%:t') : '[No Name]') . ('' != MyModified() ? ' ' . MyModified() : '')

FUNCTION  vital#incsearch#of()
Called 200 times
Total time:   0.002289
 Self time:   0.000735

count  total (s)   self (s)
  200   0.002237   0.000683   return s:new(s:plugin_name)

FUNCTION  neobundle#autoload#insert()
Called 1 time
Total time:   0.000433
 Self time:   0.000087

count  total (s)   self (s)
    1   0.000426   0.000080   let bundles = filter(neobundle#config#get_autoload_bundles(), "get(v:val.autoload, 'insert', 0)")
    1              0.000002   if !empty(bundles)
                                call neobundle#config#source_bundles(bundles)
                                doautocmd InsertEnter
                              endif

FUNCTION  neocomplete#handler#_on_insert_enter()
Called 1 time
Total time:   0.000201
 Self time:   0.000030

count  total (s)   self (s)
    1   0.000007   0.000002   if !neocomplete#is_enabled()
                                return
                              endif
                            
    1   0.000152   0.000007   let neocomplete = neocomplete#get_current_neocomplete()
    1              0.000002   if neocomplete.linenr != line('.')
    1   0.000030   0.000009     call neocomplete#helper#clear_result()
    1              0.000000   endif
    1              0.000001   let neocomplete.linenr = line('.')
                            
    1              0.000002   if &l:foldmethod ==# 'expr' && foldlevel('.') != 0
                                foldopen
                              endif

FUNCTION  neocomplete#helper#is_enabled_source()
Called 20 times
Total time:   0.000554
 Self time:   0.000245

count  total (s)   self (s)
   20   0.000099   0.000087   let source = type(a:source) == type('') ? get(neocomplete#variables#get_sources(), a:source, {}) : a:source
                            
   20   0.000441   0.000144   return !empty(source) && (empty(source.filetypes) ||     neocomplete#helper#check_filetype(source.filetypes))  && (!get(source.disabled_filetypes, '_', 0) &&      !neocomplete#helper#check_filetype(source.disabled_filetypes))

FUNCTION  unite#handlers#_restore_updatetime()
Called 1 time
Total time:   0.000031
 Self time:   0.000016

count  total (s)   self (s)
    1   0.000022   0.000007   let unite = unite#get_current_unite()
                            
    1              0.000002   if !has_key(unite, 'update_time_save')
                                return
                              endif
                            
    1              0.000003   if unite.context.update_time > 0 && &updatetime < unite.update_time_save
                                let &updatetime = unite.update_time_save
                              endif

FUNCTION  <SNR>139_buffer_getvar()
Called 5 times
Total time:   0.000015
 Self time:   0.000015

count  total (s)   self (s)
    5              0.000013   return getbufvar(self['#'],a:var)

FUNCTION  over#unsetup()
Called 1 time
Total time:   0.000057
 Self time:   0.000057

count  total (s)   self (s)
    1              0.000002 	augroup over-cmdwindow
    1              0.000054 		autocmd!
    1              0.000001 	augroup END

FUNCTION  <SNR>404_is_enable_switch_CursorMoved_i()
Called 3 times
Total time:   0.000023
 Self time:   0.000023

count  total (s)   self (s)
    3              0.000022 	return (get(g:precious_enable_switch_CursorMoved_i, "*", 1)		 || get(g:precious_enable_switch_CursorMoved_i, a:filetype, 0))		 && get(g:precious_enable_switch_CursorMoved_i, a:filetype, 1)

FUNCTION  <SNR>409_get_nest_impl()
Called 17 times
Total time:   0.005196
 Self time:   0.000214

count  total (s)   self (s)
   17   0.005083   0.000101   let context = s:get_context(a:filetype, a:context_filetypes, a:prev_context.range)
   17              0.000035   if context.range != s:null_range && context.filetype !=# a:filetype
                                return s:get_nest_impl(context.filetype, a:context_filetypes, context)
                              else
   17              0.000020     return a:prev_context
                              endif

FUNCTION  neobundle#util#get_filetypes()
Called 1 time
Total time:   0.000012
 Self time:   0.000012

count  total (s)   self (s)
    1              0.000006   let filetype = exists('b:neocomplcache.context_filetype') ? b:neocomplcache.context_filetype : &filetype
    1              0.000006   return split(filetype, '\.')

FUNCTION  <SNR>160_InitColor()
Called 1 time
Total time:   0.000066
 Self time:   0.000066

count  total (s)   self (s)
    1              0.000002     if ! g:indentLine_setColors
                                    return
                                endif
                            
    1              0.000004     if ! exists("g:indentLine_color_term")
                                    if &background ==# "light"
                                        let term_color = 249
                                    else
                                        let term_color = 239
                                    endif
                                else
    1              0.000002         let term_color = g:indentLine_color_term
    1              0.000000     endif
                            
    1              0.000002     if ! exists("g:indentLine_color_gui")
    1              0.000001         if &background ==# "light"
                                        let gui_color = "Grey70"
                                    else
    1              0.000001             let gui_color = "Grey30"
    1              0.000001         endif
    1              0.000000     else
                                    let gui_color = g:indentLine_color_gui
                                endif
                            
    1              0.000016     execute "highlight Conceal ctermfg=" . term_color . " ctermbg=NONE"
    1              0.000012     execute "highlight Conceal guifg=" . gui_color .  " guibg=NONE"
                            
    1              0.000001     if &term ==# "linux"
                                    if &background ==# "light"
                                        let tty_color = exists("g:indentLine_color_tty_light") ? g:indentLine_color_tty_light : 4
                                    else
                                        let tty_color = exists("g:indentLine_color_tty_dark") ? g:indentLine_color_tty_dark : 2
                                    endif
                                    execute "highlight Conceal cterm=bold ctermfg=" . tty_color .  " ctermbg=NONE"
                                endif

FUNCTION  lightline#statusline()
Called 4 times
Total time:   0.003443
 Self time:   0.000047

count  total (s)   self (s)
    4              0.000018   if a:inactive && !has_key(s:highlight, 'inactive') | call lightline#highlight('inactive') | endif
    4   0.003423   0.000027   return s:line(0, a:inactive)

FUNCTION  <SNR>287_encode_list()
Called 1 time
Total time:   0.000030
 Self time:   0.000021

count  total (s)   self (s)
                              " End Of Value
    1              0.000002   let EOV = "\xFF"
                              " EOV, encoded size0, data0, EOV, encoded size1, data1, EOV, ...
    1   0.000026   0.000017   return empty(a:arr) ? '' : (EOV . join(map(copy(a:arr), 's:encode_size(strlen(v:val)) . v:val'), EOV) . EOV)

FUNCTION  <SNR>232_is_file_exist()
Called 500 times
Total time:   0.016549
 Self time:   0.016549

count  total (s)   self (s)
  500              0.014113   let ignore = !empty(g:neomru#file_mru_ignore_pattern) && a:path =~ g:neomru#file_mru_ignore_pattern
  500              0.002194   return !ignore && (getftype(a:path) ==# 'file' || a:path =~ '^\h\w\+:')

FUNCTION  <SNR>435_clean()
Called 1 time
Total time:   0.112289
 Self time:   0.000597

count  total (s)   self (s)
    1   0.111609   0.000007   call neocomplete#helper#clean('buffer_cache')
                              " Remove temporary files
    1   0.000676   0.000586   call map(glob(printf('%s/%d_*', neocomplete#get_data_directory() . '/buffer_temp', getpid()), 1, 1), 'delete(v:val)')

FUNCTION  neocomplete#helper#get_force_omni_complete_pos()
Called 3 times
Total time:   0.001543
 Self time:   0.000090

count  total (s)   self (s)
                              " Check eskk complete length.
    3   0.000024   0.000013   if neocomplete#is_eskk_enabled() && exists('g:eskk#start_completion_length')
                                if !neocomplete#is_eskk_convertion(a:cur_text) || !neocomplete#is_multibyte_input(a:cur_text)
                                  return -1
                                endif
                            
                                let complete_pos = call(&l:omnifunc, [1, ''])
                                let complete_str = a:cur_text[complete_pos :]
                                return (neocomplete#util#mb_strlen(complete_str) >= g:eskk#start_completion_length) ? complete_pos : -1
                              endif
                            
    3   0.001449   0.000017   let filetype = neocomplete#get_context_filetype()
    3              0.000004   let omnifunc = &l:omnifunc
                            
    3   0.000026   0.000016   if neocomplete#helper#check_invalid_omnifunc(omnifunc)
    3              0.000003     return -1
                              endif
                            
                              let pattern = ''
                            
                              if has_key(g:neocomplete#force_omni_input_patterns, omnifunc)
                                let pattern = g:neocomplete#force_omni_input_patterns[omnifunc]
                              elseif filetype != '' && get(g:neocomplete#force_omni_input_patterns, filetype, '') != ''
                                let pattern = g:neocomplete#force_omni_input_patterns[filetype]
                              endif
                            
                              if pattern == ''
                                return -1
                              endif
                            
                              return match(a:cur_text, '\%(' . pattern . '\m\)$')

FUNCTION  neocomplete#helper#get_syn_name()
Called 2 times
Total time:   0.000104
 Self time:   0.000104

count  total (s)   self (s)
    2              0.000103   return len(getline('.')) < 200 ? synIDattr(synIDtrans(synID(line('.'), mode() ==# 'i' ?          col('.')-1 : col('.'), a:is_trans)), 'name') : ''

FUNCTION  <SNR>464__encode_name()
Called 2 times
Total time:   0.000095
 Self time:   0.000048

count  total (s)   self (s)
                              " Check cache directory.
    2              0.000005   if !isdirectory(a:cache_dir)
                                call mkdir(a:cache_dir, 'p')
                              endif
    2              0.000004   let cache_dir = a:cache_dir
    2              0.000014   if cache_dir !~ '/$'
    2              0.000004     let cache_dir .= '/'
    2              0.000002   endif
                            
    2   0.000060   0.000013   return cache_dir . s:_create_hash(cache_dir, a:filename)

FUNCTION  <SNR>98_append()
Called 1 time
Total time:   0.000013
 Self time:   0.000013

count  total (s)   self (s)
    1              0.000002   if &filetype == 'unite'
                                " Ignore unite window.
                                return
                              endif
                            
                              " Save unite window information.
    1              0.000007   let w:unite_window = { 'time' : localtime(), 'cwd' : getcwd(),}

FUNCTION  <SNR>439_make_cache_lines()
Called 3 times
Total time:   0.000354
 Self time:   0.000340

count  total (s)   self (s)
    3              0.000006   let filetype = a:filetype
    3              0.000006   if !has_key(s:member_sources, a:srcname)
                                call s:initialize_source(a:srcname, filetype)
                              endif
                            
    3              0.000015   let prefix = get(g:neocomplete#sources#member#prefix_patterns, filetype, get(g:neocomplete#sources#member#prefix_patterns, '_', ''))
    3              0.000003   if prefix == ''
                                return
                              endif
    3              0.000007   let source = s:member_sources[a:srcname]
    3   0.000029   0.000015   let member_pattern = s:get_member_pattern(filetype)
    3              0.000009   let prefix_pattern = member_pattern . '\m\%(' . prefix . '\m\)'
    3              0.000006   let keyword_pattern = prefix_pattern . member_pattern
                            
                              " Cache member pattern.
    9              0.000009   for line in a:lines
    6              0.000053     let match = match(line, keyword_pattern)
                            
    6              0.000007     while match >= 0 "{{{
                                  let match_str = matchstr(line, '^'.keyword_pattern, match)
                            
                                  " Next match.
                                  let match = matchend(line, prefix_pattern, match)
                            
                                  let member_name = matchstr(match_str, member_pattern . '$')
                                  if member_name == ''
                                    continue
                                  endif
                                  let var_name = match_str[ : -len(member_name)-1]
                            
                                  if !has_key(source.member_cache, var_name)
                                    let source.member_cache[var_name] = {}
                                  endif
                                  if !has_key(source.member_cache[var_name], member_name)
                                    let source.member_cache[var_name][member_name] = 1
                                  endif
                            
                                  let match_str = matchstr(var_name, '^'.keyword_pattern)
                                endwhile"}}}
    6              0.000003   endfor

FUNCTION  <SNR>409_stopline_back()
Called 136 times
Total time:   0.000598
 Self time:   0.000598

count  total (s)   self (s)
  136              0.000348   let stopline_back = line('.') - g:context_filetype#search_offset
  136              0.000197   return (stopline_back <= 1) ? 1 : stopline_back

FUNCTION  <SNR>201_match_files()
Called 12 times
Total time:   0.012561
 Self time:   0.006319

count  total (s)   self (s)
   12              0.000031   if type(a:fname) == type([])
    6              0.000010     let files = []
   12              0.000021     for f in a:fname
    6              0.000019       let files += s:match_files(a:path, f)
    6              0.000023     endfor
    6   0.000144   0.000042     return s:uniq(files)
                              endif
                            
    6              0.000023   let path = escape(a:path, '*?[,')
    6              0.000012   if a:fname[0] == '/'
    6              0.003854     let files = split(globpath(path, '/.*', 1), "\n")         + split(globpath(path, '/*' , 1), "\n")
    6              0.000043     let pat = a:fname[1:]
    6              0.002078     call filter(map(files, 'fnamemodify(v:val, ":t")'), 'v:val =~# pat')
                            
    6              0.000008   else
                                let files = map(split(globpath(path, a:fname, 1), "\n"),               'fnamemodify(v:val, ":t")')
                              endif
                            
    6              0.000023   return filter(map(files, 'a:path . "/" . v:val'), 'filereadable(v:val)')

FUNCTION  <SNR>232_writefile()
Called 2 times
Total time:   0.000841
 Self time:   0.000841

count  total (s)   self (s)
    2              0.000015   let path = fnamemodify(a:path, ':p')
    2              0.000009   if !isdirectory(fnamemodify(path, ':h'))
                                call mkdir(fnamemodify(path, ':h'), 'p')
                              endif
                            
    2              0.000809   call writefile(a:list, path)

FUNCTION  <SNR>139_buffer_spec()
Called 4 times
Total time:   0.000086
 Self time:   0.000044

count  total (s)   self (s)
    4              0.000012     let bufname = bufname(self['#'])
    4   0.000074   0.000032     return s:shellslash(bufname == '' ? '' : fnamemodify(bufname,':p'))

FUNCTION  neocomplete#sources#member#make_cache_current_line()
Called 3 times
Total time:   0.004902
 Self time:   0.000035

count  total (s)   self (s)
    3   0.000020   0.000008   if !neocomplete#is_enabled()
                                call neocomplete#initialize()
                              endif
                            
                              " Make cache from current line.
    3   0.004874   0.000019   return s:make_cache_current_buffer(line('.')-1, line('.')+1)

FUNCTION  precious#base_filetype()
Called 9 times
Total time:   0.000076
 Self time:   0.000076

count  total (s)   self (s)
    9              0.000028 	if !has_key(b:, "precious_base_filetype")
                            		call precious#set_base_filetype(&filetype)
                            	endif
    9              0.000016 	return b:precious_base_filetype

FUNCTION  neocomplete#is_eskk_enabled()
Called 5 times
Total time:   0.000017
 Self time:   0.000017

count  total (s)   self (s)
    5              0.000014   return exists('*eskk#is_enabled') && eskk#is_enabled()

FUNCTION  brightest#on_CursorMoved()
Called 2 times
Total time:   0.000429
 Self time:   0.000078

count  total (s)   self (s)
    2              0.000005 	let s:is_CursorMoved = 1
    2              0.000004 	let mode = mode()
                            
    2   0.000019   0.000011 	if s:is_enable_on_cursorhold() && g:brightest#enable_clear_highlight_on_CursorMoved
                            		call brightest#hl_clear()
                            	endif
    2   0.000031   0.000017 	if s:is_enable() && !s:is_enable_on_cursorhold()
    2   0.000338   0.000009 		call brightest#highlighting()
    2              0.000001 	endif
                            
                            	" Workaround : visual mode to normal mode
                            	" https://github.com/osyo-manga/vim-brightest/issues/13
    2              0.000019 	if mode =~# "[\<C-v>vV]" && mode != mode()	&& g:brightest#enable_highlight_all_window
                            		normal! gv
                            	endif

FUNCTION  anzu#search_status()
Called 32 times
Total time:   0.000255
 Self time:   0.000255

count  total (s)   self (s)
   32              0.000242 	return substitute(s:status_cache, '<anzustatushighlight>.\{-}<\/anzustatushighlight>', "", "g")

FUNCTION  unite#view#_clear_match()
Called 2 times
Total time:   0.000010
 Self time:   0.000010

count  total (s)   self (s)
    2              0.000003   if &filetype ==# 'unite'
                                setlocal nocursorline
                              endif

FUNCTION  <SNR>435_check_changed_buffer()
Called 2 times
Total time:   0.000040
 Self time:   0.000040

count  total (s)   self (s)
    2              0.000006   let source = s:buffer_sources[a:bufnr]
                            
    2              0.000006   let ft = getbufvar(a:bufnr, '&filetype')
    2              0.000002   if ft == ''
                                let ft = 'nothing'
                              endif
                            
    2              0.000007   let filename = fnamemodify(bufname(a:bufnr), ':t')
    2              0.000003   if filename == ''
                                let filename = '[No Name]'
                              endif
                            
    2              0.000006   return source.name != filename || source.filetype != ft

FUNCTION  MyReadonly()
Called 17 times
Total time:   0.000226
 Self time:   0.000226

count  total (s)   self (s)
   17              0.000218     return &ft !~? 'help\|vimfiler\|gundo' && &readonly ? 'x' : ''

FUNCTION  <SNR>561__vital_incsearch_of()
Called 100 times
Total time:   0.041596
 Self time:   0.001324

count  total (s)   self (s)
  100   0.001472   0.000363   let V = vital#incsearch#of()
  100   0.039008   0.000413   call V.load('Data.List')
  100   0.001082   0.000514   call V.unload()

FUNCTION  lightline#link()
Called 9 times
Total time:   0.001081
 Self time:   0.001081

count  total (s)   self (s)
    9              0.000089   let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
    9              0.000036   if s:mode == mode | return '' | endif
    1              0.000003   let s:mode = mode
    1              0.000004   if !has_key(s:highlight, mode) | call lightline#highlight(mode) | endif
    1              0.000007   let [left, right, types] = [s:lightline.active.left, s:lightline.active.right, values(s:lightline.component_type)]
    3              0.000007   for i in range(len(left))
    2              0.000039     exec printf('hi link LightLineLeft_active_%d LightLineLeft_%s_%d', i, mode, i)
    2              0.000037     exec printf('hi link LightLineLeft_active_%d_%d LightLineLeft_%s_%d_%d', i, i + 1, mode, i, i + 1)
    6              0.000006     for j in types
    4              0.000066       exec printf('hi link LightLineLeft_active_%d_%s LightLineLeft_%s_%d_%s', i, j, mode, i, j)
    4              0.000065       exec printf('hi link LightLineLeft_active_%s_%d LightLineLeft_%s_%s_%d', j, i, mode, j, i)
    4              0.000003     endfor
    2              0.000001   endfor
    1              0.000013   exec printf('hi link LightLineMiddle_active LightLineMiddle_%s', mode)
    3              0.000003   for i in range(len(right))
    2              0.000032     exec printf('hi link LightLineRight_active_%d LightLineRight_%s_%d', i, mode, i)
    2              0.000033     exec printf('hi link LightLineRight_active_%d_%d LightLineRight_%s_%d_%d', i, i + 1, mode, i, i + 1)
    6              0.000005     for j in types
    4              0.000063       exec printf('hi link LightLineRight_active_%d_%s LightLineRight_%s_%d_%s', i, j, mode, i, j)
    4              0.000061       exec printf('hi link LightLineRight_active_%s_%d LightLineRight_%s_%s_%d', j, i, mode, j, i)
    4              0.000001     endfor
    2              0.000002   endfor
    3              0.000003   for j in types
    2              0.000028     exec printf('hi link LightLineLeft_active_%s LightLineLeft_%s_%s', j, mode, j)
    2              0.000036     exec printf('hi link LightLineRight_active_%s LightLineRight_%s_%s', j, mode, j)
    2              0.000033     exec printf('hi link LightLineLeft_active_%s_%d LightLineLeft_%s_%s_%d', j, len(left), mode, j, len(left))
    2              0.000030     exec printf('hi link LightLineLeft_active_%d_%s LightLineLeft_%s_%d_%s', len(left), j, mode, len(left), j)
    2              0.000030     exec printf('hi link LightLineRight_active_%s_%d LightLineRight_%s_%s_%d', j, len(right), mode, j, len(right))
    2              0.000031     exec printf('hi link LightLineRight_active_%d_%s LightLineRight_%s_%d_%s', len(right), j, mode, len(right), j)
    6              0.000008     for k in types
    4              0.000054       exec printf('hi link LightLineLeft_active_%s_%s LightLineLeft_%s_%s_%s', j, k, mode, j, k)
    4              0.000053       exec printf('hi link LightLineLeft_active_%s_%s LightLineLeft_%s_%s_%s', k, j, mode, k, j)
    4              0.000053       exec printf('hi link LightLineRight_active_%s_%s LightLineRight_%s_%s_%s', j, k, mode, j, k)
    4              0.000051       exec printf('hi link LightLineRight_active_%s_%s LightLineRight_%s_%s_%s', k, j, mode, k, j)
    4              0.000002     endfor
    2              0.000000   endfor
    1              0.000001   return ''

FUNCTION  neocomplete#context_filetype#set()
Called 7 times
Total time:   0.010026
 Self time:   0.000177

count  total (s)   self (s)
    7   0.000078   0.000025   let neocomplete = neocomplete#get_current_neocomplete()
    7   0.004847   0.000033   let context_filetype = s:exists_context_filetype ? context_filetype#get_filetype() : &filetype
    7              0.000007   if context_filetype == ''
                                let context_filetype = 'nothing'
                              endif
    7              0.000013   let neocomplete.context_filetype = context_filetype
    7   0.005051   0.000069   let neocomplete.context_filetypes = s:exists_context_filetype ?  context_filetype#get_filetypes(context_filetype) :  [context_filetype] + split(context_filetype, '\.')
                            
    7              0.000008   return neocomplete.context_filetype

FUNCTION  neosnippet#helpers#get_snippets()
Called 1 time
Total time:   0.001951
 Self time:   0.000421

count  total (s)   self (s)
    1   0.000008   0.000003   call neosnippet#init#check()
                            
    1   0.000020   0.000009   let neosnippet = neosnippet#variables#current_neosnippet()
    1              0.000002   let snippets = copy(neosnippet.snippets)
    3   0.001442   0.000018   for filetype in s:get_sources_filetypes(neosnippet#helpers#get_filetype())
    2   0.000066   0.000012     call neosnippet#commands#_make_cache(filetype)
    2   0.000058   0.000050     call extend(snippets, neosnippet#variables#snippets()[filetype])
    2              0.000001   endfor
                            
    1   0.000016   0.000007   let cur_text = neosnippet#util#get_cur_text()
                            
    1              0.000001   if mode() ==# 'i'
                                " Special filters.
    1   0.000026   0.000007     if !s:is_beginning_of_line(cur_text)
                                  call filter(snippets, '!v:val.options.head')
                                endif
    1              0.000000   endif
                            
    1              0.000290   call filter(snippets, "cur_text =~# get(v:val, 'regexp', '')")
                            
    1              0.000003   if exists('b:neosnippet_disable_snippet_triggers')
                                call filter(snippets, "index(b:neosnippet_disable_snippet_triggers, v:val.word) < 0")
                              endif
                            
    1              0.000001   return snippets

FUNCTION  neocomplete#filters#fuzzy_escape()
Called 3 times
Total time:   0.000083
 Self time:   0.000057

count  total (s)   self (s)
                              " Escape string for lua regexp.
    3   0.000055   0.000029   let string = substitute(neocomplete#filters#escape(a:string), '\w', '\0.*', 'g')
    3              0.000012   if g:neocomplete#enable_camel_case && string =~ '\u'
                                let string = substitute(string, '\l', '[\0\u\0\E]', 'g')
                              endif
    3              0.000003   return string

FUNCTION  neocomplete#get_keyword_pattern_end()
Called 11 times
Total time:   0.000377
 Self time:   0.000061

count  total (s)   self (s)
   11   0.000375   0.000059   return '\%('.call('neocomplete#get_keyword_pattern', a:000).'\m\)$'

FUNCTION  recover#CheckSwapFileExists()
Called 2 times
Total time:   0.000008
 Self time:   0.000008

count  total (s)   self (s)
    2              0.000004     if !&swapfile
    2              0.000000 	return
                                endif
                            
                                let swap = s:Swapname()
                                if !empty(swap) && !filereadable(swap)
                            	" previous SwapExists autocommand deleted our swapfile,
                            	" recreate it and avoid E325 Message
                            	call s:SetSwapfile()
                                endif

FUNCTION  neocomplete#within_comment()
Called 1 time
Total time:   0.000008
 Self time:   0.000002

count  total (s)   self (s)
    1   0.000008   0.000002   return neocomplete#get_current_neocomplete().within_comment

FUNCTION  localrc#load()
Called 1 time
Total time:   0.006626
 Self time:   0.000019

count  total (s)   self (s)
    1   0.006622   0.000015   for file in localrc#search(a:fnames,                          1 <= a:0 ? a:1 : expand('%:p:h'),                          2 <= a:0 ? a:2 : -1)
                                " XXX: Handle error?
                                source `=file`
                              endfor

FUNCTION  <SNR>139_winshell()
Called 6 times
Total time:   0.000030
 Self time:   0.000030

count  total (s)   self (s)
    6              0.000029   return &shell =~? 'cmd' || exists('+shellslash') && !&shellslash

FUNCTION  <SNR>139_repo_head_ref()
Called 18 times
Total time:   0.000578
 Self time:   0.000431

count  total (s)   self (s)
   18   0.000280   0.000194   if !filereadable(self.dir('HEAD'))
                                return ''
                              endif
   18   0.000260   0.000199   return readfile(self.dir('HEAD'))[0]

FUNCTION  unite#get_current_unite()
Called 3 times
Total time:   0.000033
 Self time:   0.000016

count  total (s)   self (s)
    3   0.000033   0.000016   return exists('b:unite') && !unite#variables#use_current_unite() ? b:unite : unite#variables#current_unite()

FUNCTION  <SNR>405_prev_context_filetype()
Called 2 times
Total time:   0.000027
 Self time:   0.000021

count  total (s)   self (s)
    2              0.000007 	if !exists("b:precious_prev_context_filetype")
    1   0.000011   0.000005 		let b:precious_prev_context_filetype = precious#base_filetype()
    1              0.000001 	endif
    2              0.000003 	return b:precious_prev_context_filetype

FUNCTION  <SNR>253_get_prelude()
Called 1 time
Total time:   0.000007
 Self time:   0.000007

count  total (s)   self (s)
    1              0.000002   if !exists('s:Prelude')
                                let s:Prelude = vimfiler#util#get_vital().import('Prelude')
                              endif
    1              0.000001   return s:Prelude

FUNCTION  <SNR>160_IndentLinesEnable()
Called 1 time
Total time:   0.000297
 Self time:   0.000274

count  total (s)   self (s)
    1              0.000008     if exists("b:indentLine_enabled") && b:indentLine_enabled
                                    return
                                else
    1              0.000004         let b:indentLine_enabled = 1
    1              0.000000     endif
    1   0.000033   0.000010     call s:SetConcealOption()
                            
    1              0.000004     let space = &l:shiftwidth is 0 ? &l:tabstop : &l:shiftwidth
                            
    1              0.000002     if g:indentLine_showFirstIndentLevel
                                    execute 'syntax match IndentLine /^ / containedin=ALL conceal cchar=' . g:indentLine_first_char
                                endif
                            
    1              0.000001     if g:indentLine_faster
                                    execute 'syntax match IndentLineSpace /^\s\+/ containedin=ALL contains=IndentLine'
                                    execute 'syntax match IndentLine / \{'.(space-1).'}\zs / contained conceal cchar=' . g:indentLine_char
                                    execute 'syntax match IndentLine /\t\zs / contained conceal cchar=' . g:indentLine_char
                                else
    1              0.000004         let pattern = line('$') < g:indentLine_maxLines ? 'v' : 'c'
   11              0.000017         for i in range(space+1, space * g:indentLine_indentLevel + 1, space)
   10              0.000192             execute 'syntax match IndentLine /\%(^\s\+\)\@<=\%'.i.pattern.' / containedin=ALL conceal cchar=' . g:indentLine_char
   10              0.000007         endfor
    1              0.000001     endif

FUNCTION  neosnippet#variables#snippets()
Called 5 times
Total time:   0.000023
 Self time:   0.000023

count  total (s)   self (s)
    5              0.000009   if !exists('s:snippets')
                                let s:snippets= {}
                              endif
                            
    5              0.000005   return s:snippets

FUNCTION  <SNR>489_Getlist()
Called 4 times
Total time:   0.000039
 Self time:   0.000039

count  total (s)   self (s)
    4              0.000006 	if a:type == 'qf'
    2              0.000013 		return getqflist()
                            	else
    2              0.000004 		return getloclist(a:winnr)
                            	endif

FUNCTION  <SNR>409_file_range()
Called 17 times
Total time:   0.000081
 Self time:   0.000081

count  total (s)   self (s)
   17              0.000074   return [[1, 1], [line('$'), len(getline('$'))+1]]

FUNCTION  <SNR>287_encode_size()
Called 1 time
Total time:   0.000009
 Self time:   0.000009

count  total (s)   self (s)
                              " Set each bit7 to 1 in order to avoid NUL byte.
    1              0.000008   return printf("%c%c%c%c%c", ((a:n / 0x10000000) % 0x80) + 0x80, ((a:n / 0x200000) % 0x80) + 0x80, ((a:n / 0x4000) % 0x80) + 0x80, ((a:n / 0x80) % 0x80) + 0x80, ( a:n % 0x80) + 0x80)

FUNCTION  unite#view#_clear_match_highlight()
Called 2 times
Total time:   0.000013
 Self time:   0.000013

count  total (s)   self (s)
    2              0.000012   silent! call matchdelete(10)

FUNCTION  precious#set_base_filetype()
Called 1 time
Total time:   0.000004
 Self time:   0.000004

count  total (s)   self (s)
    1              0.000002 	let b:precious_base_filetype = a:filetype

FUNCTION  <SNR>203_default()
Called 2 times
Total time:   0.000016
 Self time:   0.000016

count  total (s)   self (s)
    2              0.000013 	return get(b:, "brightest_highlight", extend(copy(s:highlight_default), g:brightest#highlight))

FUNCTION  <SNR>440_set_complete_results_pos()
Called 2 times
Total time:   0.000071
 Self time:   0.000071

count  total (s)   self (s)
                              " Try omnifunc completion. "{{{
    2              0.000004   let complete_results = {}
    2              0.000003   for [omnifunc, pattern] in a:funcs
                                if neocomplete#is_auto_complete() && (pattern == ''     || a:cur_text !~# '\%(' . pattern . '\m\)$')
                                  continue
                                endif
                            
                                " Save pos.
                                let pos = getpos('.')
                            
                                try
                                  let complete_pos = call(omnifunc, [1, ''])
                                catch
                                  call neocomplete#print_error( 'Error occurred calling omnifunction: ' . omnifunc)
                                  call neocomplete#print_error(v:throwpoint)
                                  call neocomplete#print_error(v:exception)
                                  let complete_pos = -1
                                finally
                                  if getpos('.') != pos
                                    call setpos('.', pos)
                                  endif
                                endtry
                            
                                if complete_pos < 0
                                  continue
                                endif
                            
                                let complete_str = a:cur_text[complete_pos :]
                            
                                let complete_results[omnifunc] = { 'candidates' : [], 'complete_pos' : complete_pos, 'complete_str' : complete_str, 'omnifunc' : omnifunc,}
                              endfor
                              "}}}
                            
    2              0.000003   return complete_results

FUNCTION  <SNR>409_get_filetypes()
Called 17 times
Total time:   0.000152
 Self time:   0.000152

count  total (s)   self (s)
   17              0.000135   return extend(extend( copy(s:default_filetypes), g:context_filetype#filetypes), a:filetypes)

FUNCTION  <SNR>435_should_create_cache()
Called 3 times
Total time:   0.000067
 Self time:   0.000067

count  total (s)   self (s)
    3              0.000031   let filepath = fnamemodify(bufname(a:bufnr), ':p')
    3              0.000034   return getfsize(filepath) < g:neocomplete#sources#buffer#cache_limit_size && getbufvar(a:bufnr, '&modifiable') && !getwinvar(bufwinnr(a:bufnr), '&previewwindow') && (g:neocomplete#sources#buffer#disabled_pattern == ''  || filepath !~# g:neocomplete#sources#buffer#disabled_pattern)

FUNCTION  <SNR>486_set_options()
Called 1 time
Total time:   0.000011
 Self time:   0.000011

count  total (s)   self (s)
    1              0.000002 	if s:search_highlighted
                            		let s:search_highlighted = 0
                            		return
                            	endif
                            
    1              0.000002 	let s:old_incsearch = &incsearch
    1              0.000002 	let s:old_hlsearch  = &hlsearch
    1              0.000002 	let s:old_search_pattern = @/

FUNCTION  neobundle#config#get_autoload_bundles()
Called 2 times
Total time:   0.000733
 Self time:   0.000733

count  total (s)   self (s)
    2              0.000732   return filter(values(s:neobundles), "!v:val.sourced && v:val.lazy && !v:val.disabled")

FUNCTION  neocomplete#helper#get_cur_text()
Called 3 times
Total time:   0.000147
 Self time:   0.000131

count  total (s)   self (s)
    3   0.000027   0.000011   let neocomplete = neocomplete#get_current_neocomplete()
    3              0.000008   let is_skip_char = get(a:000, 0, 0)
                            
    3              0.000032   let cur_text = ((neocomplete.event ==# 'InsertEnter' || mode() ==# 'i') ?   (col('.')-1) : col('.')) >= len(getline('.')) ?      getline('.') :      matchstr(getline('.'),         '^.*\%' . (mode() ==# 'i' && !is_skip_char ?                    col('.') : col('.') - 1)         . 'c' . (mode() ==# 'i' ? '' : '.'))
                            
    3              0.000019   if cur_text =~ '^.\{-}\ze\S\+$'
    2              0.000011     let complete_str = matchstr(cur_text, '\S\+$')
    2              0.000009     let cur_text = matchstr(cur_text, '^.\{-}\ze\S\+$')
    2              0.000001   else
    1              0.000002     let complete_str = ''
    1              0.000000   endif
                            
    3              0.000004   if neocomplete.event ==# 'InsertCharPre'
                                let complete_str .= v:char
                              endif
                            
    3              0.000007   let neocomplete.cur_text = cur_text . complete_str
                            
                              " Save cur_text.
    3              0.000003   return neocomplete.cur_text

FUNCTION  neocomplete#cache#check_cache()
Called 2 times
Total time:   0.000061
 Self time:   0.000061

count  total (s)   self (s)
    2              0.000004   if !has_key(a:async_cache_dictionary, a:key)
                                return
                              endif
                            
    2              0.000006   let cache_list = a:async_cache_dictionary[a:key]
                            
    2              0.000004   if !has_key(a:keyword_cache, a:key)
    2              0.000006     let a:keyword_cache[a:key] = []
    2              0.000002   endif
    2              0.000008   for cache in filter(copy(cache_list), 'filereadable(v:val.cachename)')
                                let a:keyword_cache[a:key] += neocomplete#cache#load_from_cache( a:cache_dir, cache.filename, a:is_string)
                              endfor
                            
    2              0.000005   call filter(cache_list, '!filereadable(v:val.cachename)')
                            
    2              0.000002   if empty(cache_list)
                                " Delete from dictionary.
    2              0.000006     call remove(a:async_cache_dictionary, a:key)
    2              0.000002     return
                              endif

FUNCTION  <SNR>464__create_hash()
Called 2 times
Total time:   0.000047
 Self time:   0.000047

count  total (s)   self (s)
    2              0.000006   if len(a:dir) + len(a:str) < 150
    2              0.000032     let hash = substitute(substitute( a:str, ':', '=-', 'g'), '[/\\]', '=+', 'g')
    2              0.000002   else
                                let hash = s:S.hash(a:str)
                              endif
                            
    2              0.000002   return hash

FUNCTION  <SNR>443_check_fallback()
Called 2 times
Total time:   0.000054
 Self time:   0.000042

count  total (s)   self (s)
    2              0.000004   let cur_text = a:cur_text
    2              0.000014   let complete_pos = match(cur_text, '\h\w*$')
    2   0.000019   0.000007   let neocomplete = neocomplete#get_current_neocomplete()
    2              0.000012   if empty(g:neocomplete#fallback_mappings) || len(matchstr(cur_text, '\h\w*$'))   < g:neocomplete#auto_completion_start_length || neocomplete.skip_next_complete || neocomplete#complete#_check_previous_position(      cur_text, complete_pos)
    2              0.000001     return
                              endif
                            
                              let key = ''
                              for i in range(0, len(g:neocomplete#fallback_mappings)-1)
                                let key .= '<C-r>=neocomplete#mappings#fallback(' . i . ')<CR>'
                              endfor
                              execute 'inoremap <silent> <Plug>(neocomplete_fallback)' key
                            
                              " Fallback
                              call s:complete_key("\<Plug>(neocomplete_fallback)")

FUNCTION  <SNR>436_make_cache()
Called 2 times
Total time:   0.000015
 Self time:   0.000015

count  total (s)   self (s)
    2              0.000008   if !has_key(s:dictionary_cache, a:filetype) && !has_key(s:async_dictionary_list, a:filetype)
                                call neocomplete#sources#dictionary#remake_cache(a:filetype)
                              endif

FUNCTION  <SNR>409_get_same_filetypes()
Called 8 times
Total time:   0.000192
 Self time:   0.000192

count  total (s)   self (s)
    8              0.000140   let same_filetypes = extend(copy(s:default_same_filetypes), g:context_filetype#same_filetypes)
    8              0.000048   return split(get(same_filetypes, a:filetype, get(same_filetypes, '_', '')), ',')

FUNCTION  <SNR>165_line()
Called 4 times
Total time:   0.003396
 Self time:   0.001684

count  total (s)   self (s)
    4              0.000010   let _ = a:tabline ? '' : '%{lightline#link()}'
    4              0.000016   if s:lightline.palette == {} | call lightline#colorscheme() | endif
    4              0.000022   let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
    4              0.000017   let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
    4              0.000014   let [c, f, t] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type]
    4              0.000011   let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
    4              0.000018   let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
    4   0.000827   0.000031   let [ll, lc, lt] = s:expand(copy(l_))
    4              0.000016   let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
    4   0.000554   0.000029   let [rl, rc, rt] = s:expand(copy(r_))
   11              0.000015   for i in range(len(lt))
    7              0.000036     let _ .= printf('%%#LightLineLeft_%s_%s#', mode, ll[i])
   26              0.000029     for j in range(len(lt[i]))
   19              0.000261       let x = substitute('%( '.(lc[i][j] ? lt[i][j] : has_key(f,lt[i][j])?'%{exists("*'.f[lt[i][j]].'")?'.f[lt[i][j]].'():""}':get(c,lt[i][j],'')).' %)', '^%(  %)', '', '')
   19              0.000111       let _ .= has_key(t,lt[i][j])&&t[lt[i][j]]==#'raw'&&strlen(x)>7 ? x[3:-4] : x
   37   0.000572   0.000181       if j < len(lt[i]) - 1 | let _ .= s:subseparator(lt[i][j], lt[i][j+1:], s.left, lc[i][j], lc[i][j+1:]) | endif
   19              0.000011     endfor
    7              0.000091     let _ .= printf('%%#LightLineLeft_%s_%s_%s#', mode, ll[i], ll[i + 1]) . (i < l + len(lt) - len(l_) && ll[i] < l || type(ll[i]) != type(ll[i + 1]) || type(ll[i]) && type(ll[i + 1]) && ll[i] != ll[i + 1] ? p.left : len(lt[i]) ? s.left : '')
    7              0.000006   endfor
    4              0.000015   let _ .= printf('%%#LightLineMiddle_%s#%%=', mode)
   12              0.000018   for i in reverse(range(len(rt)))
    8              0.000085     let _ .= printf('%%#LightLineRight_%s_%s_%s#', mode, rl[i], rl[i + 1]) . (i < r + len(rt) - len(r_) && rl[i] < r || type(rl[i]) != type(rl[i + 1]) || type(rl[i]) && type(rl[i + 1]) && rl[i] != rl[i + 1] ? p.right : len(rt[i]) ? s.right : '')
    8              0.000030     let _ .= printf('%%#LightLineRight_%s_%s#', mode, rl[i])
   16              0.000023     for j in range(len(rt[i]))
    8              0.000019       if j | let _ .= s:subseparator(rt[i][j], rt[i][:j-1], s.right, rc[i][j], rc[i][:j-1]) | endif
    8              0.000097       let x = substitute('%( '.(rc[i][j] ? rt[i][j] : has_key(f,rt[i][j])?'%{exists("*'.f[rt[i][j]].'")?'.f[rt[i][j]].'():""}':get(c,rt[i][j],'')).' %)', '^%(  %)', '', '')
    8              0.000038       let _ .= has_key(t,rt[i][j])&&t[rt[i][j]]==#'raw'&&strlen(x)>7 ? x[3:-4] : x
    8              0.000006     endfor
    8              0.000005   endfor
    4              0.000005   return _

FUNCTION  lightline#update_once()
Called 5 times
Total time:   0.001037
 Self time:   0.000046

count  total (s)   self (s)
    5   0.001031   0.000040   if !exists('w:lightline') || w:lightline | call lightline#update() | endif

FUNCTION  neocomplete#handler#_on_insert_char_pre()
Called 2 times
Total time:   0.000170
 Self time:   0.000053

count  total (s)   self (s)
    2   0.000116   0.000012   if neocomplete#is_cache_disabled()
                                return
                              endif
                            
    2   0.000024   0.000011   let neocomplete = neocomplete#get_current_neocomplete()
    2              0.000008   if neocomplete.old_char != ' ' && v:char == ' ' && v:count == 0
                                call s:make_cache_current_line()
                              endif
                            
    2              0.000006   let neocomplete.old_char = v:char

FUNCTION  <SNR>31_SynSet()
Called 1 time
Total time:   0.022816
 Self time:   0.002534

count  total (s)   self (s)
                              " clear syntax for :set syntax=OFF  and any syntax name that doesn't exist
    1              0.000004   syn clear
    1              0.000002   if exists("b:current_syntax")
                                unlet b:current_syntax
                              endif
                            
    1              0.000003   let s = expand("<amatch>")
    1              0.000002   if s == "ON"
                                " :set syntax=ON
                                if &filetype == ""
                                  echohl ErrorMsg
                                  echo "filetype unknown"
                                  echohl None
                                endif
                                let s = &filetype
                              elseif s == "OFF"
                                let s = ""
                              endif
                            
    1              0.000001   if s != ""
                                " Load the syntax file(s).  When there are several, separated by dots,
                                " load each in sequence.
    2              0.000011     for name in split(s, '\.')
    1   0.022772   0.002490       exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim"
    1              0.000001     endfor
    1              0.000000   endif

FUNCTION  neocomplete#init#_sources()
Called 1 time
Total time:   0.000015
 Self time:   0.000015

count  total (s)   self (s)
    1              0.000003   if !exists('s:loaded_source_files')
                                " Initialize.
                                let s:loaded_source_files = {}
                                let s:loaded_all_sources = 0
                                let s:runtimepath_save = ''
                              endif
                            
                              " Initialize sources table.
    1              0.000006   if s:loaded_all_sources && &runtimepath ==# s:runtimepath_save
    1              0.000001     return
                              endif
                            
                              let runtimepath_save = neocomplete#util#split_rtp(s:runtimepath_save)
                              let runtimepath = neocomplete#util#join_rtp( filter(neocomplete#util#split_rtp(), 'index(runtimepath_save, v:val) < 0'))
                              let sources = neocomplete#variables#get_sources()
                            
                              for name in filter(copy(a:names), '!has_key(sources, v:val)')
                                " Search autoload.
                                for source_name in map(filter(split(globpath(runtimepath, 'autoload/neocomplete/sources/*.vim'), '\n'), "index(g:neocomplete#ignore_source_files,        fnamemodify(v:val, ':t')) < 0"), "fnamemodify(v:val, ':t:r')")
                                  if has_key(s:loaded_source_files, source_name)
                                    continue
                                  endif
                            
                                  let s:loaded_source_files[source_name] = 1
                            
                                  let source = neocomplete#sources#{source_name}#define()
                                  if empty(source)
                                    " Ignore.
                                    continue
                                  endif
                            
                                  call neocomplete#define_source(source)
                                endfor
                            
                                if name == '_'
                                  let s:loaded_all_sources = 1
                                  let s:runtimepath_save = &runtimepath
                                endif
                              endfor

FUNCTION  <SNR>409_get_nest()
Called 17 times
Total time:   0.010860
 Self time:   0.000242

count  total (s)   self (s)
   17   0.005557   0.000135   let context = s:get_context(a:filetype, a:context_filetypes, s:file_range())
   17   0.005294   0.000098   return s:get_nest_impl(context.filetype, a:context_filetypes, context)

FUNCTION  <SNR>484_use_previous_result()
Called 23 times
Total time:   0.000504
 Self time:   0.000378

count  total (s)   self (s)
   23   0.000199   0.000073   let neocomplete = neocomplete#get_current_neocomplete()
   23              0.000291   return !a:source.is_volatile && substitute(a:context.input, '\w\+$', '', '')    ==# substitute(a:context.prev_line, '\w\+$', '', '') && stridx(a:context.input, a:context.prev_line) == 0 && !empty(a:context.prev_candidates) && line('.') == neocomplete.old_linenr

FUNCTION  <SNR>232_uniq_by()
Called 2 times
Total time:   0.014171
 Self time:   0.014171

count  total (s)   self (s)
    2              0.002434   let list = map(copy(a:list), printf('[v:val, %s]', a:f))
    2              0.000004   let i = 0
    2              0.000002   let seen = {}
 1027              0.001137   while i < len(list)
 1025              0.002991     let key = string(list[i][1])
 1025              0.001478     if has_key(seen, key)
                                  call remove(list, i)
                                else
 1025              0.001822       let seen[key] = 1
 1025              0.000887       let i += 1
 1025              0.000435     endif
 1025              0.000511   endwhile
    2              0.000662   return map(list, 'v:val[0]')

FUNCTION  <SNR>139_buffer_commit()
Called 1 time
Total time:   0.000038
 Self time:   0.000013

count  total (s)   self (s)
    1   0.000037   0.000012   return matchstr(self.spec(),'^fugitive://.\{-\}//\zs\w*')

FUNCTION  MyFiletype()
Called 8 times
Total time:   0.000038
 Self time:   0.000038

count  total (s)   self (s)
    8              0.000032     return winwidth('.') > 70 ? (strlen(&filetype) ? &filetype : 'no ft') : ''

FUNCTION  neocomplete#helper#call_hook()
Called 1 time
Total time:   0.000181
 Self time:   0.000159

count  total (s)   self (s)
   10   0.000016   0.000012   for source in neocomplete#util#convert2list(a:sources)
    9              0.000007     try
    9              0.000018       if has_key(source.hooks, a:hook_name)
    3   0.000040   0.000022         call call(source.hooks[a:hook_name], [extend(source.neocomplete__context, a:context)], source.hooks)
    3              0.000001       endif
    9              0.000005     catch
                                  call neocomplete#print_error(v:throwpoint)
                                  call neocomplete#print_error(v:exception)
                                  call neocomplete#print_error( 'Error occurred in calling hook "' . a:hook_name . '"!')
                                  call neocomplete#print_error( 'Source name is ' . source.name)
                                endtry
    9              0.000005   endfor

FUNCTION  <SNR>58_browse_check()
Called 1 time
Total time:   0.000249
 Self time:   0.000214

count  total (s)   self (s)
    1              0.000005   if !g:vimfiler_as_default_explorer || bufnr('%') != expand('<abuf>') || a:path == ''
                                return
                              endif
                            
                              " Disable netrw.
    1              0.000003   augroup FileExplorer
    1              0.000182     autocmd!
    1              0.000001   augroup END
                            
    1              0.000002   let path = a:path
                              " For ":edit ~".
    1              0.000002   if fnamemodify(path, ':t') ==# '~'
                                let path = '~'
                              endif
                            
    1              0.000002   if &filetype ==# 'vimfiler' && line('$') != 1
                                return
                              endif
                            
    1   0.000044   0.000009   if isdirectory(vimfiler#util#expand(path))
                                call vimfiler#handler#_event_handler('BufReadCmd')
                              endif

FUNCTION  neocomplete#helper#clear_result()
Called 5 times
Total time:   0.000113
 Self time:   0.000081

count  total (s)   self (s)
    5   0.000050   0.000018   let neocomplete = neocomplete#get_current_neocomplete()
                            
    5              0.000009   let neocomplete.complete_str = ''
    5              0.000009   let neocomplete.candidates = []
    5              0.000005   let neocomplete.complete_sources = []
    5              0.000008   let neocomplete.complete_pos = -1
                            
                              " Restore completeopt.
    5              0.000009   if neocomplete.completeopt !=# &completeopt
                                " Restore completeopt.
                                let &completeopt = neocomplete.completeopt
                              endif

FUNCTION  <SNR>209_hl_list()
Called 4 times
Total time:   0.000034
 Self time:   0.000023

count  total (s)   self (s)
    4   0.000033   0.000022  return call(s:global.hl_list, a:000, s:global) 

FUNCTION  neocomplete#variables#get_filters()
Called 1 time
Total time:   0.000006
 Self time:   0.000006

count  total (s)   self (s)
    1              0.000002   if !exists('s:filters')
                                let s:filters = {}
                              endif
    1              0.000001   return s:filters

FUNCTION  <SNR>65__reloadhistory()
Called 1 time
Total time:   0.000046
 Self time:   0.000046

count  total (s)   self (s)
    1              0.000002   if g:yankround_dir==''
                                return
                              end
    1              0.000029   let path = expand(g:yankround_dir). '/history'
    1              0.000012   if !filereadable(path) || getftime(path) <= s:_histfilever
    1              0.000001     return
                              end
                              let g:_yankround_cache = readfile(path)
                              let s:_histfilever = getftime(path)

FUNCTION  <SNR>435_check_source()
Called 1 time
Total time:   0.000099
 Self time:   0.000078

count  total (s)   self (s)
                              " Check new buffer.
    1   0.000090   0.000069   call map(filter(range(1, bufnr('$')), " (v:val != bufnr('%') || neocomplete#has_vimproc()) && (!has_key(s:buffer_sources, v:val) && buflisted(v:val)   || (has_key(s:buffer_sources, v:val) &&     s:buffer_sources[v:val].cached_time         < getftime(s:buffer_sources[v:val].path))) && (!neocomplete#is_locked(v:val) ||    g:neocomplete#disable_auto_complete) && s:should_create_cache(v:val) "), 's:make_cache_file(v:val)')
                            
                              " Remove unlisted buffers.
    1              0.000006   call filter(s:buffer_sources, "v:key == bufnr('%') || buflisted(str2nr(v:key))")

FUNCTION  <SNR>409_search_range()
Called 136 times
Total time:   0.004957
 Self time:   0.003592

count  total (s)   self (s)
  136   0.001227   0.000460   let stopline_forward = s:stopline_forward()
  136   0.001030   0.000432   let stopline_back    = s:stopline_back()
                            
  136              0.002198   let start = searchpos(a:start_pattern, 'bnceW', stopline_back)
  136              0.000195   if start == s:null_pos
  136              0.000141     return s:null_range
                              endif
                              let start[1] += 1
                            
                              let end_pattern = a:end_pattern
                              if end_pattern =~ '\\\d\+'
                                let match_list = matchlist(getline(start[0]), a:start_pattern)
                                let end_pattern = s:replace_submatch(end_pattern, match_list)
                              endif
                            
                              let end_forward = searchpos(end_pattern, 'ncW', stopline_forward)
                              if end_forward == s:null_pos
                                let end_forward = [line('$'), len(getline('$'))+1]
                              endi
                            
                              let end_backward = searchpos(end_pattern, 'bnW', stopline_back)
                              if s:pos_less_equal(start, end_backward)
                                return s:null_range
                              endif
                              let end_forward[1] -= 1
                            
                              if start[1] >= strdisplaywidth(getline(start[0]))
                                let start[0] += 1
                                let start[1] = 1
                              endif
                            
                              if end_forward[1] <= 1
                                let end_forward[0] -= 1
                                let len = strdisplaywidth(getline(end_forward[0]))
                                let len = len ? len : 1
                                let end_forward[1] = len
                              endif
                            
                              return [start, end_forward]

FUNCTION  <SNR>160_SetConcealOption()
Called 1 time
Total time:   0.000023
 Self time:   0.000023

count  total (s)   self (s)
    1              0.000004     if ! exists("b:indentLine_ConcealOptionSet")
    1              0.000003         let b:indentLine_ConcealOptionSet = 1
    1              0.000008         let &l:concealcursor = exists("g:indentLine_concealcursor") ? g:indentLine_concealcursor : "inc"
    1              0.000007         let &l:conceallevel = exists("g:indentLine_conceallevel") ? g:indentLine_conceallevel : "2"
    1              0.000001     endif

FUNCTION  808()
Called 1 time
Total time:   0.000004
 Self time:   0.000004

count  total (s)   self (s)
    1              0.000002   if empty(a:context.candidates)
    1              0.000002     return []
                              endif
                            
                              lua << EOF
                            do
                              local candidates = vim.eval('a:context.candidates')
                              local len = string.len(vim.eval('a:context.complete_str'))
                              for i = #candidates-1, 0, -1 do
                                local word = vim.type(candidates[i]) == 'dict' and
                                candidates[i].word or candidates[i]
                                if string.len(word) <= len then
                                  candidates[i] = nil
                                end
                              end
                            end
                            EOF
                            
                              return a:context.candidates

FUNCTION  <SNR>456_get_sources_filetypes()
Called 1 time
Total time:   0.000729
 Self time:   0.000011

count  total (s)   self (s)
    1   0.000727   0.000009   let filetypes = exists('*context_filetype#get_filetypes') ?   context_filetype#get_filetypes(a:filetype) : split(((a:filetype == '') ? 'nothing' : a:filetype), '\.')
    1              0.000002   return ['_'] + filetypes

FUNCTION  brightest#hl_clear()
Called 4 times
Total time:   0.000063
 Self time:   0.000029

count  total (s)   self (s)
    4   0.000058   0.000024 	if empty(s:Highlight.hl_list())
    4              0.000003 		return
                            	endif
                            " 	call s:Highlight.as_windo().disable_all()
                            	if g:brightest#enable_highlight_all_window	|| s:old_enable_window_all
                            		call s:Highlight.as_windo().disable_all()
                            	endif
                            	call s:Highlight.clear_all()
                            	let s:old_enable_window_all = g:brightest#enable_highlight_all_window

FUNCTIONS SORTED ON TOTAL TIME
count  total (s)   self (s)  function
  100   0.158038   0.001568  <SNR>561__vital_of()
    4   0.117675   0.117447  neocomplete#helper#clean()
  100   0.117161   0.115500  vital#of()
    1   0.112289   0.000597  <SNR>435_clean()
  200   0.077336   0.022675  <SNR>563_load()
  200   0.054661   0.027844  <SNR>563__import()
  100   0.041596   0.001324  <SNR>561__vital_incsearch_of()
    1   0.034519   0.000050  neomru#_save()
    2   0.034469   0.000556  295()
  200   0.026817   0.004411  <SNR>563__get_module()
    1   0.022816   0.002534  <SNR>31_SynSet()
  200   0.022406             vital#_incsearch#Data#List#import()
    1   0.017766   0.001217  300()
  500   0.016549             <SNR>232_is_file_exist()
    3   0.016130   0.000316  neocomplete#handler#_do_auto_complete()
    2   0.014227   0.000056  <SNR>232_uniq()
    2   0.014171             <SNR>232_uniq_by()
   12   0.012561   0.006319  <SNR>201_match_files()
   17   0.011449   0.000151  context_filetype#get_filetype()
   17   0.011298   0.000286  context_filetype#get()

FUNCTIONS SORTED ON SELF TIME
count  total (s)   self (s)  function
    4   0.117675   0.117447  neocomplete#helper#clean()
  100   0.117161   0.115500  vital#of()
  200   0.054661   0.027844  <SNR>563__import()
  200   0.077336   0.022675  <SNR>563_load()
  200              0.022406  vital#_incsearch#Data#List#import()
  500              0.016549  <SNR>232_is_file_exist()
    2              0.014171  <SNR>232_uniq_by()
    1   0.008462   0.007541  <SNR>28_LoadFTPlugin()
   12   0.012561   0.006319  <SNR>201_match_files()
   34   0.010323   0.005366  <SNR>409_get_context()
  200   0.026817   0.004411  <SNR>563__get_module()
  136   0.004957   0.003592  <SNR>409_search_range()
    1   0.022816   0.002534  <SNR>31_SynSet()
    1              0.001887  neosnippet#mappings#_clear_select_mode_mappings()
    4   0.003396   0.001684  <SNR>165_line()
  100   0.158038   0.001568  <SNR>561__vital_of()
  200              0.001554  <SNR>563_new()
  100   0.041596   0.001324  <SNR>561__vital_incsearch_of()
    8              0.001321  <SNR>165_expand()
    2   0.003792   0.001247  neocomplete#complete#_set_results_pos()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment