Guest User

Vim profiling

a guest
Nov 7th, 2014
259
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. FUNCTION  <SNR>155_BufferTextChangedSinceLastMoveInInsertMode()
  2. Called 10 times
  3. Total time:   0.000368
  4.  Self time:   0.000368
  5.  
  6. count  total (s)   self (s)
  7.    10              0.000030   if s:moved_vertically_in_insert_mode
  8.     1              0.000003     let s:previous_num_chars_on_current_line = -1
  9.     1              0.000002     return 0
  10.                               endif
  11.                            
  12.     9              0.000064   let num_chars_in_current_cursor_line = strlen( getline('.') )
  13.                            
  14.     9              0.000029   if s:previous_num_chars_on_current_line == -1
  15.                                 let s:previous_num_chars_on_current_line = num_chars_in_current_cursor_line
  16.                                 return 0
  17.                               endif
  18.                            
  19.     9              0.000053   let changed_text_on_current_line = num_chars_in_current_cursor_line != s:previous_num_chars_on_current_line
  20.     9              0.000042   let s:previous_num_chars_on_current_line = num_chars_in_current_cursor_line
  21.                            
  22.     9              0.000019   return changed_text_on_current_line
  23.  
  24. FUNCTION  <SNR>147_get_syn()
  25. Called 48 times
  26. Total time:   0.001975
  27.  Self time:   0.001975
  28.  
  29. count  total (s)   self (s)
  30.                               " need to pass in mode, known to break on 7.3.547
  31.    48              0.000339   let mode = has('gui_running') ? 'gui' : 'cterm'
  32.    48              0.000441   let color = synIDattr(synIDtrans(hlID(a:group)), a:what, mode)
  33.    48              0.000183   if empty(color) || color == -1
  34.                                 let color = synIDattr(synIDtrans(hlID('Normal')), a:what, mode)
  35.                               endif
  36.    48              0.000142   if empty(color) || color == -1
  37.                                 if has('gui_running')
  38.                                   let color = a:what ==# 'fg' ? '#000000' : '#FFFFFF'
  39.                                 else
  40.                                   let color = a:what ==# 'fg' ? 0 : 1
  41.                                 endif
  42.                               endif
  43.    48              0.000087   return color
  44.  
  45. FUNCTION  <SNR>77_repo_head_ref()
  46. Called 1 time
  47. Total time:   0.000174
  48.  Self time:   0.000139
  49.  
  50. count  total (s)   self (s)
  51.     1   0.000076   0.000056   if !filereadable(self.dir('HEAD'))
  52.                                 return ''
  53.                               endif
  54.     1   0.000090   0.000075   return readfile(self.dir('HEAD'))[0]
  55.  
  56. FUNCTION  airline#check_mode()
  57. Called 15 times
  58. Total time:   0.013569
  59.  Self time:   0.002129
  60.  
  61. count  total (s)   self (s)
  62.    15              0.000126   let context = s:contexts[a:winnr]
  63.                            
  64.    15              0.000082   if get(w:, 'airline_active', 1)
  65.    15              0.000091     let l:m = mode()
  66.    15              0.000048     if l:m ==# "i"
  67.     9              0.000040       let l:mode = ['insert']
  68.     9              0.000020     elseif l:m ==# "R"
  69.                                   let l:mode = ['replace']
  70.                                 elseif l:m =~# '\v(v|V||s|S|)'
  71.                                   let l:mode = ['visual']
  72.                                 else
  73.     6              0.000028       let l:mode = ['normal']
  74.     6              0.000011     endif
  75.    15              0.000138     let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m)
  76.    15              0.000021   else
  77.                                 let l:mode = ['inactive']
  78.                                 let w:airline_current_mode = get(g:airline_mode_map, '__')
  79.                               endif
  80.                            
  81.    15              0.000088   if g:airline_detect_modified && &modified
  82.    15              0.000191     call add(l:mode, 'modified')
  83.    15              0.000022   endif
  84.                            
  85.    15              0.000053   if g:airline_detect_paste && &paste
  86.                                 call add(l:mode, 'paste')
  87.                               endif
  88.                            
  89.    15              0.000046   if &readonly || ! &modifiable
  90.                                 call add(l:mode, 'readonly')
  91.                               endif
  92.                            
  93.    15              0.000124   let mode_string = join(l:mode)
  94.    15              0.000113   if get(w:, 'airline_lastmode', '') != mode_string
  95.     1   0.000100   0.000015     call airline#highlighter#highlight_modified_inactive(context.bufnr)
  96.     1   0.011366   0.000011     call airline#highlighter#highlight(l:mode)
  97.     1              0.000005     let w:airline_lastmode = mode_string
  98.     1              0.000001   endif
  99.                            
  100.    15              0.000027   return ''
  101.  
  102. FUNCTION  <SNR>155_UpdateDiagnosticNotifications()
  103. Called 7 times
  104. Total time:   0.140970
  105.  Self time:   0.140898
  106.  
  107. count  total (s)   self (s)
  108.     7   0.002056   0.001984   let should_display_diagnostics = g:ycm_show_diagnostics_ui && s:DiagnosticUiSupportedForCurrentFiletype() && pyeval( 'ycm_state.NativeFiletypeCompletionUsable()' )
  109.                            
  110.     7              0.000044   if !should_display_diagnostics
  111.                                 return
  112.                               endif
  113.                            
  114.     7              0.138796   py ycm_state.UpdateDiagnosticInterface()
  115.  
  116. FUNCTION  <SNR>155_GetCompletions()
  117. Called 11 times
  118. Total time:   0.142187
  119.  Self time:   0.142187
  120.  
  121. count  total (s)   self (s)
  122.    11              0.140927   py results = GetCompletionsInner()
  123.    11              0.001151   let results = pyeval( 'results' )
  124.    11              0.000062   return results
  125.  
  126. FUNCTION  <SNR>155_OnBlankLine()
  127. Called 9 times
  128. Total time:   0.000936
  129.  Self time:   0.000936
  130.  
  131. count  total (s)   self (s)
  132.     9              0.000921   return pyeval( 'not vim.current.line or vim.current.line.isspace()' )
  133.  
  134. FUNCTION  airline#themes#get_highlight()
  135. Called 24 times
  136. Total time:   0.003846
  137.  Self time:   0.000245
  138.  
  139. count  total (s)   self (s)
  140.    24   0.003833   0.000232   return call('airline#highlighter#get_highlight', [a:group] + a:000)
  141.  
  142. FUNCTION  <SNR>77_repo()
  143. Called 2 times
  144. Total time:   0.000160
  145.  Self time:   0.000160
  146.  
  147. count  total (s)   self (s)
  148.     2              0.000039   let dir = a:0 ? a:1 : (exists('b:git_dir') && b:git_dir !=# '' ? b:git_dir : fugitive#extract_git_dir(expand('%:p')))
  149.     2              0.000007   if dir !=# ''
  150.     2              0.000014     if has_key(s:repos, dir)
  151.     2              0.000017       let repo = get(s:repos, dir)
  152.     2              0.000004     else
  153.                                   let repo = {'git_dir': dir}
  154.                                   let s:repos[dir] = repo
  155.                                 endif
  156.     2              0.000050     return extend(extend(repo, s:repo_prototype, 'keep'), s:abstract_prototype, 'keep')
  157.                               endif
  158.                               call s:throw('not a git repository: '.expand('%:p'))
  159.  
  160. FUNCTION  airline#parts#filetype()
  161. Called 15 times
  162. Total time:   0.000073
  163.  Self time:   0.000073
  164.  
  165. count  total (s)   self (s)
  166.    15              0.000055   return &filetype
  167.  
  168. FUNCTION  airline#parts#iminsert()
  169. Called 15 times
  170. Total time:   0.000187
  171.  Self time:   0.000187
  172.  
  173. count  total (s)   self (s)
  174.    15              0.000075   if g:airline_detect_iminsert && &iminsert && exists('b:keymap_name')
  175.                                 return toupper(b:keymap_name)
  176.                               endif
  177.    15              0.000022   return ''
  178.  
  179. FUNCTION  <SNR>155_OnCursorHold()
  180. Called 2 times
  181. Total time:   0.004576
  182.  Self time:   0.000191
  183.  
  184. count  total (s)   self (s)
  185.     2   0.000249   0.000108   if !s:AllowedToCompleteInCurrentFile()
  186.                                 return
  187.                               endif
  188.                            
  189.     2   0.000148   0.000036   call s:SetUpCompleteopt()
  190.     2   0.004162   0.000030   call s:OnFileReadyToParse()
  191.  
  192. FUNCTION  <SNR>145_check_mixed_indent()
  193. Called 1 time
  194. Total time:   0.003526
  195.  Self time:   0.003526
  196.  
  197. count  total (s)   self (s)
  198.     1              0.000005   if s:indent_algo == 1
  199.                                 " [<tab>]<space><tab>
  200.                                 " spaces before or between tabs are not allowed
  201.                                 let t_s_t = '(^\t* +\t\s*\S)'
  202.                                 " <tab>(<space> x count)
  203.                                 " count of spaces at the end of tabs should be less then tabstop value
  204.                                 let t_l_s = '(^\t+ {' . &ts . ',}' . '\S)'
  205.                                 return search('\v' . t_s_t . '|' . t_l_s, 'nw')
  206.                               else
  207.     1              0.003500     return search('\v(^\t+ +)|(^ +\t+)', 'nw')
  208.                               endif
  209.  
  210. FUNCTION  <SNR>77_repo_head()
  211. Called 1 time
  212. Total time:   0.000395
  213.  Self time:   0.000101
  214.  
  215. count  total (s)   self (s)
  216.     1   0.000276   0.000027     let head = s:repo().head_ref()
  217.                            
  218.     1              0.000017     if head =~# '^ref: '
  219.     1   0.000069   0.000024       let branch = s:sub(head,'^ref: %(refs/%(heads/|remotes/|tags/)=)=','')
  220.     1              0.000004     elseif head =~# '^\x\{40\}$'
  221.                                   " truncate hash to a:1 characters if we're in detached head mode
  222.                                   let len = a:0 ? a:1 : 0
  223.                                   let branch = len ? head[0:len-1] : ''
  224.                                 else
  225.                                   return ''
  226.                                 endif
  227.                            
  228.     1              0.000003     return branch
  229.  
  230. FUNCTION  <SNR>155_SetUpCompleteopt()
  231. Called 2 times
  232. Total time:   0.000112
  233.  Self time:   0.000112
  234.  
  235. count  total (s)   self (s)
  236.                               " Some plugins (I'm looking at you, vim-notes) change completeopt by for
  237.                               " instance adding 'longest'. This breaks YCM. So we force our settings.
  238.                               " There's no two ways about this: if you want to use YCM then you have to
  239.                               " have these completeopt settings, otherwise YCM won't work at all.
  240.                            
  241.                               " We need menuone in completeopt, otherwise when there's only one candidate
  242.                               " for completion, the menu doesn't show up.
  243.     2              0.000028   set completeopt-=menu
  244.     2              0.000016   set completeopt+=menuone
  245.                            
  246.                               " This is unnecessary with our features. People use this option to insert
  247.                               " the common prefix of all the matches and then add more differentiating chars
  248.                               " so that they can select a more specific match. With our features, they
  249.                               " don't need to insert the prefix; they just type the differentiating chars.
  250.                               " Also, having this option set breaks the plugin.
  251.     2              0.000012   set completeopt-=longest
  252.                            
  253.     2              0.000012   if g:ycm_add_preview_to_completeopt
  254.                                 set completeopt+=preview
  255.                               endif
  256.  
  257. FUNCTION  UltiSnips#CursorMoved()
  258. Called 14 times
  259. Total time:   0.004098
  260.  Self time:   0.004098
  261.  
  262. count  total (s)   self (s)
  263.    14              0.004067     exec g:_uspy "UltiSnips_Manager._cursor_moved()"
  264.  
  265. FUNCTION  279()
  266. Called 11 times
  267. Total time:   0.000150
  268.  Self time:   0.000150
  269.  
  270. count  total (s)   self (s)
  271.    11              0.000075     let idx = self.kinddict[a:kind]
  272.    11              0.000057     return self.kinds[idx]
  273.  
  274. FUNCTION  SetUsLayout()
  275. Called 1 time
  276. Total time:   0.000027
  277.  Self time:   0.000027
  278.  
  279. count  total (s)   self (s)
  280.     1              0.000019     if has('unix') && &term == 'builtin_gui'
  281.                                     silent !qdbus ru.gentoo.KbddService /ru/gentoo/KbddService ru.gentoo.kbdd.set_layout 0 >/dev/null
  282.                                 endif
  283.  
  284. FUNCTION  <SNR>155_OnCursorMovedInsertMode()
  285. Called 10 times
  286. Total time:   0.009807
  287.  Self time:   0.001470
  288.  
  289. count  total (s)   self (s)
  290.    10   0.000415   0.000070   if !s:AllowedToCompleteInCurrentFile()
  291.                                 return
  292.                               endif
  293.                            
  294.    10              0.000566   py ycm_state.OnCursorMoved()
  295.    10   0.000441   0.000148   call s:UpdateCursorMoved()
  296.                            
  297.                               " Basically, we need to only trigger the completion menu when the user has
  298.                               " inserted or deleted a character, NOT just when the user moves in insert mode
  299.                               " (with, say, the arrow keys). If we trigger the menu even on pure moves, then
  300.                               " it's impossible to move in insert mode since the up/down arrows start moving
  301.                               " the selected completion in the completion menu. Yeah, people shouldn't be
  302.                               " moving in insert mode at all (that's what normal mode is for) but explain
  303.                               " that to the users who complain...
  304.    10   0.000440   0.000072   if !s:BufferTextChangedSinceLastMoveInInsertMode()
  305.     1              0.000001     return
  306.                               endif
  307.                            
  308.     9   0.004401   0.000072   call s:IdentifierFinishedOperations()
  309.     9              0.000034   if g:ycm_autoclose_preview_window_after_completion
  310.                                 call s:ClosePreviewWindowIfNeeded()
  311.                               endif
  312.                            
  313.     9              0.000021   if g:ycm_auto_trigger || s:omnifunc_mode
  314.     9   0.003075   0.000073     call s:InvokeCompletion()
  315.     9              0.000011   endif
  316.                            
  317.                               " We have to make sure we correctly leave omnifunc mode even when the user
  318.                               " inserts something like a "operator[]" candidate string which fails
  319.                               " CurrentIdentifierFinished check.
  320.     9              0.000172   if s:omnifunc_mode && !pyeval( 'base.LastEnteredCharIsIdentifierChar()')
  321.                                 let s:omnifunc_mode = 0
  322.                               endif
  323.  
  324. FUNCTION  airline#util#wrap()
  325. Called 105 times
  326. Total time:   0.001199
  327.  Self time:   0.001199
  328.  
  329. count  total (s)   self (s)
  330.   105              0.000510   if a:minwidth > 0 && winwidth(0) < a:minwidth
  331.                                 return ''
  332.                               endif
  333.   105              0.000242   return a:text
  334.  
  335. FUNCTION  xolox#misc#cursorhold#autocmd()
  336. Called 2 times
  337. Total time:   0.000706
  338.  Self time:   0.000505
  339.  
  340. count  total (s)   self (s)
  341.                               " The 'top level event handler' that's called by Vim whenever the
  342.                               " [CursorHold][] or [CursorHoldI][] event fires. It iterates through the
  343.                               " event handlers registered using `xolox#misc#cursorhold#register()` and
  344.                               " calls each event handler at the appropriate interval, keeping track of
  345.                               " the time when each event handler was last run.
  346.     4              0.000035   for handler in g:xolox#misc#cursorhold#handlers
  347.     2              0.000026     let function = handler['function']
  348.     2              0.000024     let last_run = get(handler, 'last_run', 0)
  349.     2              0.000017     let interval = get(handler, 'interval', 4)
  350.     2   0.000144   0.000065     call xolox#misc#msg#debug("vim-misc %s: Checking handler %s with interval %i and last run %i ..", g:xolox#misc#version, function, interval, last_run)
  351.                                 " Rate limit in case &updatetime is set (very) low.
  352.     2              0.000031     let time_until_next_run = (last_run + interval) - localtime()
  353.     2              0.000010     if time_until_next_run > 0
  354.     1   0.000051   0.000023       call xolox#misc#msg#debug("vim-misc %s: Rate limiting handler %s (time until next run: %i seconds).", g:xolox#misc#version, function, time_until_next_run)
  355.     1              0.000002     else
  356.     1   0.000049   0.000020       call xolox#misc#msg#debug("vim-misc %s: Running handler %s ..", g:xolox#misc#version, function)
  357.     1   0.000099   0.000034       call call(function, get(handler, 'arguments', []))
  358.     1              0.000009       let handler['last_run'] = localtime()
  359.     1              0.000002     endif
  360.     2              0.000006   endfor
  361.  
  362. FUNCTION  airline#extensions#whitespace#check()
  363. Called 15 times
  364. Total time:   0.006810
  365.  Self time:   0.003284
  366.  
  367. count  total (s)   self (s)
  368.    15              0.000141   if &readonly || !&modifiable || !s:enabled || line('$') > s:max_lines
  369.                                 return ''
  370.                               endif
  371.                            
  372.    15              0.000103   if !exists('b:airline_whitespace_check')
  373.     1              0.000008     let b:airline_whitespace_check = ''
  374.     1              0.000012     let checks = get(g:, 'airline#extensions#whitespace#checks', s:default_checks)
  375.                            
  376.     1              0.000004     let trailing = 0
  377.     1              0.000008     if index(checks, 'trailing') > -1
  378.     1              0.001922       let trailing = search('\s$', 'nw')
  379.     1              0.000003     endif
  380.                            
  381.     1              0.000004     let mixed = 0
  382.     1              0.000007     if index(checks, 'indent') > -1
  383.     1   0.003544   0.000018       let mixed = s:check_mixed_indent()
  384.     1              0.000001     endif
  385.                            
  386.     1              0.000002     if trailing != 0 || mixed != 0
  387.                                   let b:airline_whitespace_check = s:symbol
  388.                                   if s:show_message
  389.                                     if trailing != 0
  390.                                       let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:trailing_format, trailing)
  391.                                     endif
  392.                                     if mixed != 0
  393.                                       let b:airline_whitespace_check .= (g:airline_symbols.space).printf(s:mixed_indent_format, mixed)
  394.                                     endif
  395.                                   endif
  396.                                 endif
  397.     1              0.000000   endif
  398.    15              0.000055   return b:airline_whitespace_check
  399.  
  400. FUNCTION  <SNR>155_IdentifierFinishedOperations()
  401. Called 9 times
  402. Total time:   0.004329
  403.  Self time:   0.004329
  404.  
  405. count  total (s)   self (s)
  406.     9              0.000717   if !pyeval( 'base.CurrentIdentifierFinished()' )
  407.     7              0.000018     return
  408.                               endif
  409.     2              0.003548   py ycm_state.OnCurrentIdentifierFinished()
  410.     2              0.000020   let s:omnifunc_mode = 0
  411.  
  412. FUNCTION  <SNR>154_AutoUpdate()
  413. Called 1 time
  414. Total time:   0.001408
  415.  Self time:   0.000719
  416.  
  417. count  total (s)   self (s)
  418.     1   0.000049   0.000024     call s:debug('AutoUpdate called [' . a:fname . ']')
  419.                            
  420.                                 " This file is being loaded due to a quickfix command like vimgrep, so
  421.                                 " don't process it
  422.     1              0.000008     if exists('s:tagbar_qf_active')
  423.                                     return
  424.                                 elseif exists('s:window_opening')
  425.                                     " This can happen if another plugin causes the active window to change
  426.                                     " with an autocmd during the initial Tagbar window creation. In that
  427.                                     " case InitWindow() hasn't had a chance to run yet and things can
  428.                                     " break. MiniBufExplorer does this, for example. Completely disabling
  429.                                     " autocmds at that point is also not ideal since for example
  430.                                     " statusline plugins won't be able to update.
  431.                                     call s:debug('Still opening window, stopping processing')
  432.                                     return
  433.                                 endif
  434.                            
  435.                                 " Get the filetype of the file we're about to process
  436.     1              0.000056     let bufnr = bufnr(a:fname)
  437.     1              0.000012     let ftype = getbufvar(bufnr, '&filetype')
  438.                            
  439.                                 " Don't do anything if we're in the tagbar window
  440.     1              0.000006     if ftype == 'tagbar'
  441.                                     call s:debug('In Tagbar window, stopping processing')
  442.                                     return
  443.                                 endif
  444.                            
  445.                                 " Only consider the main filetype in cases like 'python.django'
  446.     1              0.000019     let sftype = get(split(ftype, '\.'), 0, '')
  447.     1   0.000059   0.000036     call s:debug("Vim filetype: '" . ftype . "', " . "sanitized filetype: '" . sftype . "'")
  448.                            
  449.                                 " Don't do anything if the file isn't supported
  450.     1   0.000235   0.000022     if !s:IsValidFile(a:fname, sftype)
  451.                                     call s:debug('Not a valid file, stopping processing')
  452.                                     let s:nearby_disabled = 1
  453.                                     return
  454.                                 endif
  455.                            
  456.     1              0.000006     let updated = 0
  457.                            
  458.                                 " Process the file if it's unknown or the information is outdated.
  459.                                 " Testing the mtime of the file is necessary in case it got changed
  460.                                 " outside of Vim, for example by checking out a different version from a
  461.                                 " VCS.
  462.     1   0.000029   0.000017     if s:known_files.has(a:fname)
  463.     1   0.000028   0.000016         let curfile = s:known_files.get(a:fname)
  464.                                     " if a:force || getbufvar(curfile.bufnr, '&modified') ||
  465.     1              0.000040         if a:force || empty(curfile) || curfile.ftype != sftype || (filereadable(a:fname) && getftime(a:fname) > curfile.mtime)
  466.                                         call s:debug('File data outdated, updating [' . a:fname . ']')
  467.                                         call s:ProcessFile(a:fname, sftype)
  468.                                         let updated = 1
  469.                                     else
  470.     1   0.000054   0.000031             call s:debug('File data seems up to date [' . a:fname . ']')
  471.     1              0.000002         endif
  472.     1              0.000006     elseif !s:known_files.has(a:fname)
  473.                                     call s:debug('New file, processing [' . a:fname . ']')
  474.                                     call s:ProcessFile(a:fname, sftype)
  475.                                     let updated = 1
  476.                                 endif
  477.                            
  478.     1   0.000084   0.000071     let fileinfo = s:known_files.get(a:fname)
  479.                            
  480.                                 " If we don't have an entry for the file by now something must have gone
  481.                                 " wrong, so don't change the tagbar content
  482.     1              0.000006     if empty(fileinfo)
  483.                                     call s:debug('fileinfo empty after processing [' . a:fname . ']')
  484.                                     return
  485.                                 endif
  486.                            
  487.                                 " Display the tagbar content if the tags have been updated or a different
  488.                                 " file is being displayed
  489.     1              0.000108     if bufwinnr('__Tagbar__') != -1 && !s:paused && (s:new_window || updated || (!empty(s:known_files.getCurrent(0)) && a:fname != s:known_files.getCurrent(0).fpath))
  490.                                     call s:RenderContent(fileinfo)
  491.                                 endif
  492.                            
  493.                                 " Call setCurrent after rendering so RenderContent can check whether the
  494.                                 " same file is being redisplayed
  495.     1              0.000005     if !empty(fileinfo)
  496.     1   0.000037   0.000017         call s:debug('Setting current file [' . a:fname . ']')
  497.     1   0.000025   0.000014         call s:known_files.setCurrent(fileinfo)
  498.     1              0.000007         let s:nearby_disabled = 0
  499.     1              0.000002     endif
  500.                            
  501.     1   0.000336   0.000019     call s:HighlightTag(0)
  502.     1   0.000037   0.000017     call s:debug('AutoUpdate finished successfully')
  503.  
  504. FUNCTION  <SNR>155_UpdateCursorMoved()
  505. Called 10 times
  506. Total time:   0.000293
  507.  Self time:   0.000293
  508.  
  509. count  total (s)   self (s)
  510.    10              0.000078   let current_position = getpos('.')
  511.    10              0.000054   let s:cursor_moved = current_position != s:old_cursor_position
  512.                            
  513.    10              0.000086   let s:moved_vertically_in_insert_mode = s:old_cursor_position != [] && current_position[ 1 ] != s:old_cursor_position[ 1 ]
  514.                            
  515.    10              0.000039   let s:old_cursor_position = current_position
  516.  
  517. FUNCTION  <SNR>155_OnCursorMovedNormalMode()
  518. Called 4 times
  519. Total time:   0.002802
  520.  Self time:   0.000449
  521.  
  522. count  total (s)   self (s)
  523.     4   0.000426   0.000047   if !s:AllowedToCompleteInCurrentFile()
  524.                                 return
  525.                               endif
  526.                            
  527.     4   0.002023   0.000049   call s:OnFileReadyToParse()
  528.     4              0.000326   py ycm_state.OnCursorMoved()
  529.  
  530. FUNCTION  airline#util#append()
  531. Called 45 times
  532. Total time:   0.001038
  533.  Self time:   0.001038
  534.  
  535. count  total (s)   self (s)
  536.    45              0.000197   if a:minwidth > 0 && winwidth(0) < a:minwidth
  537.                                 return ''
  538.                               endif
  539.    45              0.000349   let prefix = s:spc == "\ua0" ? s:spc : s:spc.s:spc
  540.    45              0.000281   return empty(a:text) ? '' : prefix.g:airline_left_alt_sep.s:spc.a:text
  541.  
  542. FUNCTION  youcompleteme#Complete()
  543. Called 18 times
  544. Total time:   0.092982
  545.  Self time:   0.004992
  546.  
  547. count  total (s)   self (s)
  548.                               " After the user types one character after the call to the omnifunc, the
  549.                               " completefunc will be called because of our mapping that calls the
  550.                               " completefunc on every keystroke. Therefore we need to delegate the call we
  551.                               " 'stole' back to the omnifunc
  552.    18              0.000099   if s:omnifunc_mode
  553.     2   0.011145   0.000027     return youcompleteme#OmniComplete( a:findstart, a:base )
  554.                               endif
  555.                            
  556.    16              0.000027   if a:findstart
  557.                                 " InvokeCompletion has this check but we also need it here because of random
  558.                                 " Vim bugs and unfortunate interactions with the autocommands of other
  559.                                 " plugins
  560.     8              0.000013     if !s:cursor_moved
  561.                                   " for vim, -2 means not found but don't trigger an error message
  562.                                   " see :h complete-functions
  563.                                   return -2
  564.                                 endif
  565.                            
  566.     8              0.000602     if !pyeval( 'ycm_state.IsServerAlive()' )
  567.                                   return -2
  568.                                 endif
  569.     8              0.002772     py ycm_state.CreateCompletionRequest()
  570.     8              0.000953     return pyeval( 'base.CompletionStartColumn()' )
  571.                               else
  572.     8   0.076958   0.000086     return s:GetCompletions()
  573.                               endif
  574.  
  575. FUNCTION  youcompleteme#OmniComplete()
  576. Called 6 times
  577. Total time:   0.067232
  578.  Self time:   0.001917
  579.  
  580. count  total (s)   self (s)
  581.     6              0.000033   if a:findstart
  582.     3              0.000307     if !pyeval( 'ycm_state.IsServerAlive()' )
  583.                                   return -2
  584.                                 endif
  585.     3              0.000015     let s:omnifunc_mode = 1
  586.     3              0.001085     py ycm_state.CreateCompletionRequest( force_semantic = True )
  587.     3              0.000374     return pyeval( 'base.CompletionStartColumn()' )
  588.                               else
  589.     3   0.065340   0.000025     return s:GetCompletions()
  590.                               endif
  591.  
  592. FUNCTION  287()
  593. Called 12 times
  594. Total time:   0.000106
  595.  Self time:   0.000106
  596.  
  597. count  total (s)   self (s)
  598.    12              0.000045     if !s:paused || a:forcecurrent
  599.    12              0.000037         return self._current
  600.                                 else
  601.                                     return self._paused
  602.                                 endif
  603.  
  604. FUNCTION  288()
  605. Called 1 time
  606. Total time:   0.000011
  607.  Self time:   0.000011
  608.  
  609. count  total (s)   self (s)
  610.     1              0.000009     let self._current = a:fileinfo
  611.  
  612. FUNCTION  airline#highlighter#highlight()
  613. Called 1 time
  614. Total time:   0.011355
  615.  Self time:   0.003502
  616.  
  617. count  total (s)   self (s)
  618.     1              0.000005   let p = g:airline#themes#{g:airline_theme}#palette
  619.                            
  620.                               " draw the base mode, followed by any overrides
  621.     1              0.000017   let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val')
  622.     1              0.000004   let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
  623.     3              0.000006   for mode in mapped
  624.     2              0.000013     if exists('g:airline#themes#{g:airline_theme}#palette[mode]')
  625.     2              0.000008       let dict = g:airline#themes#{g:airline_theme}#palette[mode]
  626.    23              0.000054       for kvp in items(dict)
  627.    21              0.000054         let mode_colors = kvp[1]
  628.    21   0.000959   0.000153         call airline#highlighter#exec(kvp[0].suffix, mode_colors)
  629.                            
  630.    63              0.000133         for accent in keys(s:accents)
  631.    42              0.000112           if !has_key(p.accents, accent)
  632.                                         continue
  633.                                       endif
  634.    42              0.000189           let colors = copy(mode_colors)
  635.    42              0.000135           if p.accents[accent][0] != ''
  636.                                         let colors[0] = p.accents[accent][0]
  637.                                       endif
  638.    42              0.000103           if p.accents[accent][2] != ''
  639.    21              0.000073             let colors[2] = p.accents[accent][2]
  640.    21              0.000015           endif
  641.    42              0.000079           if len(colors) >= 5
  642.    14              0.000054             let colors[4] = get(p.accents[accent], 4, '')
  643.    14              0.000011           else
  644.    28              0.000175             call add(colors, get(p.accents[accent], 4, ''))
  645.    28              0.000027           endif
  646.    42   0.002166   0.000337           call airline#highlighter#exec(kvp[0].suffix.'_'.accent, colors)
  647.    42              0.000051         endfor
  648.    21              0.000023       endfor
  649.                            
  650.                                   " TODO: optimize this
  651.    14              0.000038       for sep in items(s:separators)
  652.    12   0.005407   0.000189         call <sid>exec_separator(dict, sep[1][0], sep[1][1], sep[1][2], suffix)
  653.    12              0.000024       endfor
  654.     2              0.000002     endif
  655.     2              0.000003   endfor
  656.  
  657. FUNCTION  airline#parts#ffenc()
  658. Called 15 times
  659. Total time:   0.000728
  660.  Self time:   0.000728
  661.  
  662. count  total (s)   self (s)
  663.    15              0.000711   return printf('%s%s', &fenc, strlen(&ff) > 0 ? '['.&ff.']' : '')
  664.  
  665. FUNCTION  airline#parts#paste()
  666. Called 15 times
  667. Total time:   0.000109
  668.  Self time:   0.000109
  669.  
  670. count  total (s)   self (s)
  671.    15              0.000087   return g:airline_detect_paste && &paste ? g:airline_symbols.paste : ''
  672.  
  673. FUNCTION  tagbar#currenttag()
  674. Called 11 times
  675. Total time:   0.004927
  676.  Self time:   0.001220
  677.  
  678. count  total (s)   self (s)
  679.                                 " Indicate that the statusline functionality is being used. This prevents
  680.                                 " the CloseWindow() function from removing the autocommands.
  681.    11              0.000056     let s:statusline_in_use = 1
  682.                            
  683.    11              0.000027     if a:0 > 0
  684.                                     " also test for non-zero value for backwards compatibility
  685.    11              0.000178         let longsig   = a:1 =~# 's' || (type(a:1) == type(0) && a:1 != 0)
  686.    11              0.000079         let fullpath  = a:1 =~# 'f'
  687.    11              0.000064         let prototype = a:1 =~# 'p'
  688.    11              0.000017     else
  689.                                     let longsig   = 0
  690.                                     let fullpath  = 0
  691.                                     let prototype = 0
  692.                                 endif
  693.                            
  694.    11   0.000751   0.000105     if !s:Init(1)
  695.                                     return a:default
  696.                                 endif
  697.                            
  698.    11   0.002693   0.000124     let tag = s:GetNearbyTag(0, 1)
  699.                            
  700.    11              0.000045     if !empty(tag)
  701.    11              0.000024         if prototype
  702.                                         return tag.getPrototype(1)
  703.                                     else
  704.    11   0.000687   0.000195             return printf(a:fmt, tag.str(longsig, fullpath))
  705.                                     endif
  706.                                 else
  707.                                     return a:default
  708.                                 endif
  709.  
  710. FUNCTION  <SNR>77_sub()
  711. Called 1 time
  712. Total time:   0.000045
  713.  Self time:   0.000045
  714.  
  715. count  total (s)   self (s)
  716.     1              0.000043   return substitute(a:str,'\v\C'.a:pat,a:rep,'')
  717.  
  718. FUNCTION  <SNR>155_InsideCommentOrStringAndShouldStop()
  719. Called 9 times
  720. Total time:   0.001542
  721.  Self time:   0.000222
  722.  
  723. count  total (s)   self (s)
  724.     9   0.001392   0.000072   let retval = s:InsideCommentOrString()
  725.     9              0.000029   let inside_comment = retval == 1
  726.     9              0.000024   let inside_string = retval == 2
  727.                            
  728.     9              0.000038   if inside_comment && g:ycm_complete_in_comments || inside_string && g:ycm_complete_in_strings
  729.                                 return 0
  730.                               endif
  731.                            
  732.     9              0.000013   return retval
  733.  
  734. FUNCTION  airline#extensions#hunks#get_hunks()
  735. Called 15 times
  736. Total time:   0.002786
  737.  Self time:   0.001721
  738.  
  739. count  total (s)   self (s)
  740.    15              0.000082   if !get(w:, 'airline_active', 0)
  741.                                 return ''
  742.                               endif
  743.    15   0.001200   0.000135   let hunks = s:get_hunks()
  744.    15              0.000043   let string = ''
  745.    15              0.000047   if !empty(hunks)
  746.    60              0.000178     for i in [0, 1, 2]
  747.    45              0.000176       if s:non_zero_only == 0 || hunks[i] > 0
  748.    45              0.000539         let string .= printf('%s%s ', s:hunk_symbols[i], hunks[i])
  749.    45              0.000070       endif
  750.    45              0.000104     endfor
  751.    15              0.000019   endif
  752.    15              0.000037   return string
  753.  
  754. FUNCTION  airline#parts#readonly()
  755. Called 15 times
  756. Total time:   0.000091
  757.  Self time:   0.000091
  758.  
  759. count  total (s)   self (s)
  760.    15              0.000074   return &readonly ? g:airline_symbols.readonly : ''
  761.  
  762. FUNCTION  airline#highlighter#exec()
  763. Called 76 times
  764. Total time:   0.003371
  765.  Self time:   0.003371
  766.  
  767. count  total (s)   self (s)
  768.    76              0.000196   let colors = a:colors
  769.    76              0.000203   if s:is_win32term
  770.                                 let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
  771.                                 let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
  772.                               endif
  773.    76              0.002154   exec printf('hi %s %s %s %s %s %s %s %s', a:group, get(colors, 0, '') != '' ? 'guifg='.colors[0] : '', get(colors, 1, '') != '' ? 'guibg='.colors[1] : '', get(colors, 2, '') != '' ? 'ctermfg='.colors[2] : '', get(colors, 3, '') != '' ? 'ctermbg='.colors[3] : '', get(colors, 4, '') != '' ? 'gui='.colors[4] : '', get(colors, 4, '') != '' ? 'cterm='.colors[4] : '', get(colors, 4, '') != '' ? 'term='.colors[4] : '')
  774.  
  775. FUNCTION  <SNR>155_SetUpYcmChangedTick()
  776. Called 7 times
  777. Total time:   0.000122
  778.  Self time:   0.000122
  779.  
  780. count  total (s)   self (s)
  781.     7              0.000111   let b:ycm_changedtick  = get( b:, 'ycm_changedtick', {   'file_ready_to_parse' : -1, } )
  782.  
  783. FUNCTION  <SNR>147_exec_separator()
  784. Called 12 times
  785. Total time:   0.005218
  786.  Self time:   0.000682
  787.  
  788. count  total (s)   self (s)
  789.    12   0.002017   0.000117   let l:from = airline#themes#get_highlight(a:from.a:suffix)
  790.    12   0.002073   0.000127   let l:to = airline#themes#get_highlight(a:to.a:suffix)
  791.    12              0.000067   let group = a:from.'_to_'.a:to.a:suffix
  792.    12              0.000026   if a:inverse
  793.     4              0.000038     let colors = [ l:from[1], l:to[1], l:from[3], l:to[3] ]
  794.     4              0.000005   else
  795.     8              0.000055     let colors = [ l:to[1], l:from[1], l:to[3], l:from[3] ]
  796.     8              0.000008   endif
  797.    12              0.000061   let a:dict[group] = colors
  798.    12   0.000786   0.000096   call airline#highlighter#exec(group, colors)
  799.  
  800. FUNCTION  <SNR>142_get_hunks_signify()
  801. Called 15 times
  802. Total time:   0.000506
  803.  Self time:   0.000246
  804.  
  805. count  total (s)   self (s)
  806.    15   0.000392   0.000132   let hunks = sy#repo#get_stats()
  807.    15              0.000060   if hunks[0] >= 0
  808.    15              0.000032     return hunks
  809.                               endif
  810.                               return []
  811.  
  812. FUNCTION  <SNR>155_InvokeCompletion()
  813. Called 9 times
  814. Total time:   0.003002
  815.  Self time:   0.000524
  816.  
  817. count  total (s)   self (s)
  818.     9              0.000046   if &completefunc != "youcompleteme#Complete"
  819.                                 return
  820.                               endif
  821.                            
  822.     9   0.002656   0.000178   if s:InsideCommentOrStringAndShouldStop() || s:OnBlankLine()
  823.                                 return
  824.                               endif
  825.                            
  826.                               " This is tricky. First, having 'refresh' set to 'always' in the dictionary
  827.                               " that our completion function returns makes sure that our completion function
  828.                               " is called on every keystroke. Second, when the sequence of characters the
  829.                               " user typed produces no results in our search an infinite loop can occur. The
  830.                               " problem is that our feedkeys call triggers the OnCursorMovedI event which we
  831.                               " are tied to. We prevent this infinite loop from starting by making sure that
  832.                               " the user has moved the cursor since the last time we provided completion
  833.                               " results.
  834.     9              0.000031   if !s:cursor_moved
  835.                                 return
  836.                               endif
  837.                            
  838.                               " <c-x><c-u> invokes the user's completion function (which we have set to
  839.                               " youcompleteme#Complete), and <c-p> tells Vim to select the previous
  840.                               " completion candidate. This is necessary because by default, Vim selects the
  841.                               " first candidate when completion is invoked, and selecting a candidate
  842.                               " automatically replaces the current text with it. Calling <c-p> forces Vim to
  843.                               " deselect the first candidate and in turn preserve the user's current text
  844.                               " until he explicitly chooses to replace it with a completion.
  845.     9              0.000095   call feedkeys( "\<C-X>\<C-U>\<C-P>", 'n' )
  846.  
  847. FUNCTION  <SNR>155_OnInsertLeave()
  848. Called 1 time
  849. Total time:   0.141464
  850.  Self time:   0.001868
  851.  
  852. count  total (s)   self (s)
  853.     1   0.000038   0.000005   if !s:AllowedToCompleteInCurrentFile()
  854.                                 return
  855.                               endif
  856.                            
  857.     1              0.000002   let s:omnifunc_mode = 0
  858.     1   0.139570   0.000007   call s:OnFileReadyToParse()
  859.     1              0.001818   py ycm_state.OnInsertLeave()
  860.     1              0.000019   if g:ycm_autoclose_preview_window_after_completion || g:ycm_autoclose_preview_window_after_insertion
  861.                                 call s:ClosePreviewWindowIfNeeded()
  862.                               endif
  863.  
  864. FUNCTION  <SNR>142_get_hunks()
  865. Called 15 times
  866. Total time:   0.001065
  867.  Self time:   0.000559
  868.  
  869. count  total (s)   self (s)
  870.    15              0.000069   if empty(s:source_func)
  871.                                 if get(g:, 'loaded_signify', 0)
  872.                                   let s:source_func = 's:get_hunks_signify'
  873.                                 elseif exists('*GitGutterGetHunkSummary')
  874.                                   let s:source_func = 's:get_hunks_gitgutter'
  875.                                 elseif exists('*changes#GetStats')
  876.                                   let s:source_func = 's:get_hunks_changes'
  877.                                 else
  878.                                   let s:source_func = 's:get_hunks_empty'
  879.                                 endif
  880.                               endif
  881.    15   0.000673   0.000167   return {s:source_func}()
  882.  
  883. FUNCTION  <SNR>155_OnFileReadyToParse()
  884. Called 7 times
  885. Total time:   0.145669
  886.  Self time:   0.004577
  887.  
  888. count  total (s)   self (s)
  889.                               " We need to call this just in case there is no b:ycm_changetick; this can
  890.                               " happen for special buffers.
  891.     7   0.000191   0.000069   call s:SetUpYcmChangedTick()
  892.                            
  893.                               " Order is important here; we need to extract any done diagnostics before
  894.                               " reparsing the file again. If we sent the new parse request first, then
  895.                               " the response would always be pending when we called
  896.                               " UpdateDiagnosticNotifications.
  897.     7   0.141065   0.000095   call s:UpdateDiagnosticNotifications()
  898.                            
  899.     7              0.000094   let buffer_changed = b:changedtick != b:ycm_changedtick.file_ready_to_parse
  900.     7              0.000022   if buffer_changed
  901.     2              0.004121     py ycm_state.OnFileReadyToParse()
  902.     2              0.000010   endif
  903.     7              0.000056   let b:ycm_changedtick.file_ready_to_parse = b:changedtick
  904.  
  905. FUNCTION  <SNR>155_DiagnosticUiSupportedForCurrentFiletype()
  906. Called 7 times
  907. Total time:   0.000072
  908.  Self time:   0.000072
  909.  
  910. count  total (s)   self (s)
  911.     7              0.000068   return get( s:diagnostic_ui_filetypes, &filetype, 0 )
  912.  
  913. FUNCTION  <SNR>155_AllowedToCompleteInCurrentFile()
  914. Called 18 times
  915. Total time:   0.000927
  916.  Self time:   0.000927
  917.  
  918. count  total (s)   self (s)
  919.    18              0.000271   if empty( &filetype ) || getbufvar( winbufnr( winnr() ), "&buftype" ) ==# 'nofile' || &filetype ==# 'qf'
  920.                                 return 0
  921.                               endif
  922.                            
  923.    18              0.000185   let whitelist_allows = has_key( g:ycm_filetype_whitelist, '*' ) || has_key( g:ycm_filetype_whitelist, &filetype )
  924.    18              0.000131   let blacklist_allows = !has_key( g:ycm_filetype_blacklist, &filetype )
  925.                            
  926.    18              0.000066   return whitelist_allows && blacklist_allows
  927.  
  928. FUNCTION  airline#extensions#tagbar#currenttag()
  929. Called 15 times
  930. Total time:   0.005526
  931.  Self time:   0.000599
  932.  
  933. count  total (s)   self (s)
  934.    15              0.000085   if get(w:, 'airline_active', 0)
  935.    15              0.000088     if s:airline_tagbar_last_lookup_time != localtime()
  936.    11   0.005091   0.000164       let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', s:flags)
  937.    11              0.000099       let s:airline_tagbar_last_lookup_time = localtime()
  938.    11              0.000014     endif
  939.    15              0.000061     return s:airline_tagbar_last_lookup_val
  940.                               endif
  941.                               return ''
  942.  
  943. FUNCTION  <SNR>147_get_array()
  944. Called 24 times
  945. Total time:   0.000439
  946.  Self time:   0.000439
  947.  
  948. count  total (s)   self (s)
  949.    24              0.000070   let fg = a:fg
  950.    24              0.000053   let bg = a:bg
  951.    24              0.000282   return has('gui_running') ? [ fg, bg, '', '', join(a:opts, ',') ] : [ '', '', fg, bg, join(a:opts, ',') ]
  952.  
  953. FUNCTION  <SNR>155_InsideCommentOrString()
  954. Called 9 times
  955. Total time:   0.001320
  956.  Self time:   0.001320
  957.  
  958. count  total (s)   self (s)
  959.                               " Has to be col('.') -1 because col('.') doesn't exist at this point. We are
  960.                               " in insert mode when this func is called.
  961.     9              0.001146   let syntax_group = synIDattr( synIDtrans( synID( line( '.' ), col( '.' ) - 1, 1 ) ), 'name')
  962.                            
  963.     9              0.000052   if stridx(syntax_group, 'Comment') > -1
  964.                                 return 1
  965.                               endif
  966.                            
  967.     9              0.000029   if stridx(syntax_group, 'String') > -1
  968.                                 return 2
  969.                               endif
  970.                            
  971.     9              0.000012   return 0
  972.  
  973. FUNCTION  airline#extensions#branch#head()
  974. Called 15 times
  975. Total time:   0.000911
  976.  Self time:   0.000384
  977.  
  978. count  total (s)   self (s)
  979.    15              0.000130   if exists('b:airline_head') && !empty(b:airline_head)
  980.    14              0.000037     return b:airline_head
  981.                               endif
  982.                            
  983.     1              0.000005   let b:airline_head = ''
  984.     1              0.000005   let found_fugitive_head = 0
  985.                            
  986.     1              0.000009   if s:has_fugitive && !exists('b:mercurial_dir')
  987.     1   0.000546   0.000019     let b:airline_head = fugitive#head(7)
  988.     1              0.000005     let found_fugitive_head = 1
  989.                            
  990.     1              0.000009     if empty(b:airline_head) && !exists('b:git_dir')
  991.                                   let b:airline_head = s:get_git_branch(expand("%:p:h"))
  992.                                 endif
  993.     1              0.000002   endif
  994.                            
  995.     1              0.000006   if empty(b:airline_head)
  996.                                 if s:has_lawrencium
  997.                                   let b:airline_head = lawrencium#statusline()
  998.                                 endif
  999.                               endif
  1000.                            
  1001.     1              0.000005   if empty(b:airline_head)
  1002.                                 if s:has_vcscommand
  1003.                                   call VCSCommandEnableBufferSetup()
  1004.                                   if exists('b:VCSCommandBufferInfo')
  1005.                                     let b:airline_head = get(b:VCSCommandBufferInfo, 0, '')
  1006.                                   endif
  1007.                                 endif
  1008.                               endif
  1009.                            
  1010.     1              0.000011   if empty(b:airline_head) || !found_fugitive_head && !s:check_in_path()
  1011.                                 let b:airline_head = ''
  1012.                               endif
  1013.                            
  1014.     1              0.000010   if exists("g:airline#extensions#branch#displayed_head_limit")
  1015.                                 let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit
  1016.                                 if len(b:airline_head) > w:displayed_head_limit - 1
  1017.                                   let b:airline_head = b:airline_head[0:w:displayed_head_limit - 1].'…'
  1018.                                 endif
  1019.                               endif
  1020.                            
  1021.     1              0.000005   return b:airline_head
  1022.  
  1023. FUNCTION  <SNR>154_Init()
  1024. Called 11 times
  1025. Total time:   0.000646
  1026.  Self time:   0.000646
  1027.  
  1028. count  total (s)   self (s)
  1029.    11              0.000056     if s:checked_ctags == 2 && a:silent
  1030.                                     return 0
  1031.                                 elseif s:checked_ctags != 1
  1032.                                     if !s:CheckForExCtags(a:silent)
  1033.                                         return 0
  1034.                                     endif
  1035.                                 endif
  1036.                            
  1037.    11              0.000034     if !s:checked_ctags_types
  1038.                                     call s:GetSupportedFiletypes()
  1039.                                 endif
  1040.                            
  1041.    11              0.000028     if !s:type_init_done
  1042.                                     call s:InitTypes()
  1043.                                 endif
  1044.                            
  1045.    11              0.000033     if !s:autocommands_done
  1046.                                     call s:CreateAutocommands()
  1047.                                     call s:AutoUpdate(fnamemodify(expand('%'), ':p'), 0)
  1048.                                 endif
  1049.                            
  1050.    11              0.000021     return 1
  1051.  
  1052. FUNCTION  airline#parts#mode()
  1053. Called 15 times
  1054. Total time:   0.000111
  1055.  Self time:   0.000111
  1056.  
  1057. count  total (s)   self (s)
  1058.    15              0.000092   return get(w:, 'airline_current_mode', '')
  1059.  
  1060. FUNCTION  UltiSnips#LeavingInsertMode()
  1061. Called 1 time
  1062. Total time:   0.000100
  1063.  Self time:   0.000100
  1064.  
  1065. count  total (s)   self (s)
  1066.     1              0.000099     exec g:_uspy "UltiSnips_Manager._leaving_insert_mode()"
  1067.  
  1068. FUNCTION  sy#repo#get_stats()
  1069. Called 15 times
  1070. Total time:   0.000260
  1071.  Self time:   0.000260
  1072.  
  1073. count  total (s)   self (s)
  1074.    15              0.000123   if !exists('b:sy') || !has_key(b:sy, 'stats')
  1075.                                 return [-1, -1, -1]
  1076.                               endif
  1077.                            
  1078.    15              0.000044   return b:sy.stats
  1079.  
  1080. FUNCTION  xolox#misc#msg#debug()
  1081. Called 4 times
  1082. Total time:   0.000136
  1083.  Self time:   0.000136
  1084.  
  1085. count  total (s)   self (s)
  1086.                               " Show a formatted debugging message to the user, *if the user has enabled
  1087.                               " increased verbosity by setting Vim's ['verbose'] [] option to one
  1088.                               " (1) or higher*.
  1089.                               "
  1090.                               " This function has the same argument handling as the
  1091.                               " `xolox#misc#msg#info()` function.
  1092.                               "
  1093.                               " In the case of `xolox#misc#msg#debug()`, automatic string coercion
  1094.                               " provides lazy evaluation in the sense that complex data structures are
  1095.                               " only converted to strings when the user has enabled increased verbosity.
  1096.                               "
  1097.                               " ['verbose']: http://vimdoc.sourceforge.net/htmldoc/options.html#'verbose'
  1098.     4              0.000039   if &vbs >= 1
  1099.                                 call s:show_message('question', a:000)
  1100.                               endif
  1101.  
  1102. FUNCTION  fugitive#head()
  1103. Called 1 time
  1104. Total time:   0.000527
  1105.  Self time:   0.000047
  1106.  
  1107. count  total (s)   self (s)
  1108.     1              0.000009   if !exists('b:git_dir')
  1109.                                 return ''
  1110.                               endif
  1111.                            
  1112.     1   0.000511   0.000031   return s:repo().head(a:0 ? a:1 : 0)
  1113.  
  1114. FUNCTION  <SNR>88_Highlight_Matching_Pair()
  1115. Called 25 times
  1116. Total time:   0.002572
  1117.  Self time:   0.002572
  1118.  
  1119. count  total (s)   self (s)
  1120.                               " Remove any previous match.
  1121.    25              0.000185   if exists('w:paren_hl_on') && w:paren_hl_on
  1122.                                 silent! call matchdelete(3)
  1123.                                 let w:paren_hl_on = 0
  1124.                               endif
  1125.                            
  1126.                               " Avoid that we remove the popup menu.
  1127.                               " Return when there are no colors (looks like the cursor jumps).
  1128.    25              0.000140   if pumvisible() || (&t_Co < 8 && !has("gui_running"))
  1129.                                 return
  1130.                               endif
  1131.                            
  1132.                               " Get the character under the cursor and check if it's in 'matchpairs'.
  1133.    25              0.000128   let c_lnum = line('.')
  1134.    25              0.000106   let c_col = col('.')
  1135.    25              0.000143   let before = 0
  1136.                            
  1137.    25              0.000120   let text = getline(c_lnum)
  1138.    25              0.000135   let c = text[c_col - 1]
  1139.    25              0.000400   let plist = split(&matchpairs, '.\zs[:,]')
  1140.    25              0.000143   let i = index(plist, c)
  1141.    25              0.000047   if i < 0
  1142.                                 " not found, in Insert mode try character before the cursor
  1143.    25              0.000130     if c_col > 1 && (mode() == 'i' || mode() == 'R')
  1144.    20              0.000043       let before = 1
  1145.    20              0.000078       let c = text[c_col - 2]
  1146.    20              0.000072       let i = index(plist, c)
  1147.    20              0.000020     endif
  1148.    25              0.000038     if i < 0
  1149.                                   " not found, nothing to do
  1150.    25              0.000039       return
  1151.                                 endif
  1152.                               endif
  1153.                            
  1154.                               " Figure out the arguments for searchpairpos().
  1155.                               if i % 2 == 0
  1156.                                 let s_flags = 'nW'
  1157.                                 let c2 = plist[i + 1]
  1158.                               else
  1159.                                 let s_flags = 'nbW'
  1160.                                 let c2 = c
  1161.                                 let c = plist[i - 1]
  1162.                               endif
  1163.                               if c == '['
  1164.                                 let c = '\['
  1165.                                 let c2 = '\]'
  1166.                               endif
  1167.                            
  1168.                               " Find the match.  When it was just before the cursor move it there for a
  1169.                               " moment.
  1170.                               if before > 0
  1171.                                 let has_getcurpos = exists("*getcurpos")
  1172.                                 if has_getcurpos
  1173.                                   " getcurpos() is more efficient but doesn't exist before 7.4.313.
  1174.                                   let save_cursor = getcurpos()
  1175.                                 else
  1176.                                   let save_cursor = winsaveview()
  1177.                                 endif
  1178.                                 call cursor(c_lnum, c_col - before)
  1179.                               endif
  1180.                            
  1181.                               " Build an expression that detects whether the current cursor position is in
  1182.                               " certain syntax types (string, comment, etc.), for use as searchpairpos()'s
  1183.                               " skip argument.
  1184.                               " We match "escape" for special items, such as lispEscapeSpecial.
  1185.                               let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
  1186.                               " If executing the expression determines that the cursor is currently in
  1187.                               " one of the syntax types, then we want searchpairpos() to find the pair
  1188.                               " within those syntax types (i.e., not skip).  Otherwise, the cursor is
  1189.                               " outside of the syntax types and s_skip should keep its value so we skip any
  1190.                               " matching pair inside the syntax types.
  1191.                               execute 'if' s_skip '| let s_skip = 0 | endif'
  1192.                            
  1193.                               " Limit the search to lines visible in the window.
  1194.                               let stoplinebottom = line('w$')
  1195.                               let stoplinetop = line('w0')
  1196.                               if i % 2 == 0
  1197.                                 let stopline = stoplinebottom
  1198.                               else
  1199.                                 let stopline = stoplinetop
  1200.                               endif
  1201.                            
  1202.                               " Limit the search time to 300 msec to avoid a hang on very long lines.
  1203.                               " This fails when a timeout is not supported.
  1204.                               if mode() == 'i' || mode() == 'R'
  1205.                                 let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
  1206.                               else
  1207.                                 let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
  1208.                               endif
  1209.                               try
  1210.                                 let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
  1211.                               catch /E118/
  1212.                                 " Can't use the timeout, restrict the stopline a bit more to avoid taking
  1213.                                 " a long time on closed folds and long lines.
  1214.                                 " The "viewable" variables give a range in which we can scroll while
  1215.                                 " keeping the cursor at the same position.
  1216.                                 " adjustedScrolloff accounts for very large numbers of scrolloff.
  1217.                                 let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
  1218.                                 let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
  1219.                                 let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
  1220.                                 " one of these stoplines will be adjusted below, but the current values are
  1221.                                 " minimal boundaries within the current window
  1222.                                 if i % 2 == 0
  1223.                                   if has("byte_offset") && has("syntax_items") && &smc > 0
  1224.                                 let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
  1225.                                 let stopline = min([bottom_viewable, byte2line(stopbyte)])
  1226.                                   else
  1227.                                 let stopline = min([bottom_viewable, c_lnum + 100])
  1228.                                   endif
  1229.                                   let stoplinebottom = stopline
  1230.                                 else
  1231.                                   if has("byte_offset") && has("syntax_items") && &smc > 0
  1232.                                 let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
  1233.                                 let stopline = max([top_viewable, byte2line(stopbyte)])
  1234.                                   else
  1235.                                 let stopline = max([top_viewable, c_lnum - 100])
  1236.                                   endif
  1237.                                   let stoplinetop = stopline
  1238.                                 endif
  1239.                                 let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
  1240.                               endtry
  1241.                            
  1242.                               if before > 0
  1243.                                 if has_getcurpos
  1244.                                   call setpos('.', save_cursor)
  1245.                                 else
  1246.                                   call winrestview(save_cursor)
  1247.                                 endif
  1248.                               endif
  1249.                            
  1250.                               " If a match is found setup match highlighting.
  1251.                               if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
  1252.                                 if exists('*matchaddpos')
  1253.                                   call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
  1254.                                 else
  1255.                                   exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
  1256.                                 endif
  1257.                                 let w:paren_hl_on = 1
  1258.                               endif
  1259.  
  1260. FUNCTION  <SNR>154_debug()
  1261. Called 6 times
  1262. Total time:   0.000131
  1263.  Self time:   0.000131
  1264.  
  1265. count  total (s)   self (s)
  1266.     6              0.000025     if s:debug
  1267.                                     execute 'redir >> ' . s:debug_file
  1268.                                     silent echon s:gettime() . ': ' . a:msg . "\n"
  1269.                                     redir END
  1270.                                 endif
  1271.  
  1272. FUNCTION  neobundle#config#get_autoload_bundles()
  1273. Called 1 time
  1274. Total time:   0.000049
  1275.  Self time:   0.000049
  1276.  
  1277. count  total (s)   self (s)
  1278.     1              0.000048   return filter(values(s:neobundles), "!v:val.sourced && v:val.lazy")
  1279.  
  1280. FUNCTION  <SNR>155_OnInsertEnter()
  1281. Called 1 time
  1282. Total time:   0.000040
  1283.  Self time:   0.000011
  1284.  
  1285. count  total (s)   self (s)
  1286.     1   0.000034   0.000005   if !s:AllowedToCompleteInCurrentFile()
  1287.                                 return
  1288.                               endif
  1289.                            
  1290.     1              0.000003   let s:old_cursor_position = []
  1291.  
  1292. FUNCTION  airline#statusline()
  1293. Called 15 times
  1294. Total time:   0.000471
  1295.  Self time:   0.000471
  1296.  
  1297. count  total (s)   self (s)
  1298.    15              0.000190   if has_key(s:contexts, a:winnr)
  1299.    15              0.000216     return '%{airline#check_mode('.a:winnr.')}'.s:contexts[a:winnr].line
  1300.                               endif
  1301.                            
  1302.                               " in rare circumstances this happens...see #276
  1303.                               return ''
  1304.  
  1305. FUNCTION  <SNR>154_GetNearbyTag()
  1306. Called 12 times
  1307. Total time:   0.002812
  1308.  Self time:   0.002556
  1309.  
  1310. count  total (s)   self (s)
  1311.    12              0.000043     if s:nearby_disabled
  1312.                                     return {}
  1313.                                 endif
  1314.                            
  1315.    12   0.000262   0.000156     let fileinfo = s:known_files.getCurrent(a:forcecurrent)
  1316.    12              0.000052     if empty(fileinfo)
  1317.                                     return {}
  1318.                                 endif
  1319.                            
  1320.    12              0.000057     let typeinfo = fileinfo.typeinfo
  1321.    12              0.000030     if a:0 > 0
  1322.                                     let curline = a:1
  1323.                                 else
  1324.    12              0.000068         let curline = line('.')
  1325.    12              0.000019     endif
  1326.    12              0.000042     let tag = {}
  1327.                            
  1328.                                 " If a tag appears in a file more than once (for example namespaces in
  1329.                                 " C++) only one of them has a 'tline' entry and can thus be highlighted.
  1330.                                 " The only way to solve this would be to go over the whole tag list again,
  1331.                                 " making everything slower. Since this should be a rare occurence and
  1332.                                 " highlighting isn't /that/ important ignore it for now.
  1333.    58              0.000272     for line in range(curline, 1, -1)
  1334.    58              0.000330         if has_key(fileinfo.fline, line)
  1335.    12              0.000079             let curtag = fileinfo.fline[line]
  1336.    12   0.000298   0.000148             if a:all || typeinfo.getKind(curtag.fields.kind).stl
  1337.    12              0.000049                 let tag = curtag
  1338.    12              0.000020                 break
  1339.                                         endif
  1340.                                     endif
  1341.    46              0.000128     endfor
  1342.                            
  1343.    12              0.000028     return tag
  1344.  
  1345. FUNCTION  neobundle#autoload#insert()
  1346. Called 1 time
  1347. Total time:   0.000074
  1348.  Self time:   0.000025
  1349.  
  1350. count  total (s)   self (s)
  1351.     1   0.000063   0.000014   let bundles = filter(neobundle#config#get_autoload_bundles(), "get(v:val.autoload, 'insert', 0)")
  1352.     1              0.000003   if !empty(bundles)
  1353.                                 call neobundle#config#source_bundles(bundles)
  1354.                                 doautocmd InsertEnter
  1355.                               endif
  1356.  
  1357. FUNCTION  267()
  1358. Called 11 times
  1359. Total time:   0.000492
  1360.  Self time:   0.000492
  1361.  
  1362. count  total (s)   self (s)
  1363.    11              0.000045     if a:full && self.path != ''
  1364.                                     let str = self.path . self.typeinfo.sro . self.name
  1365.                                 else
  1366.    11              0.000049         let str = self.name
  1367.    11              0.000017     endif
  1368.                            
  1369.    11              0.000059     if has_key(self.fields, 'signature')
  1370.    11              0.000025         if a:longsig
  1371.                                         let str .= self.fields.signature
  1372.                                     else
  1373.    11              0.000054             let str .= '()'
  1374.    11              0.000014         endif
  1375.    11              0.000015     endif
  1376.                            
  1377.    11              0.000027     return str
  1378.  
  1379. FUNCTION  airline#highlighter#get_highlight()
  1380. Called 24 times
  1381. Total time:   0.003601
  1382.  Self time:   0.001187
  1383.  
  1384. count  total (s)   self (s)
  1385.    24   0.001184   0.000185   let fg = s:get_syn(a:group, 'fg')
  1386.    24   0.001177   0.000201   let bg = s:get_syn(a:group, 'bg')
  1387.    24              0.000483   let reverse = has('gui_running') ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui') : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm')|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term')
  1388.    24   0.000706   0.000267   return reverse ? s:get_array(bg, fg, a:000) : s:get_array(fg, bg, a:000)
  1389.  
  1390. FUNCTION  <SNR>138_sync_active_winnr()
  1391. Called 4 times
  1392. Total time:   0.000090
  1393.  Self time:   0.000090
  1394.  
  1395. count  total (s)   self (s)
  1396.     4              0.000055   if exists('#airline') && winnr() != s:active_winnr
  1397.                                 call airline#update_statusline()
  1398.                               endif
  1399.  
  1400. FUNCTION  <SNR>77_repo_dir()
  1401. Called 2 times
  1402. Total time:   0.000035
  1403.  Self time:   0.000035
  1404.  
  1405. count  total (s)   self (s)
  1406.     2              0.000031   return join([self.git_dir]+a:000,'/')
  1407.  
  1408. FUNCTION  <SNR>154_IsValidFile()
  1409. Called 1 time
  1410. Total time:   0.000213
  1411.  Self time:   0.000193
  1412.  
  1413. count  total (s)   self (s)
  1414.     1   0.000038   0.000018     call s:debug('Checking if file is valid [' . a:fname . ']')
  1415.                            
  1416.     1              0.000007     if a:fname == '' || a:ftype == ''
  1417.                                     call s:debug('Empty filename or type')
  1418.                                     return 0
  1419.                                 endif
  1420.                            
  1421.     1              0.000027     if !filereadable(a:fname) && getbufvar(a:fname, 'netrw_tmpfile') == ''
  1422.                                     call s:debug('File not readable')
  1423.                                     return 0
  1424.                                 endif
  1425.                            
  1426.     1              0.000048     if getbufvar(a:fname, 'tagbar_ignore') == 1
  1427.                                     call s:debug('File is marked as ignored')
  1428.                                     return 0
  1429.                                 endif
  1430.                            
  1431.     1              0.000004     if &previewwindow
  1432.                                     call s:debug('In preview window')
  1433.                                     return 0
  1434.                                 endif
  1435.                            
  1436.     1              0.000010     if !has_key(s:known_types, a:ftype)
  1437.                                     if exists('g:tagbar_type_' . a:ftype)
  1438.                                         " Filetype definition must have been specified in an 'ftplugin'
  1439.                                         " file, so load it now
  1440.                                         call s:LoadUserTypeDefs(a:ftype)
  1441.                                     else
  1442.                                         call s:debug('Unsupported filetype: ' . a:ftype)
  1443.                                         return 0
  1444.                                     endif
  1445.                                 endif
  1446.                            
  1447.     1              0.000004     return 1
  1448.  
  1449. FUNCTION  airline#highlighter#highlight_modified_inactive()
  1450. Called 1 time
  1451. Total time:   0.000085
  1452.  Self time:   0.000039
  1453.  
  1454. count  total (s)   self (s)
  1455.     1              0.000005   if getbufvar(a:bufnr, '&modified')
  1456.     1              0.000012     let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c') ? g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c : []
  1457.     1              0.000001   else
  1458.                                 let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive.airline_c') ? g:airline#themes#{g:airline_theme}#palette.inactive.airline_c : []
  1459.                               endif
  1460.                            
  1461.     1              0.000002   if !empty(colors)
  1462.     1   0.000056   0.000010     call airline#highlighter#exec('airline_c'.(a:bufnr).'_inactive', colors)
  1463.     1              0.000001   endif
  1464.  
  1465. FUNCTION  airline#extensions#branch#get_head()
  1466. Called 15 times
  1467. Total time:   0.001563
  1468.  Self time:   0.000652
  1469.  
  1470. count  total (s)   self (s)
  1471.    15   0.001038   0.000127   let head = airline#extensions#branch#head()
  1472.    15              0.000163   let empty_message = get(g:, 'airline#extensions#branch#empty_message', get(g:, 'airline_branch_empty_message', ''))
  1473.    15              0.000119   let symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch)
  1474.    15              0.000200   return empty(head) ? empty_message : printf('%s%s', empty(symbol) ? '' : symbol.(g:airline_symbols.space), head)
  1475.  
  1476. FUNCTION  <SNR>154_HighlightTag()
  1477. Called 1 time
  1478. Total time:   0.000317
  1479.  Self time:   0.000074
  1480.  
  1481. count  total (s)   self (s)
  1482.     1              0.000005     let tagline = 0
  1483.                            
  1484.     1              0.000007     let force = a:0 > 0 ? a:1 : 0
  1485.                            
  1486.     1              0.000003     if a:0 > 1
  1487.                                     let tag = s:GetNearbyTag(1, 0, a:2)
  1488.                                 else
  1489.     1   0.000258   0.000015         let tag = s:GetNearbyTag(1, 0)
  1490.     1              0.000002     endif
  1491.     1              0.000005     if !empty(tag)
  1492.     1              0.000006         let tagline = tag.tline
  1493.     1              0.000001     endif
  1494.                            
  1495.                                 " Don't highlight the tag again if it's the same one as last time.
  1496.                                 " This prevents the Tagbar window from jumping back after scrolling with
  1497.                                 " the mouse.
  1498.     1              0.000006     if !force && tagline == s:last_highlight_tline
  1499.     1              0.000003         return
  1500.                                 else
  1501.                                     let s:last_highlight_tline = tagline
  1502.                                 endif
  1503.                            
  1504.                                 let tagbarwinnr = bufwinnr('__Tagbar__')
  1505.                                 if tagbarwinnr == -1
  1506.                                     return
  1507.                                 endif
  1508.                                 let prevwinnr = winnr()
  1509.                                 call s:goto_win(tagbarwinnr)
  1510.                            
  1511.                                 match none
  1512.                            
  1513.                                 " No tag above cursor position so don't do anything
  1514.                                 if tagline == 0
  1515.                                     call s:goto_win(prevwinnr)
  1516.                                     redraw
  1517.                                     return
  1518.                                 endif
  1519.                            
  1520.                                 if g:tagbar_autoshowtag == 1 || a:openfolds
  1521.                                     call s:OpenParents(tag)
  1522.                                 endif
  1523.                            
  1524.                                 " Check whether the tag is inside a closed fold and highlight the parent
  1525.                                 " instead in that case
  1526.                                 let tagline = tag.getClosedParentTline()
  1527.                            
  1528.                                 " Parent tag line number is invalid, better don't do anything
  1529.                                 if tagline <= 0
  1530.                                     call s:goto_win(prevwinnr)
  1531.                                     redraw
  1532.                                     return
  1533.                                 endif
  1534.                            
  1535.                                 " Go to the line containing the tag
  1536.                                 execute tagline
  1537.                            
  1538.                                 " Make sure the tag is visible in the window
  1539.                                 call winline()
  1540.                            
  1541.                                 let foldpat = '[' . s:icon_open . s:icon_closed . ' ]'
  1542.                                 let pattern = '/^\%' . tagline . 'l\s*' . foldpat . '[-+# ]\zs[^( ]\+\ze/'
  1543.                                 call s:debug("Highlight pattern: '" . pattern . "'")
  1544.                                 if hlexists('TagbarHighlight') " Safeguard in case syntax highlighting is disabled
  1545.                                     execute 'match TagbarHighlight ' . pattern
  1546.                                 else
  1547.                                     execute 'match Search ' . pattern
  1548.                                 endif
  1549.                            
  1550.                            
  1551.                                 if a:0 <= 1 " no line explicitly given, so assume we were in the file window
  1552.                                     call s:goto_win(prevwinnr)
  1553.                                 endif
  1554.                            
  1555.                                 redraw
  1556.  
  1557. FUNCTION  xolox#session#auto_save_periodic()
  1558. Called 1 time
  1559. Total time:   0.000065
  1560.  Self time:   0.000065
  1561.  
  1562. count  total (s)   self (s)
  1563.                               " Automatically saves the current editing session every few minutes.
  1564.                               " Normally called by the [CursorHold] [] and [CursorHoldI] [] automatic
  1565.                               " command events.
  1566.                               "
  1567.                               " [CursorHold]: http://vimdoc.sourceforge.net/htmldoc/autocmd.html#CursorHold
  1568.                               " [CursorHoldI]: http://vimdoc.sourceforge.net/htmldoc/autocmd.html#CursorHoldI
  1569.     1              0.000006   if g:session_autosave_periodic > 0
  1570.                                 let interval = g:session_autosave_periodic * 60
  1571.                                 let next_save = s:session_last_flushed + interval
  1572.                                 if localtime() > next_save
  1573.                                   let name = xolox#session#find_current_session()
  1574.                                   if !empty(name)
  1575.                                     if xolox#session#is_tab_scoped()
  1576.                                       call xolox#session#save_tab_cmd(name, '', 'SaveTabSession')
  1577.                                     else
  1578.                                       call xolox#session#save_cmd(name, '', 'SaveSession')
  1579.                                     endif
  1580.                                   endif
  1581.                                 endif
  1582.                               endif
  1583.  
  1584. FUNCTION  290()
  1585. Called 2 times
  1586. Total time:   0.000025
  1587.  Self time:   0.000025
  1588.  
  1589. count  total (s)   self (s)
  1590.     2              0.000022     return get(self._files, a:fname, {})
  1591.  
  1592. FUNCTION  292()
  1593. Called 1 time
  1594. Total time:   0.000012
  1595.  Self time:   0.000012
  1596.  
  1597. count  total (s)   self (s)
  1598.     1              0.000011     return has_key(self._files, a:fname)
  1599.  
  1600. FUNCTION  airline#util#prepend()
  1601. Called 15 times
  1602. Total time:   0.000291
  1603.  Self time:   0.000291
  1604.  
  1605. count  total (s)   self (s)
  1606.    15              0.000079   if a:minwidth > 0 && winwidth(0) < a:minwidth
  1607.                                 return ''
  1608.                               endif
  1609.    15              0.000139   return empty(a:text) ? '' : a:text.s:spc.g:airline_right_alt_sep.s:spc
  1610.  
  1611. FUNCTIONS SORTED ON TOTAL TIME
  1612. count  total (s)   self (s)  function
  1613.     7   0.145669   0.004577  <SNR>155_OnFileReadyToParse()
  1614.    11   0.142187             <SNR>155_GetCompletions()
  1615.     1   0.141464   0.001868  <SNR>155_OnInsertLeave()
  1616.     7   0.140970   0.140898  <SNR>155_UpdateDiagnosticNotifications()
  1617.    18   0.092982   0.004992  youcompleteme#Complete()
  1618.     6   0.067232   0.001917  youcompleteme#OmniComplete()
  1619.    15   0.013569   0.002129  airline#check_mode()
  1620.     1   0.011355   0.003502  airline#highlighter#highlight()
  1621.    10   0.009807   0.001470  <SNR>155_OnCursorMovedInsertMode()
  1622.    15   0.006810   0.003284  airline#extensions#whitespace#check()
  1623.    15   0.005526   0.000599  airline#extensions#tagbar#currenttag()
  1624.    12   0.005218   0.000682  <SNR>147_exec_separator()
  1625.    11   0.004927   0.001220  tagbar#currenttag()
  1626.     2   0.004576   0.000191  <SNR>155_OnCursorHold()
  1627.     9   0.004329             <SNR>155_IdentifierFinishedOperations()
  1628.    14   0.004098             UltiSnips#CursorMoved()
  1629.    24   0.003846   0.000245  airline#themes#get_highlight()
  1630.    24   0.003601   0.001187  airline#highlighter#get_highlight()
  1631.     1   0.003526             <SNR>145_check_mixed_indent()
  1632.    76   0.003371             airline#highlighter#exec()
  1633.  
  1634. FUNCTIONS SORTED ON SELF TIME
  1635. count  total (s)   self (s)  function
  1636.    11              0.142187  <SNR>155_GetCompletions()
  1637.     7   0.140970   0.140898  <SNR>155_UpdateDiagnosticNotifications()
  1638.    18   0.092982   0.004992  youcompleteme#Complete()
  1639.     7   0.145669   0.004577  <SNR>155_OnFileReadyToParse()
  1640.     9              0.004329  <SNR>155_IdentifierFinishedOperations()
  1641.    14              0.004098  UltiSnips#CursorMoved()
  1642.     1              0.003526  <SNR>145_check_mixed_indent()
  1643.     1   0.011355   0.003502  airline#highlighter#highlight()
  1644.    76              0.003371  airline#highlighter#exec()
  1645.    15   0.006810   0.003284  airline#extensions#whitespace#check()
  1646.    25              0.002572  <SNR>88_Highlight_Matching_Pair()
  1647.    12   0.002812   0.002556  <SNR>154_GetNearbyTag()
  1648.    15   0.013569   0.002129  airline#check_mode()
  1649.    48              0.001975  <SNR>147_get_syn()
  1650.     6   0.067232   0.001917  youcompleteme#OmniComplete()
  1651.     1   0.141464   0.001868  <SNR>155_OnInsertLeave()
  1652.    15   0.002786   0.001721  airline#extensions#hunks#get_hunks()
  1653.    10   0.009807   0.001470  <SNR>155_OnCursorMovedInsertMode()
  1654.     9              0.001320  <SNR>155_InsideCommentOrString()
  1655.    11   0.004927   0.001220  tagbar#currenttag()
RAW Paste Data