Created
November 29, 2019 18:38
-
-
Save bstaletic/d18eb1dba8ee28def401874d5184cc3a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FUNCTION traces#cmdl_leave() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:762 | |
Called 2 times | |
Total time: 0.001325 | |
Self time: 0.001130 | |
count total (s) self (s) | |
2 0.000050 let s:nr = bufnr('%') | |
2 0.000046 if !exists('s:buf[s:nr]') | |
return | |
2 0.000004 endif | |
2 0.000270 0.000075 call s:restore_undo_history() | |
" highlights | |
2 0.000033 if exists('s:win[win_getid()]') | |
if &scrolloff !=# 0 | |
let scrolloff = &scrolloff | |
noautocmd let &scrolloff = 0 | |
endif | |
let cur_win = win_getid() | |
let alt_win = win_getid(winnr('#')) | |
let windows = filter(win_findbuf(s:nr), {_, val -> win_id2win(val)}) | |
for id in windows | |
noautocmd call win_gotoid(id) | |
if exists('s:win[id]') | |
if exists('s:win[id].hlight') | |
for group in keys(s:win[id].hlight) | |
if s:win[id].hlight[group].index !=# - 1 | |
silent! call matchdelete(s:win[id].hlight[group].index) | |
endif | |
endfor | |
endif | |
if exists('s:win[id].options') | |
for option in keys(s:win[id].options) | |
execute 'noautocmd let &' . option . '="' . s:win[id].options[option] . '"' | |
endfor | |
endif | |
unlet s:win[id] | |
endif | |
endfor | |
if bufname('%') !=# '[Command Line]' | |
noautocmd call win_gotoid(alt_win) | |
noautocmd call win_gotoid(cur_win) | |
endif | |
if exists('scrolloff') | |
noautocmd let &scrolloff = scrolloff | |
endif | |
2 0.000006 endif | |
2 0.000030 if &hlsearch !=# s:buf[s:nr].hlsearch | |
noautocmd let &hlsearch = s:buf[s:nr].hlsearch | |
2 0.000005 endif | |
2 0.000020 if &cmdheight !=# s:buf[s:nr].cmdheight | |
noautocmd let &cmdheight = s:buf[s:nr].cmdheight | |
2 0.000006 endif | |
2 0.000046 if winsaveview() !=# s:buf[s:nr].view | |
call winrestview(s:buf[s:nr].view) | |
2 0.000004 endif | |
2 0.000040 unlet s:buf[s:nr] | |
FUNCTION <SNR>42_is_file_buffer() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:60 | |
Called 1 time | |
Total time: 0.000034 | |
Self time: 0.000034 | |
count total (s) self (s) | |
1 0.000031 return empty(getbufvar(a:bufnr, '&buftype')) | |
FUNCTION gitgutter#async#execute() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/async.vim:14 | |
Called 1 time | |
Total time: 0.001526 | |
Self time: 0.001458 | |
count total (s) self (s) | |
1 0.000072 0.000014 call gitgutter#debug#log('[async] '.a:cmd) | |
1 0.000008 let options = { 'stdoutbuffer': [], 'buffer': a:bufnr, 'handler': a:handler } | |
1 0.000023 0.000013 let command = s:build_command(a:cmd) | |
1 0.000006 if has('nvim') | |
call jobstart(command, extend(options, { 'on_stdout': function('s:on_stdout_nvim'), 'on_stderr': function('s:on_stderr_nvim'), 'on_exit': function('s:on_exit_nvim') })) | |
1 0.000001 else | |
1 0.001385 call job_start(command, { 'out_cb': function('s:on_stdout_vim', options), 'err_cb': function('s:on_stderr_vim', options), 'close_cb': function('s:on_exit_vim', options) }) | |
1 0.000010 endif | |
FUNCTION <SNR>81_remove_signs() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/sign.vim:154 | |
Called 1 time | |
Total time: 0.000146 | |
Self time: 0.000092 | |
count total (s) self (s) | |
1 0.000053 0.000025 if a:all_signs && s:supports_star && empty(gitgutter#utility#getbufvar(a:bufnr, 'other_signs')) | |
1 0.000049 0.000023 let dummy_sign_present = gitgutter#utility#getbufvar(a:bufnr, 'dummy_sign') | |
1 0.000016 execute "sign unplace * buffer=" . a:bufnr | |
1 0.000004 if dummy_sign_present | |
execute "sign place" s:dummy_sign_id "line=" . 9999 "name=GitGutterDummy buffer=" . a:bufnr | |
1 0.000002 endif | |
else | |
for id in a:sign_ids | |
execute "sign unplace" id | |
endfor | |
1 0.000002 endif | |
FUNCTION <SNR>42_winshell() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:65 | |
Called 1 time | |
Total time: 0.000033 | |
Self time: 0.000033 | |
count total (s) self (s) | |
1 0.000031 return &shell =~? 'cmd' || exists('+shellslash') && !&shellslash | |
FUNCTION <SNR>42_unc_path() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:168 | |
Called 1 time | |
Total time: 0.000232 | |
Self time: 0.000044 | |
count total (s) self (s) | |
1 0.000231 0.000043 return s:abs_path(a:bufnr, 0) =~ '^\\\\' | |
FUNCTION <SNR>77_Complete() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:897 | |
Called 76 times | |
Total time: 0.011293 | |
Self time: 0.002853 | |
count total (s) self (s) | |
" Do not call user's completion function if the start column is after the | |
" current column or if there are no candidates. Close the completion menu | |
" instead. This avoids keeping the user in completion mode. | |
76 0.000448 if s:completion.completion_start_column > s:completion.column || empty( s:completion.completions ) | |
30 0.000575 0.000323 call s:CloseCompletionMenu() | |
46 0.000055 else | |
" <c-x><c-u> invokes the user's completion function (which we have set to | |
" youcompleteme#CompleteFunc), and <c-p> tells Vim to select the previous | |
" completion candidate. This is necessary because by default, Vim selects | |
" the first candidate when completion is invoked, and selecting a candidate | |
" automatically replaces the current text with it. Calling <c-p> forces Vim | |
" to deselect the first candidate and in turn preserve the user's current | |
" text until he explicitly chooses to replace it with a completion. | |
46 0.000930 0.000539 call s:SendKeys( "\<C-X>\<C-U>\<C-P>" ) | |
76 0.000074 endif | |
" Displaying or hiding the PUM might mean we need to hide the sig help | |
76 0.008545 0.000748 call s:UpdateSignatureHelp() | |
FUNCTION slash#callBlink() | |
Defined: ~/.vim/autoload/slash.vim:41 | |
Called 2 times | |
Total time: 0.000273 | |
Self time: 0.000273 | |
count total (s) self (s) | |
2 0.000103 if getcmdtype() == '/' || getcmdtype() == '?' | |
return "\<cr>:call slash#blink(3, 100)\<cr>" | |
2 0.000015 else | |
2 0.000028 if &grepprg != 'grep' | |
2 0.000051 return "\<C-\>eslash#SubstituteWordBoundaries()\<cr>\<cr>" | |
endif | |
return "\<cr>" | |
endif | |
FUNCTION neomake#GetCurrentErrorMsg() | |
Defined: ~/.vim/pack/bundle/start/neomake/autoload/neomake.vim:2632 | |
Called 18 times | |
Total time: 0.003250 | |
Self time: 0.003250 | |
count total (s) self (s) | |
18 0.000325 let buf = bufnr('%') | |
18 0.000212 let ln = line('.') | |
18 0.000121 let ln_errors = [] | |
54 0.000373 for maker_type in ['file', 'project'] | |
36 0.000790 let buf_errors = get(s:current_errors[maker_type], buf, {}) | |
36 0.000551 let ln_errors += get(buf_errors, ln, []) | |
54 0.000205 endfor | |
18 0.000121 if empty(ln_errors) | |
18 0.000081 return '' | |
endif | |
if len(ln_errors) > 1 | |
let ln_errors = copy(ln_errors) | |
call sort(ln_errors, function('neomake#utils#sort_by_col')) | |
endif | |
let entry = ln_errors[0] | |
let r = entry.maker_name . ': ' . entry.text | |
let suffix = entry.type . (entry.nr != -1 ? entry.nr : '') | |
if !empty(suffix) | |
let r .= ' ('.suffix.')' | |
endif | |
return r | |
FUNCTION <SNR>77_SendKeys() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:627 | |
Called 65 times | |
Total time: 0.000915 | |
Self time: 0.000915 | |
count total (s) self (s) | |
" By default keys are added to the end of the typeahead buffer. If there are | |
" already keys in the buffer, they will be processed first and may change the | |
" state that our keys combination was sent for (e.g. <C-X><C-U><C-P> in normal | |
" mode instead of insert mode or <C-e> outside of completion mode). We avoid | |
" that by inserting the keys at the start of the typeahead buffer with the 'i' | |
" option. Also, we don't want the keys to be remapped to something else so we | |
" add the 'n' option. | |
65 0.000611 call feedkeys( a:keys, 'in' ) | |
FUNCTION <SNR>72_save_last_seen_change() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/diff.vim:352 | |
Called 1 time | |
Total time: 0.000067 | |
Self time: 0.000027 | |
count total (s) self (s) | |
1 0.000066 0.000026 call gitgutter#utility#setbufvar(a:bufnr, 'tick', getbufvar(a:bufnr, 'changedtick')) | |
FUNCTION <SNR>77_ShouldUseSignatureHelp() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:865 | |
Called 2357 times | |
Total time: 0.520391 | |
Self time: 0.520391 | |
count total (s) self (s) | |
2357 0.510175 return py3eval( 'vimsupport.VimSupportsPopupWindows()' ) | |
FUNCTION <SNR>49_t_stop() | |
Defined: ~/.vim/pack/bundle/start/traces/plugin/traces.vim:46 | |
Called 2 times | |
Total time: 0.001359 | |
Self time: 0.001359 | |
count total (s) self (s) | |
2 0.000029 if exists('s:previous_cmdl') | |
unlet s:previous_cmdl | |
2 0.000008 endif | |
2 0.000019 if exists('s:track_cmdl_timer') | |
2 0.000020 call timer_stop(s:track_cmdl_timer) | |
2 0.000014 unlet s:track_cmdl_timer | |
2 0.000005 endif | |
2 0.000017 if exists('s:start_init_timer') | |
2 0.000156 call timer_stop(s:start_init_timer) | |
2 0.000012 unlet s:start_init_timer | |
2 0.000005 endif | |
2 0.000024 augroup traces_augroup_cmdline_changed | |
2 0.000998 autocmd! | |
2 0.000012 augroup END | |
FUNCTION <SNR>77_RequestSignatureHelp() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:870 | |
Called 38 times | |
Total time: 0.022343 | |
Self time: 0.014633 | |
count total (s) self (s) | |
38 0.003777 0.000590 if !s:ShouldUseSignatureHelp() | |
return | |
38 0.000049 endif | |
38 0.012974 py3 ycm_state.SendSignatureHelpRequest() | |
38 0.005320 0.000797 call s:PollSignatureHelp() | |
FUNCTION <SNR>42_not_git_dir() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:56 | |
Called 1 time | |
Total time: 0.000438 | |
Self time: 0.000063 | |
count total (s) self (s) | |
1 0.000436 0.000061 return s:dir(a:bufnr) !~ '[/\\]\.git\($\|[/\\]\)' | |
FUNCTION <SNR>77_ClosePreviewWindowIfNeeded() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:766 | |
Called 2 times | |
Total time: 0.000103 | |
Self time: 0.000103 | |
count total (s) self (s) | |
2 0.000032 let current_buffer_name = bufname('') | |
" We don't want to try to close the preview window in special buffers like | |
" "[Command Line]"; if we do, Vim goes bonkers. Special buffers always start | |
" with '['. | |
2 0.000031 if current_buffer_name[ 0 ] == '[' | |
return | |
2 0.000006 endif | |
" This command does the actual closing of the preview window. If no preview | |
" window is shown, nothing happens. | |
2 0.000006 pclose | |
FUNCTION gitgutter#utility#cd_cmd() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:163 | |
Called 1 time | |
Total time: 0.000533 | |
Self time: 0.000069 | |
count total (s) self (s) | |
1 0.000404 0.000051 let cd = s:unc_path(a:bufnr) ? 'pushd' : (s:windows() ? 'cd /d' : 'cd') | |
1 0.000127 0.000016 return cd.' '.s:dir(a:bufnr).' && '.a:cmd | |
FUNCTION neomake#CursorMovedDelayed() | |
Defined: ~/.vim/pack/bundle/start/neomake/autoload/neomake.vim:2691 | |
Called 45 times | |
Total time: 0.003945 | |
Self time: 0.003945 | |
count total (s) self (s) | |
45 0.000652 if exists('s:cursormoved_timer') | |
45 0.000576 call timer_stop(s:cursormoved_timer) | |
45 0.000138 endif | |
45 0.001732 let s:cursormoved_timer = timer_start(get(g:, 'neomake_cursormoved_delay', 100), function('s:cursormoved_delayed_cb')) | |
45 0.000634 let s:cursormoved_last_pos = getpos('.') | |
FUNCTION <SNR>77_OnCursorMovedNormalMode() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:688 | |
Called 45 times | |
Total time: 0.026185 | |
Self time: 0.014648 | |
count total (s) self (s) | |
45 0.013127 0.001590 if !s:AllowedToCompleteInCurrentBuffer() | |
return | |
45 0.000101 endif | |
45 0.012624 py3 ycm_state.OnCursorMoved() | |
FUNCTION <SNR>70_build_command() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/async.vim:40 | |
Called 1 time | |
Total time: 0.000010 | |
Self time: 0.000010 | |
count total (s) self (s) | |
1 0.000004 if has('unix') | |
1 0.000004 return ['sh', '-c', a:cmd] | |
endif | |
if has('win32') | |
return has('nvim') ? ['cmd.exe', '/c', a:cmd] : 'cmd.exe /c '.a:cmd | |
endif | |
throw 'unknown os' | |
FUNCTION youcompleteme#CompleteFunc() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:919 | |
Called 92 times | |
Total time: 0.002101 | |
Self time: 0.002101 | |
count total (s) self (s) | |
92 0.000304 if a:findstart | |
" When auto-wrapping is enabled, Vim wraps the current line after the | |
" completion request is sent but before calling this function. The starting | |
" column returned by the server is invalid in that case and must be | |
" recomputed. | |
46 0.000224 if s:completion.line != line( '.' ) | |
" Given | |
" scb: column where the completion starts before auto-wrapping | |
" cb: cursor column before auto-wrapping | |
" sca: column where the completion starts after auto-wrapping | |
" ca: cursor column after auto-wrapping | |
" we have | |
" ca - sca = cb - scb | |
" sca = scb + ca - cb | |
let s:completion.completion_start_column += col( '.' ) - s:completion.column | |
46 0.000079 endif | |
46 0.000247 return s:completion.completion_start_column - 1 | |
46 0.000040 endif | |
46 0.000103 return s:completion.completions | |
FUNCTION <SNR>79_cursormoved_delayed_cb() | |
Defined: ~/.vim/pack/bundle/start/neomake/autoload/neomake.vim:2686 | |
Called 18 times | |
Total time: 0.007626 | |
Self time: 0.001600 | |
count total (s) self (s) | |
18 0.000755 if getpos('.') == s:cursormoved_last_pos | |
18 0.006678 0.000652 call neomake#CursorMoved() | |
18 0.000043 endif | |
FUNCTION <SNR>83_save_marks() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:835 | |
Called 2 times | |
Total time: 0.000438 | |
Self time: 0.000438 | |
count total (s) self (s) | |
2 0.000063 if !exists('s:buf[s:nr].marks') | |
2 0.000027 let types = ['[', ']'] | |
2 0.000050 let s:buf[s:nr].marks = {} | |
6 0.000056 for mark in types | |
4 0.000149 let s:buf[s:nr].marks[mark] = getpos("'" . mark) | |
6 0.000038 endfor | |
2 0.000008 endif | |
FUNCTION <SNR>77_PollCompletion() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:852 | |
Called 78 times | |
Total time: 0.046682 | |
Self time: 0.039974 | |
count total (s) self (s) | |
78 0.017652 if !py3eval( 'ycm_state.CompletionRequestReady()' ) | |
40 0.000844 let s:pollers.completion.id = timer_start( s:pollers.completion.wait_milliseconds, function( 's:PollCompletion' ) ) | |
40 0.000100 return | |
38 0.000047 endif | |
38 0.020029 let s:completion = py3eval( 'ycm_state.GetCompletionResponse()' ) | |
38 0.007381 0.000673 call s:Complete() | |
FUNCTION <SNR>77_OnCompleteChanged() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:509 | |
Called 72 times | |
Total time: 0.016606 | |
Self time: 0.001451 | |
count total (s) self (s) | |
72 0.006640 0.000672 if !s:AllowedToCompleteInCurrentBuffer() | |
return | |
72 0.000047 endif | |
72 0.009757 0.000570 call s:UpdateSignatureHelp() | |
FUNCTION gitgutter#diff#parse_diff() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/diff.vim:174 | |
Called 1 time | |
Total time: 0.000070 | |
Self time: 0.000070 | |
count total (s) self (s) | |
1 0.000009 let hunks = [] | |
1 0.000032 for line in split(a:diff, '\n') | |
let hunk_info = gitgutter#diff#parse_hunk(line) | |
if len(hunk_info) == 4 | |
call add(hunks, hunk_info) | |
endif | |
1 0.000002 endfor | |
1 0.000005 return hunks | |
FUNCTION gitgutter#diff#process_hunks() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/diff.vim:200 | |
Called 1 time | |
Total time: 0.000060 | |
Self time: 0.000060 | |
count total (s) self (s) | |
1 0.000032 let modified_lines = [] | |
1 0.000007 for hunk in a:hunks | |
call extend(modified_lines, s:process_hunk(a:bufnr, hunk)) | |
1 0.000003 endfor | |
1 0.000005 return modified_lines | |
FUNCTION <SNR>81_find_current_signs() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/sign.vim:97 | |
Called 1 time | |
Total time: 0.000432 | |
Self time: 0.000298 | |
count total (s) self (s) | |
1 0.000007 let gitgutter_signs = {} " <line_number (string)>: {'id': <id (number)>, 'name': <name (string)>} | |
1 0.000005 let other_signs = [] " [<line_number (number),...] | |
1 0.000005 let dummy_sign_placed = 0 | |
1 0.000010 redir => signs | |
1 0.000043 silent execute "sign place buffer=" . a:bufnr | |
1 0.000008 redir END | |
1 0.000036 for sign_line in filter(split(signs, '\n')[2:], 'v:val =~# "="') | |
" Typical sign line: line=88 id=1234 name=GitGutterLineAdded | |
" We assume splitting is faster than a regexp. | |
let components = split(sign_line) | |
let name = split(components[2], '=')[1] | |
if name =~# 'GitGutterDummy' | |
let dummy_sign_placed = 1 | |
else | |
let line_number = str2nr(split(components[0], '=')[1]) | |
if name =~# 'GitGutter' | |
let id = str2nr(split(components[1], '=')[1]) | |
" Remove orphaned signs (signs placed on lines which have been deleted). | |
" (When a line is deleted its sign lingers. Subsequent lines' signs' | |
" line numbers are decremented appropriately.) | |
if has_key(gitgutter_signs, line_number) | |
execute "sign unplace" gitgutter_signs[line_number].id | |
endif | |
let gitgutter_signs[line_number] = {'id': id, 'name': name} | |
else | |
call add(other_signs, line_number) | |
endif | |
end | |
1 0.000003 endfor | |
1 0.000072 0.000025 call gitgutter#utility#setbufvar(a:bufnr, 'dummy_sign', dummy_sign_placed) | |
1 0.000070 0.000023 call gitgutter#utility#setbufvar(a:bufnr, 'gitgutter_signs', gitgutter_signs) | |
1 0.000085 0.000045 call gitgutter#utility#setbufvar(a:bufnr, 'other_signs', other_signs) | |
FUNCTION GetVimIndentIntern() | |
Defined: /usr/share/vim/vim81/indent/vim.vim:36 | |
Called 25 times | |
Total time: 0.008073 | |
Self time: 0.008073 | |
count total (s) self (s) | |
" Find a non-blank line above the current line. | |
25 0.000203 let lnum = prevnonblank(v:lnum - 1) | |
" If the current line doesn't start with '\' or '"\ ' and below a line that | |
" starts with '\' or '"\ ', use the indent of the line above it. | |
25 0.000130 let cur_text = getline(v:lnum) | |
25 0.000380 if cur_text !~ s:lineContPat | |
25 0.000262 while lnum > 0 && getline(lnum) =~ s:lineContPat | |
let lnum = lnum - 1 | |
25 0.000045 endwhile | |
25 0.000026 endif | |
" At the start of the file use zero indent. | |
25 0.000044 if lnum == 0 | |
return 0 | |
25 0.000026 endif | |
25 0.000094 let prev_text = getline(lnum) | |
" Add a 'shiftwidth' after :if, :while, :try, :catch, :finally, :function | |
" and :else. Add it three times for a line that starts with '\' or '"\ ' | |
" after a line that doesn't (or g:vim_indent_cont if it exists). | |
25 0.000107 let ind = indent(lnum) | |
" In heredoc indenting works completely differently. | |
25 0.000207 if has('syntax_items') | |
25 0.001652 let syn_here = synIDattr(synID(v:lnum, 1, 1), "name") | |
25 0.000203 if syn_here =~ 'vimLetHereDocStop' | |
" End of heredoc: use indent of matching start line | |
let lnum = v:lnum - 1 | |
while lnum > 0 | |
if synIDattr(synID(lnum, 1, 1), "name") !~ 'vimLetHereDoc' | |
return indent(lnum) | |
endif | |
let lnum -= 1 | |
endwhile | |
return 0 | |
25 0.000026 endif | |
25 0.000138 if syn_here =~ 'vimLetHereDoc' | |
if synIDattr(synID(lnum, 1, 1), "name") !~ 'vimLetHereDoc' | |
" First line in heredoc: increase indent | |
return ind + shiftwidth() | |
endif | |
" Heredoc continues: no change in indent | |
return ind | |
25 0.000021 endif | |
25 0.000020 endif | |
25 0.000213 if cur_text =~ s:lineContPat && v:lnum > 1 && prev_text !~ s:lineContPat | |
if exists("g:vim_indent_cont") | |
let ind = ind + g:vim_indent_cont | |
else | |
let ind = ind + shiftwidth() * 3 | |
endif | |
25 0.000232 elseif prev_text =~ '^\s*aug\%[roup]\s\+' && prev_text !~ '^\s*aug\%[roup]\s\+[eE][nN][dD]\>' | |
let ind = ind + shiftwidth() | |
25 0.000025 else | |
" A line starting with :au does not increment/decrement indent. | |
25 0.000160 if prev_text !~ '^\s*au\%[tocmd]' | |
25 0.000643 let i = match(prev_text, '\(^\||\)\s*\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>') | |
25 0.000063 if i >= 0 | |
1 0.000012 let ind += shiftwidth() | |
1 0.000022 if strpart(prev_text, i, 1) == '|' && has('syntax_items') && synIDattr(synID(lnum, i, 1), "name") =~ '\(Comment\|String\)$' | |
let ind -= shiftwidth() | |
1 0.000003 endif | |
25 0.000023 endif | |
25 0.000021 endif | |
25 0.000023 endif | |
" If the previous line contains an "end" after a pipe, but not in an ":au" | |
" command. And not when there is a backslash before the pipe. | |
" And when syntax HL is enabled avoid a match inside a string. | |
25 0.000285 let i = match(prev_text, '[^\\]|\s*\(ene\@!\)') | |
25 0.000070 if i > 0 && prev_text !~ '^\s*au\%[tocmd]' | |
if !has('syntax_items') || synIDattr(synID(lnum, i + 2, 1), "name") !~ '\(Comment\|String\)$' | |
let ind = ind - shiftwidth() | |
endif | |
25 0.000024 endif | |
" Subtract a 'shiftwidth' on a :endif, :endwhile, :catch, :finally, :endtry, | |
" :endfun, :else and :augroup END. | |
25 0.000429 if cur_text =~ '^\s*\(ene\@!\|cat\|fina\|el\|aug\%[roup]\s\+[eE][nN][dD]\)' | |
23 0.000130 let ind = ind - shiftwidth() | |
25 0.000029 endif | |
25 0.000049 return ind | |
FUNCTION <SNR>83_evaluate_range() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:330 | |
Called 22 times | |
Total time: 0.006102 | |
Self time: 0.006102 | |
count total (s) self (s) | |
22 0.000353 let result = { 'range': [], 'pattern': '', 'end': ''} | |
22 0.000149 let s:range_valid = 1 | |
22 0.000332 let pos = s:buf[s:nr].cur_init_pos[0] | |
22 0.000223 for specifier in a:range_structure | |
let tmp_pos = pos | |
let specifier_result = [] | |
for address in specifier.addresses | |
" skip empty unclosed pattern specifier when range is empty otherwise | |
" substitute it with current position | |
if address.address =~# '^[?/]$' | |
let s:buf[s:nr].show_range = 1 | |
if empty(result.range) | |
break | |
endif | |
let address.address = '.' | |
endif | |
let query = s:spec_to_abs(address, tmp_pos) | |
" % specifier doesn't accept additional addresses | |
if !query.valid || len(query.range) == 2 && len(specifier.addresses) > 1 | |
let s:range_valid = 0 | |
break | |
endif | |
let tmp_pos = query.range[-1] | |
let specifier_result = deepcopy(query.range) | |
let result.pattern = query.regex | |
endfor | |
if !s:range_valid | |
break | |
endif | |
call extend(result.range, specifier_result) | |
if get(specifier, 'delimiter') is# ';' | |
let pos = result.range[-1] | |
endif | |
22 0.000123 endfor | |
22 0.000173 if !empty(result.range) | |
let result.end = result.range[-1] | |
if len(result.range) == 1 | |
call extend(result.range, result.range) | |
else | |
let result.range = result.range[-2:-1] | |
if result.range[-1] < result.range[-2] | |
let temp = result.range[-2] | |
let result.range[-2] = result.range[-1] | |
let result.range[-1] = temp | |
endif | |
endif | |
22 0.000047 endif | |
22 0.000244 return s:range_valid ? result : { 'range': [], 'pattern': '', 'end': '' } | |
FUNCTION gitgutter#debug#log() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/debug.vim:80 | |
Called 2 times | |
Total time: 0.000185 | |
Self time: 0.000185 | |
count total (s) self (s) | |
2 0.000013 if g:gitgutter_log | |
if s:new_log_session && gitgutter#async#available() | |
if exists('*ch_logfile') | |
call ch_logfile(s:channel_log, 'w') | |
endif | |
endif | |
execute 'redir >> '.s:log_file | |
if s:new_log_session | |
let s:start = reltime() | |
silent echo "\n==== start log session ====" | |
endif | |
let elapsed = reltimestr(reltime(s:start)).' ' | |
silent echo '' | |
" callers excluding this function | |
silent echo elapsed.expand('<sfile>')[:-22].':' | |
silent echo elapsed.s:format_for_log(a:message) | |
if a:0 && !empty(a:1) | |
for msg in a:000 | |
silent echo elapsed.s:format_for_log(msg) | |
endfor | |
endif | |
redir END | |
let s:new_log_session = 0 | |
2 0.000003 endif | |
FUNCTION <SNR>77_OnFileReadyToParse() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:590 | |
Called 12 times | |
Total time: 0.038155 | |
Self time: 0.034907 | |
count total (s) self (s) | |
" Accepts an optional parameter that is either 0 or 1. If 1, send a | |
" FileReadyToParse event notification, whether the buffer has changed or not; | |
" effectively forcing a parse of the buffer. Default is 0. | |
12 0.000142 let force_parsing = a:0 > 0 && a:1 | |
" We only want to send a new FileReadyToParse event notification if the buffer | |
" has changed since the last time we sent one, or if forced. | |
12 0.002309 if force_parsing || py3eval( "ycm_state.NeedsReparse()" ) | |
" We switched buffers or somethuing, so claer. | |
" FIXME: sig hekp should be buffer local? | |
10 0.003774 0.000526 call s:ClearSignatureHelp() | |
10 0.030878 py3 ycm_state.OnFileReadyToParse() | |
10 0.000272 call timer_stop( s:pollers.file_parse_response.id ) | |
10 0.000430 let s:pollers.file_parse_response.id = timer_start( s:pollers.file_parse_response.wait_milliseconds, function( 's:PollFileParseResponse' ) ) | |
12 0.000059 endif | |
FUNCTION <SNR>77_UpdateSignatureHelp() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:943 | |
Called 232 times | |
Total time: 0.060609 | |
Self time: 0.017931 | |
count total (s) self (s) | |
232 0.045132 0.002454 if !s:ShouldUseSignatureHelp() | |
return | |
232 0.000244 endif | |
232 0.014295 call py3eval( 'ycm_state.UpdateSignatureHelp( vim.eval( "s:signature_help" ) )' ) | |
FUNCTION <SNR>77_DisableOnLargeFile() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:393 | |
Called 253 times | |
Total time: 0.003272 | |
Self time: 0.003272 | |
count total (s) self (s) | |
253 0.001849 if exists( 'b:ycm_largefile' ) | |
253 0.000922 return b:ycm_largefile | |
endif | |
let threshold = g:ycm_disable_for_files_larger_than_kb * 1024 | |
let b:ycm_largefile = threshold > 0 && getfsize( expand( a:buffer ) ) > threshold | |
if b:ycm_largefile | |
py3 vimsupport.PostVimMessage( 'YouCompleteMe is disabled in this buffer; the file exceeded the max size (see YCM options).' ) | |
endif | |
return b:ycm_largefile | |
FUNCTION gitgutter#utility#extension() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:85 | |
Called 1 time | |
Total time: 0.000172 | |
Self time: 0.000034 | |
count total (s) self (s) | |
1 0.000171 0.000033 return fnamemodify(s:abs_path(a:bufnr, 0), ':e') | |
FUNCTION <SNR>83_trim() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:83 | |
Called 90 times | |
Total time: 0.005215 | |
Self time: 0.005215 | |
count total (s) self (s) | |
90 0.000608 if a:0 == 2 | |
2 0.000035 let a:1[0] = strcharpart(a:1[0], a:2) | |
88 0.000266 else | |
88 0.002872 let a:1[0] = substitute(a:1[0], '^\s\+', '', '') | |
90 0.000331 endif | |
FUNCTION <SNR>83_evaluate_cmdl() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:818 | |
Called 22 times | |
Total time: 0.045251 | |
Self time: 0.005333 | |
count total (s) self (s) | |
22 0.000235 let cmdl = {} | |
22 0.000233 let cmdl.string = a:string | |
22 0.023988 0.001470 let r = s:evaluate_range(s:parse_range([], cmdl.string)) | |
22 0.000181 let cmdl.range = {} | |
22 0.000173 let cmdl.range.abs = r.range | |
22 0.000137 let cmdl.range.end = r.end | |
22 0.001320 0.000932 let cmdl.range.pattern = s:get_selection_regexp(r.range) | |
22 0.001082 0.000713 let cmdl.range.specifier = s:add_flags(r.pattern, cmdl, 3) | |
22 0.000149 let cmdl.cmd = {} | |
22 0.000138 let cmdl.cmd.args = {} | |
22 0.017294 0.000651 call s:parse_command(cmdl) | |
22 0.000119 return cmdl | |
FUNCTION <SNR>77_PollFileParseResponse() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:612 | |
Called 10 times | |
Total time: 0.005481 | |
Self time: 0.005481 | |
count total (s) self (s) | |
10 0.002511 if !py3eval( "ycm_state.FileParseRequestReady()" ) | |
let s:pollers.file_parse_response.id = timer_start( s:pollers.file_parse_response.wait_milliseconds, function( 's:PollFileParseResponse' ) ) | |
return | |
10 0.000035 endif | |
10 0.001627 py3 ycm_state.HandleFileParseRequest() | |
10 0.000790 if py3eval( "ycm_state.ShouldResendFileParseRequest()" ) | |
call s:OnFileReadyToParse( 1 ) | |
10 0.000028 endif | |
FUNCTION <SNR>49_create_cmdl_changed_au() | |
Defined: ~/.vim/pack/bundle/start/traces/plugin/traces.vim:28 | |
Called 2 times | |
Total time: 0.001394 | |
Self time: 0.001012 | |
count total (s) self (s) | |
2 0.000069 augroup traces_augroup_cmdline_changed | |
2 0.000749 autocmd! | |
2 0.000065 autocmd CmdlineChanged : call s:cmdline_changed() | |
2 0.000009 augroup END | |
" necessary when entering command line that has already been populated with | |
" text from mappings | |
2 0.000474 0.000092 call s:cmdline_changed() | |
FUNCTION gitgutter#hunk#hunks() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/hunk.vim:6 | |
Called 1 time | |
Total time: 0.000061 | |
Self time: 0.000029 | |
count total (s) self (s) | |
1 0.000060 0.000028 return gitgutter#utility#getbufvar(a:bufnr, 'hunks', []) | |
FUNCTION <SNR>77_AllowedToCompleteInCurrentBuffer() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:435 | |
Called 253 times | |
Total time: 0.040114 | |
Self time: 0.005947 | |
count total (s) self (s) | |
253 0.039889 0.005722 return s:AllowedToCompleteInBuffer( '%' ) | |
FUNCTION gitgutter#sign#update_signs() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/sign.vim:57 | |
Called 1 time | |
Total time: 0.001042 | |
Self time: 0.000183 | |
count total (s) self (s) | |
1 0.000460 0.000028 call s:find_current_signs(a:bufnr) | |
1 0.000014 let new_gitgutter_signs_line_numbers = map(copy(a:modified_lines), 'v:val[0]') | |
1 0.000151 0.000040 let obsolete_signs = s:obsolete_gitgutter_signs_to_remove(a:bufnr, new_gitgutter_signs_line_numbers) | |
1 0.000011 let flicker_possible = s:remove_all_old_signs && !empty(a:modified_lines) | |
1 0.000004 if flicker_possible | |
call s:add_dummy_sign(a:bufnr) | |
1 0.000002 endif | |
1 0.000171 0.000025 call s:remove_signs(a:bufnr, obsolete_signs, s:remove_all_old_signs) | |
1 0.000202 0.000032 call s:upsert_new_gitgutter_signs(a:bufnr, a:modified_lines) | |
1 0.000004 if flicker_possible | |
call gitgutter#sign#remove_dummy_sign(a:bufnr, 0) | |
1 0.000002 endif | |
FUNCTION <SNR>77_OnTextChangedInsertMode() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:706 | |
Called 40 times | |
Total time: 0.183903 | |
Self time: 0.007139 | |
count total (s) self (s) | |
40 0.003228 0.000373 if !s:AllowedToCompleteInCurrentBuffer() | |
return | |
40 0.000023 endif | |
40 0.000048 if s:completion_stopped | |
let s:completion_stopped = 0 | |
let s:completion = s:default_completion | |
return | |
40 0.000023 endif | |
40 0.014312 0.000431 call s:IdentifierFinishedOperations() | |
" We have to make sure we correctly leave semantic mode even when the user | |
" inserts something like a "operator[]" candidate string which fails | |
" CurrentIdentifierFinished check. | |
40 0.000120 if s:force_semantic && !py3eval( 'base.LastEnteredCharIsIdentifierChar()' ) | |
let s:force_semantic = 0 | |
40 0.000031 endif | |
40 0.012757 0.000960 if &completefunc == "youcompleteme#CompleteFunc" && ( g:ycm_auto_trigger || s:force_semantic ) && !s:InsideCommentOrStringAndShouldStop() && !s:OnBlankLine() | |
" Immediately call previous completion to avoid flickers. | |
38 0.004944 0.000359 call s:Complete() | |
38 0.083738 0.000386 call s:RequestCompletion() | |
38 0.038555 0.000604 call s:UpdateSignatureHelp() | |
38 0.023027 0.000684 call s:RequestSignatureHelp() | |
40 0.000052 endif | |
40 0.002002 py3 ycm_state.OnCursorMoved() | |
40 0.000178 if g:ycm_autoclose_preview_window_after_completion | |
call s:ClosePreviewWindowIfNeeded() | |
40 0.000050 endif | |
FUNCTION undotree#UndotreeUpdate() | |
Defined: ~/.vim/pack/bundle/start/undotree/autoload/undotree.vim:1262 | |
Called 47 times | |
Total time: 0.000932 | |
Self time: 0.000932 | |
count total (s) self (s) | |
47 0.000571 if !exists('t:undotree') | |
47 0.000209 return | |
endif | |
if !exists('w:undotree_id') | |
let w:undotree_id = 'id_'.s:getUniqueID() | |
call s:log("Unique window id assigned: ".w:undotree_id) | |
endif | |
" assume window layout won't change during updating. | |
let thiswinnr = winnr() | |
call t:undotree.Update() | |
" focus moved | |
if winnr() != thiswinnr | |
call s:exec("norm! ".thiswinnr."\<c-w>\<c-w>") | |
endif | |
FUNCTION <SNR>77_CloseCompletionMenu() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:639 | |
Called 67 times | |
Total time: 0.002050 | |
Self time: 0.001526 | |
count total (s) self (s) | |
67 0.000415 if pumvisible() | |
19 0.001100 0.000576 call s:SendKeys( "\<C-e>" ) | |
67 0.000141 endif | |
FUNCTION <SNR>70_on_exit_vim() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/async.vim:87 | |
Called 1 time | |
Total time: 0.002010 | |
Self time: 0.000073 | |
count total (s) self (s) | |
1 0.002007 0.000070 call self.handler.out(self.buffer, join(self.stdoutbuffer, "\n")) | |
FUNCTION <SNR>77_InsideCommentOrStringAndShouldStop() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:811 | |
Called 40 times | |
Total time: 0.007610 | |
Self time: 0.000888 | |
count total (s) self (s) | |
40 0.007151 0.000429 let retval = s:InsideCommentOrString() | |
40 0.000090 let inside_comment = retval == 1 | |
40 0.000070 let inside_string = retval == 2 | |
40 0.000112 if inside_comment && g:ycm_complete_in_comments || inside_string && g:ycm_complete_in_strings | |
return 0 | |
40 0.000026 endif | |
40 0.000044 return retval | |
FUNCTION <SNR>83_parse_range() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:91 | |
Called 22 times | |
Total time: 0.016416 | |
Self time: 0.012594 | |
count total (s) self (s) | |
22 0.000188 let specifier = {} | |
22 0.000173 let specifier.addresses = [] | |
22 0.000139 let while_limit = 0 | |
22 0.000096 while 1 | |
" address part | |
22 0.001986 0.000619 call s:trim(a:cmdl) | |
22 0.000160 let entry = {} | |
" regexp for pattern specifier | |
22 0.000182 let pattern = '/%(\\.|/@!&.)*/=|\?%(\\.|\?@!&.)*\?=' | |
22 0.000227 if !len(specifier.addresses) | |
" \& is not supported | |
22 0.001338 let address = matchstrpos(a:cmdl[0], '\v^%(\d+|\.|\$|\%|\*|''.|'. pattern . '|\\\/|\\\?)') | |
else | |
let address = matchstrpos(a:cmdl[0], '\v^%(' . pattern . ')' ) | |
22 0.000065 endif | |
22 0.000199 if address[2] != -1 | |
call s:trim(a:cmdl, address[2]) | |
let entry.address = address[0] | |
22 0.000050 endif | |
" offset | |
22 0.001789 0.000578 call s:trim(a:cmdl) | |
22 0.000836 let offset = matchstrpos(a:cmdl[0], '\m^\%(\d\|\s\|+\|-\)\+') | |
22 0.000265 if offset[2] != -1 | |
call s:trim(a:cmdl, offset[2]) | |
let entry.offset = offset[0] | |
22 0.000051 endif | |
" add first address | |
22 0.000232 if address[2] != -1 || offset[2] != -1 | |
" if offset is present but specifier is missing add '.' specifier | |
if !has_key(entry, 'address') | |
let entry.address = '.' | |
endif | |
call add(specifier.addresses, entry) | |
22 0.000071 else | |
" stop trying if previous attempt was unsuccessful | |
22 0.000068 break | |
endif | |
let while_limit += 1 | if while_limit == 1000 | echoerr 'infinite loop' | break | endif | |
22 0.000159 endwhile | |
" delimiter | |
22 0.001923 0.000679 call s:trim(a:cmdl) | |
22 0.000718 let delimiter = matchstrpos(a:cmdl[0], '\m^\%(,\|;\)') | |
22 0.000224 if delimiter[2] != -1 | |
call s:trim(a:cmdl, delimiter[2]) | |
let specifier.delimiter = delimiter[0] | |
22 0.000062 endif | |
" add when addresses or delimiter are found or when one specifier is | |
" already known | |
22 0.000401 if !empty(specifier.addresses) || delimiter[2] != -1 || !empty(a:range) | |
" specifiers are not given but delimiter is present | |
if empty(specifier.addresses) | |
call add(specifier.addresses, { 'address': '.' }) | |
endif | |
call add(a:range, specifier) | |
22 0.000056 endif | |
22 0.000153 if delimiter[2] != -1 | |
try | |
return s:parse_range(a:range, a:cmdl) | |
catch /^Vim\%((\a\+)\)\=:E132/ | |
return [] | |
endtry | |
22 0.000052 else | |
22 0.000121 return a:range | |
endif | |
FUNCTION <SNR>77_IdentifierFinishedOperations() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:782 | |
Called 40 times | |
Total time: 0.013881 | |
Self time: 0.013881 | |
count total (s) self (s) | |
40 0.002535 if !py3eval( 'base.CurrentIdentifierFinished()' ) | |
35 0.000069 return | |
5 0.000002 endif | |
5 0.011128 py3 ycm_state.OnCurrentIdentifierFinished() | |
5 0.000049 let s:force_semantic = 0 | |
5 0.000051 let s:completion = s:default_completion | |
FUNCTION <SNR>77_RequestCompletion() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:830 | |
Called 38 times | |
Total time: 0.083352 | |
Self time: 0.067855 | |
count total (s) self (s) | |
38 0.066728 py3 ycm_state.SendCompletionRequest( vimsupport.GetBoolValue( 's:force_semantic' ) ) | |
38 0.016464 0.000967 call s:PollCompletion() | |
FUNCTION <SNR>77_OnCompleteDone() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:499 | |
Called 46 times | |
Total time: 0.025091 | |
Self time: 0.014399 | |
count total (s) self (s) | |
46 0.005693 0.000675 if !s:AllowedToCompleteInCurrentBuffer() | |
return | |
46 0.000045 endif | |
46 0.012698 py3 ycm_state.OnCompleteDone() | |
46 0.006487 0.000813 call s:UpdateSignatureHelp() | |
FUNCTION <SNR>72_write_buffer() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/diff.vim:332 | |
Called 1 time | |
Total time: 0.007934 | |
Self time: 0.007934 | |
count total (s) self (s) | |
1 0.000195 let bufcontents = getbufline(a:bufnr, 1, '$') | |
1 0.000016 if getbufvar(a:bufnr, '&fileformat') ==# 'dos' | |
call map(bufcontents, 'v:val."\r"') | |
1 0.000003 endif | |
1 0.000013 let fenc = getbufvar(a:bufnr, '&fileencoding') | |
1 0.000008 if fenc !=# &encoding | |
call map(bufcontents, 'iconv(v:val, &encoding, "'.fenc.'")') | |
1 0.000003 endif | |
1 0.000011 if getbufvar(a:bufnr, '&bomb') | |
let bufcontents[0]=''.bufcontents[0] | |
1 0.000002 endif | |
1 0.007645 call writefile(bufcontents, a:file) | |
FUNCTION <SNR>83_parse_command() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:519 | |
Called 22 times | |
Total time: 0.016643 | |
Self time: 0.003173 | |
count total (s) self (s) | |
22 0.014319 0.000849 let a:cmdl.cmd.name = s:get_command(a:cmdl.string) | |
22 0.000669 if a:cmdl.cmd.name =~# '\v^%(g%[lobal]\!=|v%[global])$' | |
let a:cmdl.cmd.args = s:parse_global(a:cmdl) | |
22 0.000519 elseif a:cmdl.cmd.name =~# '\v^%(s%[ubstitute]|sm%[agic]|sno%[magic])$' | |
let a:cmdl.cmd.args = s:parse_substitute(a:cmdl) | |
22 0.000339 elseif a:cmdl.cmd.name =~# '\v^%(sor%[t]\!=)$' | |
let a:cmdl.cmd.args = s:parse_sort(a:cmdl) | |
22 0.000061 endif | |
FUNCTION <SNR>77_ClearSignatureHelp() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:953 | |
Called 12 times | |
Total time: 0.003817 | |
Self time: 0.002549 | |
count total (s) self (s) | |
12 0.001753 0.000485 if !s:ShouldUseSignatureHelp() | |
return | |
12 0.000038 endif | |
12 0.000197 call timer_stop( s:pollers.signature_help.id ) | |
12 0.000144 let s:signature_help = s:default_signature_help | |
12 0.001541 call py3eval( 'ycm_state.ClearSignatureHelp()' ) | |
FUNCTION GetVimIndent() | |
Defined: /usr/share/vim/vim81/indent/vim.vim:24 | |
Called 25 times | |
Total time: 0.009288 | |
Self time: 0.001215 | |
count total (s) self (s) | |
25 0.000175 let ignorecase_save = &ignorecase | |
25 0.000053 try | |
25 0.000296 let &ignorecase = 0 | |
25 0.008422 0.000349 return GetVimIndentIntern() | |
25 0.000052 finally | |
25 0.000164 let &ignorecase = ignorecase_save | |
25 0.000050 endtry | |
FUNCTION <SNR>77_OnTextChangedNormalMode() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:697 | |
Called 10 times | |
Total time: 0.035080 | |
Self time: 0.000739 | |
count total (s) self (s) | |
10 0.002679 0.000312 if !s:AllowedToCompleteInCurrentBuffer() | |
return | |
10 0.000021 endif | |
10 0.032309 0.000335 call s:OnFileReadyToParse() | |
FUNCTION gitgutter#utility#shellescape() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:70 | |
Called 4 times | |
Total time: 0.000408 | |
Self time: 0.000375 | |
count total (s) self (s) | |
4 0.000276 if a:arg =~ '^[A-Za-z0-9_/.-]\+$' | |
3 0.000018 return a:arg | |
1 0.000062 0.000029 elseif s:winshell() | |
return '"' . substitute(substitute(a:arg, '"', '""', 'g'), '%', '"%"', 'g') . '"' | |
1 0.000003 else | |
1 0.000012 return shellescape(a:arg) | |
endif | |
FUNCTION <SNR>42_dir() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:191 | |
Called 2 times | |
Total time: 0.000486 | |
Self time: 0.000094 | |
count total (s) self (s) | |
2 0.000485 0.000093 return gitgutter#utility#shellescape(fnamemodify(s:abs_path(a:bufnr, 0), ':h')) | |
FUNCTION <SNR>42_windows() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:208 | |
Called 1 time | |
Total time: 0.000121 | |
Self time: 0.000121 | |
count total (s) self (s) | |
1 0.000119 return has('win64') || has('win32') || has('win16') | |
FUNCTION gitgutter#async#available() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/async.vim:9 | |
Called 1 time | |
Total time: 0.000004 | |
Self time: 0.000004 | |
count total (s) self (s) | |
1 0.000003 return s:available | |
FUNCTION <SNR>49_t_start() | |
Defined: ~/.vim/pack/bundle/start/traces/plugin/traces.vim:38 | |
Called 2 times | |
Total time: 0.000278 | |
Self time: 0.000278 | |
count total (s) self (s) | |
2 0.000080 if exists('##CmdlineChanged') | |
2 0.000111 let s:track_cmdl_timer = timer_start(30,function('s:create_cmdl_changed_au')) | |
else | |
let s:track_cmdl_timer = timer_start(30,function('s:track_cmdl'),{'repeat':-1}) | |
2 0.000010 endif | |
FUNCTION <SNR>83_restore_undo_history() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:875 | |
Called 2 times | |
Total time: 0.000195 | |
Self time: 0.000195 | |
count total (s) self (s) | |
2 0.000025 if s:buf[s:nr].changed | |
noautocmd keepjumps silent undo | |
call s:restore_marks() | |
2 0.000005 endif | |
2 0.000045 if type(get(s:buf[s:nr], 'undo_file')) isnot v:t_string | |
2 0.000009 return | |
endif | |
if has('nvim') | |
" can't use try/catch on Neovim inside CmdlineLeave | |
" https://github.com/neovim/neovim/issues/7876 | |
silent! execute 'noautocmd rundo ' . s:buf[s:nr].undo_file | |
if undotree().seq_last !=# s:buf[s:nr].seq_last | |
echohl WarningMsg | |
echom 'traces.vim - undo history could not be restored' | |
echohl None | |
endif | |
else | |
try | |
silent execute 'noautocmd rundo ' . s:buf[s:nr].undo_file | |
catch | |
echohl WarningMsg | |
echom 'traces.vim - ' . v:exception | |
echohl None | |
endtry | |
endif | |
call delete(s:buf[s:nr].undo_file) | |
FUNCTION <SNR>83_get_command() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:399 | |
Called 22 times | |
Total time: 0.013470 | |
Self time: 0.012077 | |
count total (s) self (s) | |
22 0.001899 0.000585 call s:trim(a:cmdl) | |
22 0.000122 if !s:range_valid | |
return '' | |
22 0.000051 endif | |
22 0.010177 let result = matchstrpos(a:cmdl[0], s:cmd_pattern) | |
22 0.000352 if result[2] != -1 | |
2 0.000141 0.000062 call s:trim(a:cmdl, result[2]) | |
2 0.000015 return result[0] | |
20 0.000056 endif | |
20 0.000084 return '' | |
FUNCTION <SNR>69_has_fresh_changes() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter.vim:84 | |
Called 1 time | |
Total time: 0.000096 | |
Self time: 0.000045 | |
count total (s) self (s) | |
1 0.000094 0.000043 return getbufvar(a:bufnr, 'changedtick') != gitgutter#utility#getbufvar(a:bufnr, 'tick') | |
FUNCTION UltiSnips#TrackChange() | |
Defined: ~/.vim/pack/bundle/start/ultisnips/autoload/UltiSnips.vim:147 | |
Called 77 times | |
Total time: 0.021322 | |
Self time: 0.021322 | |
count total (s) self (s) | |
77 0.021120 exec g:_uspy "UltiSnips_Manager._track_change()" | |
FUNCTION gitgutter#utility#setbufvar() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:9 | |
Called 6 times | |
Total time: 0.000302 | |
Self time: 0.000302 | |
count total (s) self (s) | |
6 0.000111 let dict = get(getbufvar(a:buffer, ''), 'gitgutter', {}) | |
6 0.000046 let needs_setting = empty(dict) | |
6 0.000066 let dict[a:varname] = a:val | |
6 0.000021 if needs_setting | |
call setbufvar(a:buffer, 'gitgutter', dict) | |
6 0.000013 endif | |
FUNCTION <SNR>81_upsert_new_gitgutter_signs() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/sign.vim:169 | |
Called 1 time | |
Total time: 0.000170 | |
Self time: 0.000119 | |
count total (s) self (s) | |
1 0.000051 0.000024 let other_signs = gitgutter#utility#getbufvar(a:bufnr, 'other_signs') | |
1 0.000047 0.000023 let old_gitgutter_signs = gitgutter#utility#getbufvar(a:bufnr, 'gitgutter_signs') | |
1 0.000006 for line in a:modified_lines | |
let line_number = line[0] " <number> | |
if index(other_signs, line_number) == -1 " don't clobber others' signs | |
let name = s:highlight_name_for_change(line[1]) | |
if !has_key(old_gitgutter_signs, line_number) " insert | |
let id = s:next_sign_id() | |
execute "sign place" id "line=" . line_number "name=" . name "buffer=" . a:bufnr | |
else " update if sign has changed | |
let old_sign = old_gitgutter_signs[line_number] | |
if old_sign.name !=# name | |
execute "sign place" old_sign.id "name=" . name "buffer=" . a:bufnr | |
end | |
endif | |
endif | |
1 0.000002 endfor | |
" At this point b:gitgutter_gitgutter_signs is out of date. | |
FUNCTION <SNR>49_cmdline_changed() | |
Defined: ~/.vim/pack/bundle/start/traces/plugin/traces.vim:21 | |
Called 24 times | |
Total time: 0.004639 | |
Self time: 0.004639 | |
count total (s) self (s) | |
24 0.000799 if exists('s:start_init_timer') | |
22 0.000453 call timer_stop(s:start_init_timer) | |
24 0.000141 endif | |
24 0.003010 let s:start_init_timer = timer_start(1, {_-> traces#init(getcmdline())}) | |
FUNCTION neomake#CursorMoved() | |
Defined: ~/.vim/pack/bundle/start/neomake/autoload/neomake.vim:2682 | |
Called 18 times | |
Total time: 0.006026 | |
Self time: 0.000523 | |
count total (s) self (s) | |
18 0.005984 0.000481 call neomake#EchoCurrentError() | |
FUNCTION neomake#EchoCurrentError() | |
Defined: ~/.vim/pack/bundle/start/neomake/autoload/neomake.vim:2659 | |
Called 18 times | |
Total time: 0.005503 | |
Self time: 0.002253 | |
count total (s) self (s) | |
18 0.000321 if !get(g:, 'neomake_echo_current_error', 1) | |
return | |
18 0.000071 endif | |
" a:1 might be a timer from the VimResized event. | |
18 0.000285 let force = a:0 ? a:1 : 0 | |
18 0.004022 0.000772 let message = neomake#GetCurrentErrorMsg() | |
18 0.000116 if empty(message) | |
18 0.000170 if exists('s:neomake_last_echoed_error') | |
echon '' | |
unlet s:neomake_last_echoed_error | |
18 0.000043 endif | |
18 0.000055 return | |
endif | |
if !force && exists('s:neomake_last_echoed_error') && s:neomake_last_echoed_error == message | |
return | |
endif | |
let s:neomake_last_echoed_error = message | |
call neomake#utils#WideMessage(message) | |
FUNCTION <SNR>77_InsideCommentOrString() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:793 | |
Called 40 times | |
Total time: 0.006722 | |
Self time: 0.006722 | |
count total (s) self (s) | |
" Has to be col('.') -1 because col('.') doesn't exist at this point. We are | |
" in insert mode when this func is called. | |
40 0.006171 let syntax_group = synIDattr( synIDtrans( synID( line( '.' ), col( '.' ) - 1, 1 ) ), 'name') | |
40 0.000160 if stridx(syntax_group, 'Comment') > -1 | |
return 1 | |
40 0.000032 endif | |
40 0.000083 if stridx(syntax_group, 'String') > -1 | |
return 2 | |
40 0.000024 endif | |
40 0.000042 return 0 | |
FUNCTION gitgutter#process_buffer() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter.vim:27 | |
Called 1 time | |
Total time: 0.012746 | |
Self time: 0.000225 | |
count total (s) self (s) | |
" NOTE a:bufnr is not necessarily the current buffer. | |
1 0.000914 0.000044 if gitgutter#utility#is_active(a:bufnr) | |
1 0.000137 0.000041 if a:force || s:has_fresh_changes(a:bufnr) | |
1 0.000007 let diff = '' | |
1 0.000005 try | |
1 0.011625 0.000070 let diff = gitgutter#diff#run_diff(a:bufnr, 0) | |
catch /gitgutter not tracked/ | |
call gitgutter#debug#log('Not tracked: '.gitgutter#utility#file(a:bufnr)) | |
catch /gitgutter diff failed/ | |
call gitgutter#debug#log('Diff failed: '.gitgutter#utility#file(a:bufnr)) | |
call gitgutter#hunk#reset(a:bufnr) | |
1 0.000002 endtry | |
1 0.000004 if diff != 'async' | |
call gitgutter#diff#handler(a:bufnr, diff) | |
1 0.000001 endif | |
1 0.000001 endif | |
1 0.000001 endif | |
FUNCTION gitgutter#utility#repo_path() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:105 | |
Called 3 times | |
Total time: 0.000325 | |
Self time: 0.000150 | |
count total (s) self (s) | |
3 0.000215 0.000093 let p = gitgutter#utility#getbufvar(a:bufnr, 'path') | |
3 0.000104 0.000051 return a:shellesc ? gitgutter#utility#shellescape(p) : p | |
FUNCTION <SNR>42_exists_file() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:200 | |
Called 1 time | |
Total time: 0.000259 | |
Self time: 0.000058 | |
count total (s) self (s) | |
1 0.000257 0.000056 return filereadable(s:abs_path(a:bufnr, 0)) | |
FUNCTION <SNR>77_OnBlankLine() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:825 | |
Called 40 times | |
Total time: 0.004187 | |
Self time: 0.004187 | |
count total (s) self (s) | |
40 0.004163 return py3eval( 'not vim.current.line or vim.current.line.isspace()' ) | |
FUNCTION <SNR>28_Highlight_Matching_Pair() | |
Defined: /usr/share/vim/vim81/plugin/matchparen.vim:39 | |
Called 136 times | |
Total time: 0.041454 | |
Self time: 0.041454 | |
count total (s) self (s) | |
" Remove any previous match. | |
136 0.001628 if exists('w:paren_hl_on') && w:paren_hl_on | |
2 0.000006 silent! call matchdelete(3) | |
2 0.000005 let w:paren_hl_on = 0 | |
136 0.000315 endif | |
" Avoid that we remove the popup menu. | |
" Return when there are no colors (looks like the cursor jumps). | |
136 0.001300 if pumvisible() || (&t_Co < 8 && !has("gui_running")) | |
return | |
136 0.000197 endif | |
" Get the character under the cursor and check if it's in 'matchpairs'. | |
136 0.001156 let c_lnum = line('.') | |
136 0.000773 let c_col = col('.') | |
136 0.000546 let before = 0 | |
136 0.000999 let text = getline(c_lnum) | |
136 0.004678 let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)') | |
136 0.000774 if empty(matches) | |
let [c_before, c] = ['', ''] | |
136 0.000252 else | |
136 0.001545 let [c_before, c] = matches[1:2] | |
136 0.000266 endif | |
136 0.003424 let plist = split(&matchpairs, '.\zs[:,]') | |
136 0.001104 let i = index(plist, c) | |
136 0.000448 if i < 0 | |
" not found, in Insert mode try character before the cursor | |
136 0.000902 if c_col > 1 && (mode() == 'i' || mode() == 'R') | |
81 0.000222 let before = strlen(c_before) | |
81 0.000120 let c = c_before | |
81 0.000170 let i = index(plist, c) | |
136 0.000218 endif | |
136 0.000295 if i < 0 | |
" not found, nothing to do | |
132 0.000339 return | |
4 0.000003 endif | |
4 0.000000 endif | |
" Figure out the arguments for searchpairpos(). | |
4 0.000004 if i % 2 == 0 | |
2 0.000004 let s_flags = 'nW' | |
2 0.000007 let c2 = plist[i + 1] | |
2 0.000002 else | |
2 0.000003 let s_flags = 'nbW' | |
2 0.000002 let c2 = c | |
2 0.000005 let c = plist[i - 1] | |
4 0.000002 endif | |
4 0.000006 if c == '[' | |
let c = '\[' | |
let c2 = '\]' | |
4 0.000004 endif | |
" Find the match. When it was just before the cursor move it there for a | |
" moment. | |
4 0.000004 if before > 0 | |
4 0.000014 let has_getcurpos = exists("*getcurpos") | |
4 0.000004 if has_getcurpos | |
" getcurpos() is more efficient but doesn't exist before 7.4.313. | |
4 0.000011 let save_cursor = getcurpos() | |
else | |
let save_cursor = winsaveview() | |
4 0.000002 endif | |
4 0.000017 call cursor(c_lnum, c_col - before) | |
4 0.000003 endif | |
4 0.000022 if !has("syntax") || !exists("g:syntax_on") | |
let s_skip = "0" | |
4 0.000003 else | |
" 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. | |
4 0.000015 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. | |
" Catch if this throws E363: pattern uses more memory than 'maxmempattern'. | |
4 0.000003 try | |
4 0.001155 execute 'if ' . s_skip . ' | let s_skip = "0" | endif' | |
catch /^Vim\%((\a\+)\)\=:E363/ | |
" We won't find anything, so skip searching, should keep Vim responsive. | |
return | |
4 0.000004 endtry | |
4 0.000002 endif | |
" Limit the search to lines visible in the window. | |
4 0.000013 let stoplinebottom = line('w$') | |
4 0.000012 let stoplinetop = line('w0') | |
4 0.000004 if i % 2 == 0 | |
2 0.000004 let stopline = stoplinebottom | |
2 0.000001 else | |
2 0.000003 let stopline = stoplinetop | |
4 0.000001 endif | |
" Limit the search time to 300 msec to avoid a hang on very long lines. | |
" This fails when a timeout is not supported. | |
4 0.000012 if mode() == 'i' || mode() == 'R' | |
4 0.000020 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 | |
4 0.000003 endif | |
4 0.000004 try | |
4 0.012700 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) | |
4 0.000004 endtry | |
4 0.000006 if before > 0 | |
4 0.000004 if has_getcurpos | |
4 0.000012 call setpos('.', save_cursor) | |
else | |
call winrestview(save_cursor) | |
4 0.000003 endif | |
4 0.000003 endif | |
" If a match is found setup match highlighting. | |
4 0.000009 if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom | |
2 0.000004 if exists('*matchaddpos') | |
2 0.000034 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\)/' | |
2 0.000002 endif | |
2 0.000004 let w:paren_hl_on = 1 | |
4 0.000003 endif | |
FUNCTION slash#SubstituteWordBoundaries() | |
Defined: ~/.vim/autoload/slash.vim:31 | |
Called 2 times | |
Total time: 0.000164 | |
Self time: 0.000164 | |
count total (s) self (s) | |
2 0.000050 let l:cmd = getcmdline() | |
" TODO: make sure this is calling grep, not vimgrep | |
2 0.000053 if l:cmd =~# '\<grep\>' | |
return substitute(l:cmd, '\\[<>]', '\\\\b', 'g') | |
2 0.000008 else | |
2 0.000012 return l:cmd | |
endif | |
FUNCTION traces#init() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:965 | |
Called 22 times | |
Total time: 0.077905 | |
Self time: 0.018314 | |
count total (s) self (s) | |
22 0.000925 if &buftype ==# 'terminal' || (has('nvim') && !empty(&inccommand)) | |
if exists('s:track_cmdl_timer') | |
call timer_stop(s:track_cmdl_timer) | |
endif | |
return | |
22 0.000070 endif | |
22 0.000473 let s:nr = bufnr('%') | |
22 0.000551 if !exists('s:buf[s:nr]') | |
2 0.001659 0.000144 call s:cmdl_enter() | |
22 0.000071 endif | |
22 0.000204 let s:highlighted = 0 | |
22 0.000137 let s:moved = 0 | |
22 0.000211 let s:last_pattern = @/ | |
22 0.000317 if s:buf[s:nr].duration < s:timeout | |
22 0.000314 let start_time = reltime() | |
22 0.000073 endif | |
22 0.000230 if s:buf[s:nr].changed | |
let view = winsaveview() | |
noautocmd keepjumps silent undo | |
let s:buf[s:nr].changed = 0 | |
let s:highlighted = 1 | |
call s:restore_marks() | |
call winrestview(view) | |
22 0.000083 endif | |
22 0.057073 0.001812 let cmdl = s:evaluate_cmdl([s:skip_modifiers(a:cmdl)]) | |
22 0.000311 if s:buf[s:nr].duration < s:timeout | |
" range preview | |
22 0.000420 if (!empty(cmdl.cmd.name) || s:buf[s:nr].show_range) && !get(s:, 'entire_file') | |
2 0.000180 0.000063 call s:highlight('Visual', cmdl.range.pattern, 100) | |
2 0.000013 if empty(cmdl.cmd.name) | |
call s:highlight('TracesSearch', cmdl.range.specifier, 101) | |
2 0.000005 endif | |
2 0.000082 0.000051 call s:pos_range(cmdl.range.end, cmdl.range.specifier) | |
22 0.000058 endif | |
" cmd preview | |
22 0.000511 if cmdl.cmd.name =~# '\v^%(s%[ubstitute]|sm%[agic]|sno%[magic])$' | |
call s:preview_substitute(cmdl) | |
22 0.000466 elseif cmdl.cmd.name =~# '\v^%(g%[lobal]\!=|v%[global])$' | |
call s:preview_global(cmdl) | |
22 0.000309 elseif cmdl.cmd.name =~# '\v^%(sor%[t]\!=)$' | |
call s:preview_sort(cmdl) | |
22 0.000058 endif | |
" clear unnecessary hl | |
22 0.000221 if empty(cmdl.range.pattern) || get(s:, 'entire_file') | |
22 0.002126 0.000689 call s:highlight('Visual', '', 100) | |
22 0.000056 endif | |
22 0.000358 if empty(cmdl.cmd.name) && empty(cmdl.range.specifier) || !empty(cmdl.cmd.name) && empty(cmdl.cmd.args) | |
22 0.001833 0.000603 call s:highlight('TracesSearch', '', 101) | |
22 0.000058 endif | |
22 0.000048 endif | |
" move to starting position if necessary | |
22 0.000540 if !s:moved && winsaveview() != s:buf[s:nr].view && !wildmenumode() | |
call winrestview(s:buf[s:nr].view) | |
22 0.000054 endif | |
" update screen if necessary | |
22 0.000094 if s:highlighted | |
call s:adjust_cmdheight(a:cmdl) | |
if has('nvim') | |
redraw | |
else | |
" https://github.com/markonm/traces.vim/issues/17 | |
" if Vim is missing CmdlineChanged, use explicit redraw only at the | |
" start of preview or else it is going to be slow | |
if exists('##CmdlineChanged') || s:buf[s:nr].redraw | |
redraw | |
let s:buf[s:nr].redraw = 0 | |
else | |
call winline() | |
endif | |
" after patch 8.0.1449, necessary for linux cui, otherwise highlighting | |
" is not drawn properly, fixed by 8.0.1476 | |
if has('unix') && !has('gui_running') && has("patch-8.0.1449") && !has("patch-8.0.1476") | |
silent! call feedkeys("\<left>\<right>", 'tn') | |
endif | |
endif | |
22 0.000046 endif | |
22 0.000171 if exists('start_time') | |
22 0.000514 let s:buf[s:nr].duration = reltimefloat(reltime(start_time)) * 1000 | |
22 0.000067 endif | |
FUNCTION <SNR>83_cmdl_enter() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:743 | |
Called 2 times | |
Total time: 0.001515 | |
Self time: 0.001077 | |
count total (s) self (s) | |
2 0.000082 let s:buf[s:nr] = {} | |
2 0.000087 let s:buf[s:nr].view = winsaveview() | |
2 0.000031 let s:buf[s:nr].show_range = 0 | |
2 0.000024 let s:buf[s:nr].duration = 0 | |
2 0.000028 let s:buf[s:nr].hlsearch = &hlsearch | |
2 0.000061 let s:buf[s:nr].cword = expand('<cword>') | |
2 0.000036 let s:buf[s:nr].cWORD = expand('<cWORD>') | |
2 0.000057 let s:buf[s:nr].cfile = expand('<cfile>') | |
2 0.000128 let s:buf[s:nr].cur_init_pos = [line('.'), col('.')] | |
2 0.000130 let s:buf[s:nr].seq_last = undotree().seq_last | |
2 0.000117 let s:buf[s:nr].empty_undotree = empty(undotree().entries) | |
2 0.000031 let s:buf[s:nr].changed = 0 | |
2 0.000028 let s:buf[s:nr].cmdheight = &cmdheight | |
2 0.000029 let s:buf[s:nr].redraw = 1 | |
2 0.000061 let s:buf[s:nr].s_mark = (&encoding == 'utf-8' ? "\uf8b4" : '' ) | |
2 0.000546 0.000108 call s:save_marks() | |
FUNCTION <SNR>80_reset_summary() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/hunk.vim:20 | |
Called 1 time | |
Total time: 0.000073 | |
Self time: 0.000026 | |
count total (s) self (s) | |
1 0.000072 0.000025 call gitgutter#utility#setbufvar(a:bufnr, 'summary', [0,0,0]) | |
FUNCTION gitgutter#diff#run_diff() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/diff.vim:60 | |
Called 1 time | |
Total time: 0.011555 | |
Self time: 0.000910 | |
count total (s) self (s) | |
1 0.000155 0.000063 while gitgutter#utility#repo_path(a:bufnr, 0) == -1 | |
sleep 5m | |
1 0.000007 endwhile | |
1 0.000109 0.000029 if gitgutter#utility#repo_path(a:bufnr, 0) == -2 | |
throw 'gitgutter not tracked' | |
1 0.000003 endif | |
" Wrap compound commands in parentheses to make Windows happy. | |
" bash doesn't mind the parentheses. | |
1 0.000006 let cmd = '(' | |
" Append buffer number to avoid race conditions between writing and reading | |
" the files when asynchronously processing multiple buffers. | |
" | |
" Without the buffer number, index_file would have a race in the shell | |
" between the second process writing it (with git-show) and the first | |
" reading it (with git-diff). | |
1 0.000017 let index_file = s:temp_index.'.'.a:bufnr | |
" Without the buffer number, buff_file would have a race between the | |
" second gitgutter#process_buffer() writing the file (synchronously, below) | |
" and the first gitgutter#process_buffer()'s async job reading it (with | |
" git-diff). | |
1 0.000014 let buff_file = s:temp_buffer.'.'.a:bufnr | |
1 0.000203 0.000031 let extension = gitgutter#utility#extension(a:bufnr) | |
1 0.000009 if !empty(extension) | |
1 0.000013 let index_file .= '.'.extension | |
1 0.000008 let buff_file .= '.'.extension | |
1 0.000003 endif | |
" Write file from index to temporary file. | |
1 0.000190 0.000037 let index_name = g:gitgutter_diff_base.':'.gitgutter#utility#repo_path(a:bufnr, 1) | |
1 0.000019 let cmd .= g:gitgutter_git_executable.' --no-pager show '.index_name.' > '.index_file.' && ' | |
" Write buffer to temporary file. | |
" Note: this is synchronous. | |
1 0.008066 0.000132 call s:write_buffer(a:bufnr, buff_file) | |
" Call git-diff with the temporary files. | |
1 0.000042 let cmd .= g:gitgutter_git_executable.' --no-pager' | |
1 0.000008 if s:c_flag | |
1 0.000010 let cmd .= ' -c "diff.autorefreshindex=0"' | |
1 0.000007 let cmd .= ' -c "diff.noprefix=false"' | |
1 0.000007 let cmd .= ' -c "core.safecrlf=false"' | |
1 0.000004 endif | |
1 0.000018 let cmd .= ' diff --no-ext-diff --no-color -U0 '.g:gitgutter_diff_args.' -- '.index_file.' '.buff_file | |
" Pipe git-diff output into grep. | |
1 0.000018 if !a:preserve_full_diff && !empty(g:gitgutter_grep) | |
1 0.000255 0.000104 let cmd .= ' | '.g:gitgutter_grep.' '.gitgutter#utility#shellescape('^@@ ') | |
1 0.000004 endif | |
" grep exits with 1 when no matches are found; git-diff exits with 1 when | |
" differences are found. However we want to treat non-matches and | |
" differences as non-erroneous behaviour; so we OR the command with one | |
" which always exits with success (0). | |
1 0.000008 let cmd .= ' || exit 0' | |
1 0.000007 let cmd .= ')' | |
1 0.000624 0.000091 let cmd = gitgutter#utility#cd_cmd(a:bufnr, cmd) | |
1 0.000016 0.000012 if g:gitgutter_async && gitgutter#async#available() | |
1 0.001610 0.000084 call gitgutter#async#execute(cmd, a:bufnr, { 'out': function('gitgutter#diff#handler'), 'err': function('gitgutter#hunk#reset'), }) | |
1 0.000009 return 'async' | |
else | |
let diff = gitgutter#utility#system(cmd) | |
if v:shell_error | |
call gitgutter#debug#log(diff) | |
throw 'gitgutter diff failed' | |
endif | |
return diff | |
endif | |
FUNCTION <SNR>81_obsolete_gitgutter_signs_to_remove() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/sign.vim:138 | |
Called 1 time | |
Total time: 0.000111 | |
Self time: 0.000082 | |
count total (s) self (s) | |
1 0.000006 let signs_to_remove = [] " list of [<id (number)>, ...] | |
1 0.000005 let remove_all_signs = 1 | |
1 0.000053 0.000024 let old_gitgutter_signs = gitgutter#utility#getbufvar(a:bufnr, 'gitgutter_signs') | |
1 0.000009 for line_number in keys(old_gitgutter_signs) | |
if index(a:new_gitgutter_signs_line_numbers, str2nr(line_number)) == -1 | |
call add(signs_to_remove, old_gitgutter_signs[line_number].id) | |
else | |
let remove_all_signs = 0 | |
endif | |
1 0.000003 endfor | |
1 0.000007 let s:remove_all_old_signs = remove_all_signs | |
1 0.000004 return signs_to_remove | |
FUNCTION gitgutter#diff#handler() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/diff.vim:146 | |
Called 1 time | |
Total time: 0.001937 | |
Self time: 0.000296 | |
count total (s) self (s) | |
1 0.000192 0.000065 call gitgutter#debug#log(a:diff) | |
1 0.000338 0.000054 call gitgutter#hunk#set_hunks(a:bufnr, gitgutter#diff#parse_diff(a:diff)) | |
1 0.000162 0.000041 let modified_lines = gitgutter#diff#process_hunks(a:bufnr, gitgutter#hunk#hunks(a:bufnr)) | |
1 0.000008 let signs_count = len(modified_lines) | |
1 0.000007 if signs_count > g:gitgutter_max_signs | |
call gitgutter#utility#warn_once(a:bufnr, printf( 'exceeded maximum number of signs (%d > %d, configured by g:gitgutter_max_signs).', signs_count, g:gitgutter_max_signs), 'max_signs') | |
call gitgutter#sign#clear_signs(a:bufnr) | |
1 0.000003 else | |
1 0.000006 if g:gitgutter_signs || g:gitgutter_highlight_lines | |
1 0.001070 0.000028 call gitgutter#sign#update_signs(a:bufnr, modified_lines) | |
1 0.000002 endif | |
1 0.000001 endif | |
1 0.000093 0.000026 call s:save_last_seen_change(a:bufnr) | |
1 0.000014 if exists('#User#GitGutter') | |
let g:gitgutter_hook_context = {'bufnr': a:bufnr} | |
execute 'doautocmd' s:nomodeline 'User GitGutter' | |
unlet g:gitgutter_hook_context | |
1 0.000002 endif | |
FUNCTION <SNR>77_OnInsertChar() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:646 | |
Called 37 times | |
Total time: 0.016888 | |
Self time: 0.004009 | |
count total (s) self (s) | |
37 0.012513 0.001432 if !s:AllowedToCompleteInCurrentBuffer() | |
return | |
37 0.000090 endif | |
37 0.000523 call timer_stop( s:pollers.completion.id ) | |
37 0.002949 0.001151 call s:CloseCompletionMenu() | |
" TODO: Do we really need this here? | |
37 0.000427 call timer_stop( s:pollers.signature_help.id ) | |
FUNCTION <SNR>77_OnInsertLeave() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:746 | |
Called 2 times | |
Total time: 0.015616 | |
Self time: 0.007902 | |
count total (s) self (s) | |
2 0.000963 0.000102 if !s:AllowedToCompleteInCurrentBuffer() | |
return | |
2 0.000007 endif | |
2 0.000034 call timer_stop( s:pollers.completion.id ) | |
2 0.000020 let s:force_semantic = 0 | |
2 0.000039 let s:completion = s:default_completion | |
2 0.006277 0.000096 call s:OnFileReadyToParse() | |
2 0.007388 py3 ycm_state.OnInsertLeave() | |
2 0.000037 if g:ycm_autoclose_preview_window_after_completion || g:ycm_autoclose_preview_window_after_insertion | |
2 0.000191 0.000088 call s:ClosePreviewWindowIfNeeded() | |
2 0.000004 endif | |
2 0.000622 0.000053 call s:ClearSignatureHelp() | |
FUNCTION <SNR>83_add_flags() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:412 | |
Called 22 times | |
Total time: 0.000369 | |
Self time: 0.000369 | |
count total (s) self (s) | |
22 0.000221 if !len(a:pattern) | |
22 0.000096 return '' | |
endif | |
if !s:range_valid | |
return '' | |
endif | |
if !len(substitute(a:pattern, '\\[cCvVmM]', '', 'g')) | |
return '' | |
endif | |
let option = '' | |
" magic | |
if has_key(a:cmdl, 'cmd') && a:cmdl.cmd.name =~# '\v^sm%[agic]$' | |
let option = '\m' | |
elseif has_key(a:cmdl, 'cmd') && a:cmdl.cmd.name =~# '\v^sno%[magic]$' | |
let option = '\M' | |
elseif &magic | |
let option = '\m' | |
else | |
let option = '\M' | |
endif | |
" case | |
if &ignorecase | |
if &smartcase | |
if match(a:pattern, '\u') ==# -1 | |
let option .= '\c' | |
else | |
let option .= '\C' | |
endif | |
else | |
let option .= '\c' | |
endif | |
endif | |
if !empty(a:cmdl.range.abs) | |
let start = a:cmdl.range.abs[-2] - 1 | |
let end = a:cmdl.range.abs[-1] + 1 | |
elseif a:type ==# 1 | |
return option . a:pattern | |
elseif a:type ==# 2 | |
let start = s:buf[s:nr].cur_init_pos[0] - 1 | |
let end = s:buf[s:nr].cur_init_pos[0] + 1 | |
endif | |
" range pattern specifer | |
if a:type == 3 | |
let start = a:cmdl.range.end - 1 | |
let end = a:cmdl.range.end + 1 | |
endif | |
let range = '\m\%>'. start .'l' . '\%<' . end . 'l' | |
" group is necessary to contain pattern inside range when using branches (\|) | |
let group_start = '\%(' | |
let group_end = '\m\)' | |
" add backslash to the end of pattern if it ends with odd number of | |
" backslashes, this is required to properly close group | |
if len(matchstr(a:pattern, '\\\+$')) % 2 | |
let group_end = '\' . group_end | |
endif | |
return range . group_start . option . a:pattern . group_end | |
FUNCTION <SNR>77_AllowedToCompleteInBuffer() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:408 | |
Called 253 times | |
Total time: 0.034167 | |
Self time: 0.030895 | |
count total (s) self (s) | |
253 0.004641 let buftype = getbufvar( a:buffer, '&buftype' ) | |
253 0.001824 if has_key( s:buftype_blacklist, buftype ) | |
return 0 | |
253 0.000497 endif | |
253 0.002189 let filetype = getbufvar( a:buffer, '&filetype' ) | |
253 0.008704 0.005432 if empty( filetype ) || s:DisableOnLargeFile( a:buffer ) | |
return 0 | |
253 0.000353 endif | |
253 0.004672 let whitelist_allows = type( g:ycm_filetype_whitelist ) != type( {} ) || has_key( g:ycm_filetype_whitelist, '*' ) || has_key( g:ycm_filetype_whitelist, filetype ) | |
253 0.002833 let blacklist_allows = type( g:ycm_filetype_blacklist ) != type( {} ) || !has_key( g:ycm_filetype_blacklist, filetype ) | |
253 0.001237 let allowed = whitelist_allows && blacklist_allows | |
253 0.000575 if allowed | |
253 0.002156 let s:previous_allowed_buffer_number = bufnr( a:buffer ) | |
253 0.000446 endif | |
253 0.000650 return allowed | |
FUNCTION <SNR>83_pos_range() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:560 | |
Called 2 times | |
Total time: 0.000031 | |
Self time: 0.000031 | |
count total (s) self (s) | |
2 0.000020 if g:traces_preserve_view_state || empty(a:end) | |
2 0.000005 return | |
endif | |
call cursor([a:end, 1]) | |
if !empty(a:pattern) | |
call search(a:pattern, 'c', a:end, s:s_timeout) | |
endif | |
let s:moved = 1 | |
FUNCTION <SNR>83_get_selection_regexp() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:386 | |
Called 22 times | |
Total time: 0.000388 | |
Self time: 0.000388 | |
count total (s) self (s) | |
22 0.000221 if empty(a:range) | |
22 0.000102 return '' | |
endif | |
let pattern = '\%>' . (a:range[-2] - 1) . 'l\%<' . (a:range[-1] + 1) . 'l' | |
if &listchars =~# 'eol:.' | |
let pattern .= '\_.' | |
else | |
let pattern .= '\(.\|^\)' | |
endif | |
return pattern | |
FUNCTION <SNR>77_OnDeleteChar() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:659 | |
Called 1 time | |
Total time: 0.000579 | |
Self time: 0.000152 | |
count total (s) self (s) | |
1 0.000504 0.000077 if !s:AllowedToCompleteInCurrentBuffer() | |
return a:key | |
1 0.000002 endif | |
1 0.000020 call timer_stop( s:pollers.completion.id ) | |
" | |
" TODO: Do we really need this here? | |
1 0.000012 call timer_stop( s:pollers.signature_help.id ) | |
1 0.000007 if pumvisible() | |
1 0.000017 return "\<C-y>" . a:key | |
endif | |
return a:key | |
FUNCTION gitgutter#utility#getbufvar() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:18 | |
Called 10 times | |
Total time: 0.000339 | |
Self time: 0.000339 | |
count total (s) self (s) | |
10 0.000170 let dict = get(getbufvar(a:buffer, ''), 'gitgutter', {}) | |
10 0.000081 if has_key(dict, a:varname) | |
10 0.000062 return dict[a:varname] | |
else | |
if a:0 | |
return a:1 | |
endif | |
endif | |
FUNCTION <SNR>77_PollSignatureHelp() | |
Defined: ~/.vim/pack/bundle/start/YouCompleteMe/autoload/youcompleteme.vim:880 | |
Called 2075 times | |
Total time: 0.950819 | |
Self time: 0.477561 | |
count total (s) self (s) | |
2075 0.597986 0.124728 if !s:ShouldUseSignatureHelp() | |
return | |
2075 0.009125 endif | |
2075 0.190333 if !py3eval( 'ycm_state.SignatureHelpRequestReady()' ) | |
2075 0.101935 let s:pollers.signature_help.id = timer_start( s:pollers.signature_help.wait_milliseconds, function( 's:PollSignatureHelp' ) ) | |
2075 0.009890 return | |
endif | |
let s:signature_help = py3eval( 'ycm_state.GetSignatureHelpResponse()' ) | |
call s:UpdateSignatureHelp() | |
FUNCTION <SNR>42_abs_path() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:186 | |
Called 5 times | |
Total time: 0.000715 | |
Self time: 0.000715 | |
count total (s) self (s) | |
5 0.000641 let p = resolve(expand('#'.a:bufnr.':p')) | |
5 0.000061 return a:shellesc ? gitgutter#utility#shellescape(p) : p | |
FUNCTION gitgutter#utility#is_active() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/utility.vim:48 | |
Called 1 time | |
Total time: 0.000870 | |
Self time: 0.000139 | |
count total (s) self (s) | |
1 0.000868 0.000137 return g:gitgutter_enabled && !pumvisible() && s:is_file_buffer(a:bufnr) && s:exists_file(a:bufnr) && s:not_git_dir(a:bufnr) | |
FUNCTION <SNR>83_highlight() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:571 | |
Called 46 times | |
Total time: 0.002784 | |
Self time: 0.002784 | |
count total (s) self (s) | |
46 0.000475 let cur_win = win_getid() | |
46 0.000926 if exists('s:win[cur_win].hlight[a:group].pattern') && s:win[cur_win].hlight[a:group].pattern ==# a:pattern | |
return | |
46 0.000112 endif | |
46 0.000750 if !exists('s:win[cur_win].hlight[a:group].pattern') && empty(a:pattern) | |
46 0.000165 return | |
endif | |
if &hlsearch && !empty(a:pattern) && a:group ==# 'TracesSearch' | |
noautocmd let &hlsearch = 0 | |
endif | |
if &scrolloff !=# 0 | |
let scrolloff = &scrolloff | |
noautocmd let &scrolloff = 0 | |
endif | |
let alt_win = win_getid(winnr('#')) | |
let windows = filter(win_findbuf(s:nr), {_, val -> win_id2win(val)}) | |
for id in windows | |
noautocmd call win_gotoid(id) | |
let s:win[id] = get(s:win, id, {}) | |
let s:win[id].hlight = get(s:win[id], 'hlight', {}) | |
if !exists('s:win[id].hlight[a:group]') | |
let x = {} | |
let x.pattern = a:pattern | |
silent! let x.index = matchadd(a:group, a:pattern, a:priority) | |
let s:win[id].hlight[a:group] = x | |
let s:highlighted = 1 | |
elseif s:win[id].hlight[a:group].pattern !=# a:pattern | |
if s:win[id].hlight[a:group].index !=# -1 | |
silent! call matchdelete(s:win[id].hlight[a:group].index) | |
endif | |
let s:win[id].hlight[a:group].pattern = a:pattern | |
silent! let s:win[id].hlight[a:group].index = matchadd(a:group, a:pattern, a:priority) | |
let s:highlighted = 1 | |
endif | |
if (&conceallevel !=# 2 || &concealcursor !=# 'c') && a:group ==# 'Conceal' | |
let s:win[id].options = get(s:win[id], 'options', {}) | |
let s:win[id].options.conceallevel = &conceallevel | |
let s:win[id].options.concealcursor = &concealcursor | |
noautocmd set conceallevel=2 | |
noautocmd set concealcursor=c | |
endif | |
" highlighting doesn't work properly when cursorline or cursorcolumn is | |
" enabled | |
if &cursorcolumn || &cursorline | |
let s:win[id].options = get(s:win[id], 'options', {}) | |
let s:win[id].options.cursorcolumn = &cursorcolumn | |
let s:win[id].options.cursorline = &cursorline | |
noautocmd set nocursorcolumn | |
noautocmd set nocursorline | |
endif | |
endfor | |
if bufname('%') !=# '[Command Line]' | |
noautocmd call win_gotoid(alt_win) | |
noautocmd call win_gotoid(cur_win) | |
endif | |
if exists('scrolloff') | |
noautocmd let &scrolloff = scrolloff | |
endif | |
FUNCTION gitgutter#hunk#set_hunks() | |
Defined: ~/.vim/pack/bundle/start/gitgutter/autoload/gitgutter/hunk.vim:1 | |
Called 1 time | |
Total time: 0.000214 | |
Self time: 0.000060 | |
count total (s) self (s) | |
1 0.000115 0.000034 call gitgutter#utility#setbufvar(a:bufnr, 'hunks', a:hunks) | |
1 0.000098 0.000025 call s:reset_summary(a:bufnr) | |
FUNCTION <SNR>83_skip_modifiers() | |
Defined: ~/.vim/pack/bundle/start/traces/autoload/traces.vim:919 | |
Called 22 times | |
Total time: 0.010010 | |
Self time: 0.010010 | |
count total (s) self (s) | |
22 0.000259 let cmdl = a:cmdl | |
" skip leading colon | |
22 0.000809 let cmdl = substitute(cmdl, '\v^:+', '', '') | |
" skip modifiers | |
22 0.000516 let pattern = '\v^\s*%(' . 'sil%[ent]\!=|' . 'verb%[ose]|' . 'noa%[utocmd]|' . 'loc%[kmarks]' . 'keepp%[atterns]|' . 'keepa%[lt]|' . 'keepj%[umps]|' . 'kee%[pmarks]|' . ')\s+' | |
22 0.000186 while 1 | |
22 0.002425 let offset = matchstrpos(cmdl, pattern) | |
22 0.000408 if offset[2] isnot -1 | |
let cmdl = strcharpart(cmdl, offset[2]) | |
22 0.000104 else | |
22 0.000091 break | |
endif | |
22 0.000101 endwhile | |
22 0.000148 if g:traces_skip_modifiers | |
" skip *do modifiers | |
22 0.001818 let cmdl = substitute(cmdl, '\v^\s*%(%(%(\d+|\.|\$|\%)\s*[,;]=\s*)+)=\s*%(cdo|cfdo|ld%[o]|lfdo' . '|bufd%[o]|tabd%[o]|argdo|wind%[o])\!=\s+', '', '') | |
" skip modifiers | |
22 0.000116 while 1 | |
22 0.001156 let offset = matchstrpos(cmdl, pattern) | |
22 0.000254 if offset[2] isnot -1 | |
let cmdl = strcharpart(cmdl, offset[2]) | |
22 0.000070 else | |
22 0.000068 break | |
endif | |
22 0.000083 endwhile | |
22 0.000061 endif | |
22 0.000133 return cmdl | |
FUNCTIONS SORTED ON TOTAL TIME | |
count total (s) self (s) function | |
2075 0.950819 0.477561 <SNR>77_PollSignatureHelp() | |
2357 0.520391 <SNR>77_ShouldUseSignatureHelp() | |
40 0.183903 0.007139 <SNR>77_OnTextChangedInsertMode() | |
38 0.083352 0.067855 <SNR>77_RequestCompletion() | |
22 0.077905 0.018314 traces#init() | |
232 0.060609 0.017931 <SNR>77_UpdateSignatureHelp() | |
78 0.046682 0.039974 <SNR>77_PollCompletion() | |
22 0.045251 0.005333 <SNR>83_evaluate_cmdl() | |
136 0.041454 <SNR>28_Highlight_Matching_Pair() | |
253 0.040114 0.005947 <SNR>77_AllowedToCompleteInCurrentBuffer() | |
12 0.038155 0.034907 <SNR>77_OnFileReadyToParse() | |
10 0.035080 0.000739 <SNR>77_OnTextChangedNormalMode() | |
253 0.034167 0.030895 <SNR>77_AllowedToCompleteInBuffer() | |
45 0.026185 0.014648 <SNR>77_OnCursorMovedNormalMode() | |
46 0.025091 0.014399 <SNR>77_OnCompleteDone() | |
38 0.022343 0.014633 <SNR>77_RequestSignatureHelp() | |
77 0.021322 UltiSnips#TrackChange() | |
37 0.016888 0.004009 <SNR>77_OnInsertChar() | |
22 0.016643 0.003173 <SNR>83_parse_command() | |
72 0.016606 0.001451 <SNR>77_OnCompleteChanged() | |
FUNCTIONS SORTED ON SELF TIME | |
count total (s) self (s) function | |
2357 0.520391 <SNR>77_ShouldUseSignatureHelp() | |
2075 0.950819 0.477561 <SNR>77_PollSignatureHelp() | |
38 0.083352 0.067855 <SNR>77_RequestCompletion() | |
136 0.041454 <SNR>28_Highlight_Matching_Pair() | |
78 0.046682 0.039974 <SNR>77_PollCompletion() | |
12 0.038155 0.034907 <SNR>77_OnFileReadyToParse() | |
253 0.034167 0.030895 <SNR>77_AllowedToCompleteInBuffer() | |
77 0.021322 UltiSnips#TrackChange() | |
22 0.077905 0.018314 traces#init() | |
232 0.060609 0.017931 <SNR>77_UpdateSignatureHelp() | |
45 0.026185 0.014648 <SNR>77_OnCursorMovedNormalMode() | |
38 0.022343 0.014633 <SNR>77_RequestSignatureHelp() | |
46 0.025091 0.014399 <SNR>77_OnCompleteDone() | |
40 0.013881 <SNR>77_IdentifierFinishedOperations() | |
22 0.016416 0.012594 <SNR>83_parse_range() | |
22 0.013470 0.012077 <SNR>83_get_command() | |
22 0.010010 <SNR>83_skip_modifiers() | |
25 0.008073 GetVimIndentIntern() | |
1 0.007934 <SNR>72_write_buffer() | |
2 0.015616 0.007902 <SNR>77_OnInsertLeave() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment