SCRIPT OMITTED.vim/plugged/vim-go/ftplugin/godoc.vim Sourced 1 time Total time: 0.000027 Self time: 0.000027 count total (s) self (s) " Copyright 2013 The Go Authors. All rights reserved. " Use of this source code is governed by a BSD-style " license that can be found in the LICENSE file. " " go.vim: Vim filetype plugin for Go. 1 0.000003 if exists("b:did_ftplugin") finish 1 0.000000 endif 1 0.000001 let b:did_ftplugin = 1 " don't spam the user when Vim is started in Vi compatibility mode 1 0.000002 let s:cpo_save = &cpo 1 0.000003 set cpo&vim 1 0.000001 if get(g:, "go_doc_keywordprg_enabled", 1) " keywordprg doesn't allow to use vim commands, override it 1 0.000003 nnoremap K :GoDoc 1 0.000000 endif " restore Vi compatibility settings 1 0.000003 let &cpo = s:cpo_save 1 0.000001 unlet s:cpo_save " vim: sw=2 ts=2 et SCRIPT OMITTED.vim/plugged/vim-go/ftplugin/godoc/commands.vim Sourced 1 time Total time: 0.000015 Self time: 0.000015 count total (s) self (s) " -- doc 1 0.000008 command! -nargs=* -range -complete=customlist,go#package#Complete GoDoc call go#doc#Open('new', 'split', ) 1 0.000004 command! -nargs=* -range -complete=customlist,go#package#Complete GoDocBrowser call go#doc#OpenBrowser() SCRIPT OMITTED.vim/plugged/vim-go/ftplugin/godoc/mappings.vim Sourced 1 time Total time: 0.000037 Self time: 0.000037 count total (s) self (s) 1 0.000013 nnoremap (go-doc) :call go#doc#Open("new", "split") 1 0.000006 nnoremap (go-doc-tab) :call go#doc#Open("tabnew", "tabe") 1 0.000005 nnoremap (go-doc-vertical) :call go#doc#Open("vnew", "vsplit") 1 0.000005 nnoremap (go-doc-split) :call go#doc#Open("new", "split") 1 0.000005 nnoremap (go-doc-browser) :call go#doc#OpenBrowser() " vim: sw=2 ts=2 et SCRIPT /opt/homebrew/Cellar/neovim/0.9.0/share/nvim/runtime/syntax/godoc.vim Sourced 1 time Total time: 0.000015 Self time: 0.000015 count total (s) self (s) " Vim syntax file " Language: Godoc (generated documentation for go) " Maintainer: David Barnett (https://github.com/google/vim-ft-go) " Last Change: 2014 Aug 16 1 0.000002 if exists('b:current_syntax') finish 1 0.000000 endif 1 0.000001 syn case match 1 0.000004 syn match godocTitle "^\([A-Z][A-Z ]*\)$" 1 0.000001 hi def link godocTitle Title 1 0.000001 let b:current_syntax = 'godoc' " vim: sw=2 sts=2 et FUNCTION FugitiveExtractGitDir() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:423 Called 2 times Total time: 0.000312 Self time: 0.000142 count total (s) self (s) 2 0.000002 if type(a:path) ==# type({}) return get(a:path, 'fugitive_dir', get(a:path, 'git_dir', '')) 2 0.000002 elseif type(a:path) == type(0) 2 0.000009 0.000008 let path = s:Slash(a:path > 0 ? bufname(a:path) : bufname('')) else let path = s:Slash(a:path) 2 0.000000 endif 2 0.000003 if path =~# '^fugitive://' return fugitive#Parse(path)[1] 2 0.000001 elseif empty(path) return '' 2 0.000000 endif 2 0.000008 let pre = substitute(matchstr(path, '^\a\a\+\ze:'), '^.', '\u&', '') 2 0.000002 if len(pre) && exists('*' . pre . 'Real') let path = {pre}Real(path) 2 0.000000 endif 2 0.000033 0.000032 let root = s:Slash(fnamemodify(path, ':p:h')) 2 0.000001 let previous = "" 2 0.000008 let env_git_dir = len($GIT_DIR) ? s:Slash(simplify(fnamemodify(FugitiveVimPath($GIT_DIR), ':p:s?[\/]$??'))) : '' 2 0.000015 0.000006 call s:Tree(env_git_dir) 2 0.000060 0.000009 let ceiling_directories = s:CeilingDirectories() 2 0.000007 while root !=# previous && root !~# '^$\|^//[^/]*$' 2 0.000003 if index(ceiling_directories, root) >= 0 break 2 0.000000 endif 2 0.000004 if root ==# $GIT_WORK_TREE && FugitiveIsGitDir(env_git_dir) return env_git_dir 2 0.000002 elseif has_key(s:dir_for_worktree, root) return s:dir_for_worktree[root] 2 0.000000 endif 2 0.000008 let dir = substitute(root, '[\/]$', '', '') . '/.git' 2 0.000116 0.000008 let resolved = s:ResolveGitDir(dir) 2 0.000001 if !empty(resolved) 2 0.000003 let s:resolved_git_dirs[dir] = resolved 2 0.000004 return dir is# resolved || s:Tree(resolved) is# 0 ? dir : resolved elseif FugitiveIsGitDir(root) let s:resolved_git_dirs[root] = root return root endif let previous = root let root = fnamemodify(root, ':h') endwhile return '' FUNCTION airline#extensions#quickfix#inactive_qf_window() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim:28 Called 8 times Total time: 0.000050 Self time: 0.000050 count total (s) self (s) 8 0.000032 if getbufvar(a:2.bufnr, '&filetype') is# 'qf' && !empty(airline#util#getwinvar(a:2.winnr, 'quickfix_title', '')) call setwinvar(a:2.winnr, 'airline_section_c', '[%{get(w:, "quickfix_title", "")}] %f %m') 8 0.000002 endif FUNCTION go#lsp#DidOpen() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:701 Called 20 times Total time: 0.000152 Self time: 0.000152 count total (s) self (s) 20 0.000096 if get(b:, 'go_lsp_did_open', 0) 20 0.000018 return endif let l:fname = fnamemodify(a:fname, ':p') if !isdirectory(fnamemodify(l:fname, ':h')) return endif let l:lsp = s:lspfactory.get() if !has_key(l:lsp.notificationQueue, l:fname) let l:lsp.notificationQueue[l:fname] = [] endif call s:ensureWorkspace(fnamemodify(l:fname, ':h')) let l:lsp.fileVersions[l:fname] = getbufvar(l:fname, 'changedtick') let l:msg = go#lsp#message#DidOpen(l:fname, join(go#util#GetLines(), "\n") . "\n", l:lsp.fileVersions[l:fname]) let l:state = s:newHandlerState('') " TODO(bc): setting a buffer level variable here assumes that a:fname is the " current buffer. Change to a:fname first before setting it and then change " back to active buffer. let b:go_lsp_did_open = 1 return l:lsp.sendMessage(l:msg, l:state) FUNCTION 19_SelectJavascript() Defined: ~/.vim/plugged/vim-javascript/ftdetect/javascript.vim:1 Called 2 times Total time: 0.000010 Self time: 0.000010 count total (s) self (s) 2 0.000008 if getline(1) =~# '^#!.*/bin/\%(env\s\+\)\?node\>' set ft=javascript 2 0.000001 endif FUNCTION go#util#ExecInWorkDir() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:252 Called 276 times Total time: 15.501058 Self time: 0.005656 count total (s) self (s) 276 0.000988 if !isdirectory(a:wd) return ['', 1] 276 0.000065 endif 276 0.025019 0.000987 let l:dir = go#util#Chdir(a:wd) 276 0.000069 try 276 15.431815 0.001514 let [l:out, l:err] = call('go#util#Exec', [a:cmd] + a:000) 276 0.000087 finally 276 0.042206 0.001138 call go#util#Chdir(l:dir) 276 0.000076 endtry 276 0.000229 return [l:out, l:err] FUNCTION 209_filter_spell_bad_list() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/spellbad.vim:71 Called 2 times Total time: 0.001752 Self time: 0.000643 count total (s) self (s) 2 0.000002 let l:spell_bad_list = [] " 言語別ホワイトリストの取得 2 0.000001 let l:white_list_for_lang = [] 2 0.000001 try 2 0.000002 let l:filetype = &filetype 2 0.000521 execute 'let l:white_list_for_lang = spelunker#utils#filter_list_char_length(spelunker#white_list#white_list_' . l:filetype . '#get_white_list())' 2 0.000040 catch " 読み捨て 2 0.000001 endtry 2 0.000002 let l:white_list_for_user = [] 2 0.000001 try 2 0.000008 execute 'let l:white_list_for_user = g:spelunker_white_list_for_user' 2 0.000010 catch " 読み捨て 2 0.000001 endtry 2 0.001113 0.000012 let l:spelunker_white_list = spelunker#utils#filter_list_char_length(g:spelunker_white_list) 2 0.000019 0.000010 for orig_word in spelunker#utils#filter_list_char_length(a:word_list) let l:lowercase_word = tolower(orig_word) if index(l:spelunker_white_list, l:lowercase_word) >= 0 || index(l:white_list_for_lang, l:lowercase_word) >= 0 || index(l:white_list_for_user, l:lowercase_word) >= 0 continue endif let [l:spell_bad_word, l:spell_bad_type] = spellbadword(l:lowercase_word) if l:spell_bad_word != '' " Wednesdayなど、先頭大文字しかない単語があるためもう一回チェック let [l:spell_bad_word, l:spell_bad_type] = spellbadword(spelunker#cases#to_first_char_upper(l:lowercase_word)) endif if g:spelunker_highlight_type == g:spelunker_highlight_spell_bad && l:spell_bad_type != 'bad' continue endif " 登録は元のケースで行う。辞書登録とそのチェックにかけるときのみlowerケースになる。 " 元々ここでlowercaseだけ管理し、lower,UPPER,UpperCamelCaseをmatchadd()していたが、 " 最少のマッチだけを登録させる為、ここで実際に引っかかるものを登録させ、 " これらをmatchaddさせる。 if l:spell_bad_word != '' && index(l:spell_bad_list, orig_word) == -1 call add(l:spell_bad_list, orig_word) endif 2 0.000001 endfor 2 0.000001 return l:spell_bad_list FUNCTION 159_format_name() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:77 Called 10 times Total time: 0.000007 Self time: 0.000007 count total (s) self (s) 10 0.000006 return a:name FUNCTION 106_system() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:181 Called 276 times Total time: 15.342938 Self time: 0.014858 count total (s) self (s) " Preserve original shell, shellredir and shellcmdflag values 276 0.000172 let l:shell = &shell 276 0.000188 let l:shellredir = &shellredir 276 0.000190 let l:shellcmdflag = &shellcmdflag 276 0.000155 let l:shellquote = &shellquote 276 0.000165 let l:shellxquote = &shellxquote 276 0.002971 0.002662 if !go#util#IsWin() && executable('/bin/sh') 276 0.001705 0.000901 set shell=/bin/sh shellredir=>%s\ 2>&1 shellcmdflag=-c 276 0.000061 endif 276 0.001151 0.000851 if go#util#IsWin() if executable($COMSPEC) let &shell = $COMSPEC set shellcmdflag=/C set shellquote& set shellxquote& endif 276 0.000047 endif 276 0.000065 try 276 15.326188 0.002277 return call('system', [a:cmd] + a:000) 276 0.000979 finally " Restore original values 276 0.004237 0.002639 let &shell = l:shell 276 0.000996 0.000565 let &shellredir = l:shellredir 276 0.000695 0.000445 let &shellcmdflag = l:shellcmdflag 276 0.000621 0.000391 let &shellquote = l:shellquote 276 0.000624 0.000379 let &shellxquote = l:shellxquote 276 0.000194 endtry FUNCTION airline#extensions#coc#get_error() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/coc.vim:13 Called 14 times Total time: 0.000182 Self time: 0.000074 count total (s) self (s) 14 0.000179 0.000071 return airline#extensions#coc#get('error') FUNCTION spelunker#spellbad#get_spell_bad_list() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/spellbad.vim:12 Called 2 times Total time: 0.002015 Self time: 0.000145 count total (s) self (s) 2 0.000095 0.000014 call spelunker#white_list#init_white_list() " spellgood で対象から外れる場合もあるので、全部チェックする必要があり " NOTE: spellgood系操作でmatch_id_dictから消してあげたらチェック不要になる。 " ただし、match_id_dictをglobalにする必要あり 2 0.000016 0.000008 let l:word_list = s:get_word_list(a:window_text_list) 2 0.000032 0.000010 let l:current_spell_setting = spelunker#get_current_spell_setting() 2 0.000067 setlocal spell 2 0.001773 0.000020 let l:spell_bad_list = s:filter_spell_bad_list(l:word_list) 2 0.000029 0.000023 call spelunker#reduce_spell_setting(l:current_spell_setting) 2 0.000001 return l:spell_bad_list FUNCTION 51_get() Defined: ~/.vim/plugged/delimitmate/autoload/delimitMate.vim:23 Called 136 times Total time: 0.000694 Self time: 0.000694 count total (s) self (s) 136 0.000496 let options = deepcopy(eval('s:options.' . bufnr('%'))) 136 0.000039 if a:0 return options[a:1] 136 0.000023 endif 136 0.000045 return options FUNCTION 160_sh_autocmd_handler() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/fugitiveline.vim:36 Called 8 times Total time: 0.000025 Self time: 0.000025 count total (s) self (s) 8 0.000012 if exists('#airline') 8 0.000006 unlet! b:fugitive_name 8 0.000003 endif FUNCTION 130_SetConcealOption() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:101 Called 4 times Total time: 0.000040 Self time: 0.000040 count total (s) self (s) 4 0.000002 if !g:indentLine_setConceal return 4 0.000001 endif 4 0.000006 if !(exists("b:indentLine_ConcealOptionSet") && b:indentLine_ConcealOptionSet) 2 0.000002 let b:indentLine_ConcealOptionSet = 1 2 0.000002 let b:indentLine_original_concealcursor = &l:concealcursor 2 0.000002 let b:indentLine_original_conceallevel = &l:conceallevel 2 0.000006 let &l:concealcursor = exists("g:indentLine_concealcursor") ? g:indentLine_concealcursor : "inc" 2 0.000006 let &l:conceallevel = exists("g:indentLine_conceallevel") ? g:indentLine_conceallevel : "2" 4 0.000001 endif FUNCTION airline#async#nvim_vcs_untracked() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:336 Called 2 times Total time: 0.000390 Self time: 0.000376 count total (s) self (s) 2 0.000004 let cmd = a:cfg.cmd . shellescape(a:file) 2 0.000001 let id = -1 2 0.000045 0.000031 let config = { 'buf': '', 'vcs': a:vcs, 'cfg': a:cfg, 'file': a:file, 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h')) } 2 0.000002 if has("nvim") 2 0.000013 call extend(config, { 'on_stdout': function('s:nvim_output_handler'), 'on_exit': function('s:nvim_untracked_job_handler')}) 2 0.000003 if has_key(s:untracked_jobs, config.file) " still running 1 0.000000 return 1 0.000000 endif 1 0.000000 try 1 0.000311 let id = jobstart(cmd, config) catch " catch-all, jobstart() failed, fall back to system() let id=-1 1 0.000000 endtry 1 0.000002 let s:untracked_jobs[a:file] = id 1 0.000000 endif " vim without job feature or nvim jobstart failed 1 0.000000 if id < 1 let output=system(cmd) call s:untracked_output(config, output) call airline#extensions#branch#update_untracked_config(a:file, a:vcs) 1 0.000000 endif FUNCTION 192_docFromHoverResult() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1045 Called 2 times Total time: 0.000028 Self time: 0.000028 count total (s) self (s) 2 0.000002 if type(a:msg) is type('') return [a:msg, 1] 2 0.000000 endif 2 0.000003 if a:msg is v:null || !has_key(a:msg, 'contents') return ['Undocumented', 0] 2 0.000000 endif 2 0.000009 let l:value = json_decode(a:msg.contents.value) 2 0.000002 let l:doc = l:value.fullDocumentation 2 0.000001 if len(l:doc) is 0 2 0.000001 let l:doc = 'Undocumented' 2 0.000000 endif 2 0.000003 let l:content = printf("%s\n\n%s", l:value.signature, l:doc) 2 0.000001 return [l:content, 0] FUNCTION 50_get() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:148 Called 136 times Total time: 0.001733 Self time: 0.000620 count total (s) self (s) 136 0.001590 0.000477 let bufoptions = delimitMate#Get() 136 0.000122 return get(bufoptions, a:name, a:default) FUNCTION delimitMate#Get() Defined: ~/.vim/plugged/delimitmate/autoload/delimitMate.vim:262 Called 136 times Total time: 0.001113 Self time: 0.000419 count total (s) self (s) 136 0.001099 0.000405 return call('s:get', a:000) FUNCTION airline#extensions#nvimlsp#get_warning() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/nvimlsp.vim:58 Called 14 times Total time: 0.001147 Self time: 0.000092 count total (s) self (s) 14 0.001142 0.000087 return airline#extensions#nvimlsp#get('Warning') FUNCTION 233_character() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp/lsp.vim:26 Called 6 times Total time: 0.000463 Self time: 0.000093 count total (s) self (s) 6 0.000454 0.000084 return s:strlen(getline(a:line)[:col([a:line, a:col - 1])]) FUNCTION 79_Ready() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:377 Called 4 times Total time: 0.000006 Self time: 0.000006 count total (s) self (s) 4 0.000006 return has_key(a:detected.options, 'expandtab') && has_key(a:detected.options, 'shiftwidth') FUNCTION coc#highlight#create_namespace() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/highlight.vim:686 Called 30 times Total time: 0.000174 Self time: 0.000174 count total (s) self (s) 30 0.000076 if type(a:key) == 0 22 0.000026 return a:key 8 0.000001 endif 8 0.000012 if has_key(s:namespace_map, a:key) 6 0.000005 return s:namespace_map[a:key] 2 0.000000 endif 2 0.000003 if has('nvim') 2 0.000007 let s:namespace_map[a:key] = nvim_create_namespace('coc-'.a:key) else let s:namespace_map[a:key] = s:ns_id let s:ns_id = s:ns_id + 1 2 0.000000 endif 2 0.000002 return s:namespace_map[a:key] FUNCTION 209_get_word_list() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/spellbad.vim:31 Called 2 times Total time: 0.000008 Self time: 0.000008 count total (s) self (s) 2 0.000001 let l:word_list = [] 2 0.000002 for line in a:window_text_list let l:word_list = spelunker#spellbad#get_word_list_in_line(line, l:word_list) 2 0.000001 endfor 2 0.000001 return l:word_list FUNCTION 97_unc_path() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:186 Called 6 times Total time: 0.000541 Self time: 0.000047 count total (s) self (s) 6 0.000540 0.000045 return s:abs_path(a:bufnr, 0) =~ '^\\\\' FUNCTION airline#extensions#coc#get_warning() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/coc.vim:9 Called 14 times Total time: 0.000270 Self time: 0.000136 count total (s) self (s) 14 0.000267 0.000133 return airline#extensions#coc#get('warning') FUNCTION airline#extensions#nvimlsp#get() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/nvimlsp.vim:17 Called 28 times Total time: 0.002029 Self time: 0.002002 count total (s) self (s) 28 0.000865 if luaeval('vim.tbl_isempty(vim.lsp.buf_get_clients(0))') 12 0.000005 return '' 16 0.000004 endif 16 0.000035 let error_symbol = get(g:, 'airline#extensions#nvimlsp#error_symbol', 'E:') 16 0.000030 let warning_symbol = get(g:, 'airline#extensions#nvimlsp#warning_symbol', 'W:') 16 0.000032 let show_line_numbers = get(g:, 'airline#extensions#nvimlsp#show_line_numbers', 1) 16 0.000018 let is_err = a:type ==# 'Error' 16 0.000024 let symbol = is_err ? error_symbol : warning_symbol 16 0.000076 if luaeval("pcall(require, 'vim.diagnostic')") 16 0.000025 let severity = a:type == 'Warning' ? 'Warn' : a:type 16 0.000477 let num = len(v:lua.vim.diagnostic.get(0, { 'severity': severity })) elseif luaeval("pcall(require, 'vim.lsp.diagnostic')") let num = v:lua.vim.lsp.diagnostic.get_count(0, a:type) else let num = v:lua.vim.lsp.util.buf_diagnostics_count(a:type) 16 0.000004 endif 16 0.000081 if show_line_numbers == 1 && luaeval("pcall(require, 'vim.diagnostic')") && num > 0 return s:airline_nvimlsp_count(num, symbol) . airline_nvimlsp_get_line_number(num, a:type) 16 0.000004 else 16 0.000172 0.000145 return s:airline_nvimlsp_count(num, symbol) endif FUNCTION go#config#Debug() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:199 Called 297 times Total time: 0.000518 Self time: 0.000518 count total (s) self (s) 297 0.000423 return get(g:, 'go_debug', []) FUNCTION 97_is_file_buffer() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:62 Called 22 times Total time: 0.000228 Self time: 0.000228 count total (s) self (s) 22 0.000212 return empty(getbufvar(a:bufnr, '&buftype')) FUNCTION go#lsp#DidChange() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:732 Called 20 times Total time: 0.008559 Self time: 0.004267 count total (s) self (s) " DidChange is called even when fname isn't open in a buffer (e.g. via " go#lsp#Info); don't report the file as open or as having changed when it's " not actually a buffer. 20 0.000399 if bufnr(a:fname) == -1 return 20 0.000013 endif 20 0.000363 let l:fname = fnamemodify(a:fname, ':p') 20 0.000290 if !isdirectory(fnamemodify(l:fname, ':h')) return 20 0.000012 endif 20 0.000617 0.000465 call go#lsp#DidOpen(a:fname) 20 0.000502 0.000173 let l:lsp = s:lspfactory.get() 20 0.000249 let l:version = getbufvar(l:fname, 'changedtick') 20 0.000138 if has_key(l:lsp.fileVersions, l:fname) && l:lsp.fileVersions[l:fname] == l:version 17 0.000012 return 3 0.000001 endif 3 0.000010 let l:lsp.fileVersions[l:fname] = l:version 3 0.002713 0.001868 let l:msg = go#lsp#message#DidChange(l:fname, join(go#util#GetLines(), "\n") . "\n", l:lsp.fileVersions[l:fname]) 3 0.000234 0.000040 let l:state = s:newHandlerState('') 3 0.002796 0.000024 return l:lsp.sendMessage(l:msg, l:state) FUNCTION airline#extensions#tabline#buffers#get() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buffers.vim:51 Called 34 times Total time: 0.043330 Self time: 0.002015 count total (s) self (s) 34 0.000047 try 34 0.010438 0.000395 call map_keys() catch " no-op 34 0.000043 endtry 34 0.000110 let cur = bufnr('%') 34 0.000166 if cur == s:current_bufnr && &columns == s:column_width 32 0.000193 if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified 28 0.000073 return s:current_tabline 4 0.000002 endif 6 0.000002 endif 6 0.000557 0.000050 let b = airline#extensions#tabline#new_builder() 6 0.000019 let tab_bufs = tabpagebuflist(tabpagenr()) 6 0.000009 let show_buf_label_first = 0 6 0.000012 if get(g:, 'airline#extensions#tabline#buf_label_first', 0) let show_buf_label_first = 1 6 0.000003 endif 6 0.000006 if show_buf_label_first call airline#extensions#tabline#add_label(b, 'buffers', 0) 6 0.000002 endif 6 0.000017 let b.tab_bufs = tabpagebuflist(tabpagenr()) 6 0.000008 let b.overflow_group = 'airline_tabhid' 6 0.000244 0.000065 let b.buffers = airline#extensions#tabline#buflist#list() 6 0.000012 if get(g:, 'airline#extensions#tabline#current_first', 0) if index(b.buffers, cur) > -1 call remove(b.buffers, index(b.buffers, cur)) endif let b.buffers = [cur] + b.buffers 6 0.000002 endif 6 0.000015 function! b.get_group(i) dict let bufnum = get(self.buffers, a:i, -1) if bufnum == -1 return '' endif let group = airline#extensions#tabline#group_of_bufnr(self.tab_bufs, bufnum) if bufnum == bufnr('%') let s:current_modified = (group == 'airline_tabmod') ? 1 : 0 endif return group endfunction 6 0.000017 if has("tablineat") 6 0.000008 function! b.get_pretitle(i) dict let bufnum = get(self.buffers, a:i, -1) return '%'.bufnum.'@airline#extensions#tabline#buffers#clickbuf@' endfunction 6 0.000005 function! b.get_posttitle(i) dict return '%X' endfunction 6 0.000003 endif 6 0.000005 function! b.get_title(i) dict let bufnum = get(self.buffers, a:i, -1) let group = self.get_group(a:i) let pgroup = self.get_group(a:i - 1) " always add a space when powerline_fonts are used " or for the very first item if get(g:, 'airline_powerline_fonts', 0) || a:i == 0 let space = s:spc else let space= (pgroup == group ? s:spc : '') endif if get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0) if len(s:number_map) > 0 return space. s:get_number(a:i) . '%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)' . s:spc else return '['.(a:i+1).s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)'.']' endif else return space.'%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)'.s:spc endif endfunction 6 0.000028 let current_buffer = max([index(b.buffers, cur), 0]) 6 0.000013 let last_buffer = len(b.buffers) - 1 6 0.000121 0.000030 call b.insert_titles(current_buffer, 0, last_buffer) 6 0.000045 0.000022 call b.add_section('airline_tabfill', '') 6 0.000037 0.000016 call b.split() 6 0.000032 0.000017 call b.add_section('airline_tabfill', '') 6 0.000007 if !show_buf_label_first 6 0.000222 0.000078 call airline#extensions#tabline#add_label(b, 'buffers', 1) 6 0.000002 endif 6 0.000142 0.000062 call airline#extensions#tabline#add_tab_label(b) 6 0.000008 let s:current_bufnr = cur 6 0.000007 let s:column_width = &columns 6 0.030241 0.000027 let s:current_tabline = b.build() 6 0.000014 let s:current_visible_buffers = copy(b.buffers) " Do not remove from s:current_visible_buffers, this breaks s:select_tab() "if b._right_title <= last_buffer " call remove(s:current_visible_buffers, b._right_title, last_buffer) "endif "if b._left_title > 0 " call remove(s:current_visible_buffers, 0, b._left_title) "endif 6 0.000005 return s:current_tabline FUNCTION 157_get_hunks_gitgutter() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/hunks.vim:64 Called 62 times Total time: 0.002189 Self time: 0.000553 count total (s) self (s) 62 0.002048 0.000413 let hunks = GitGutterGetHunkSummary() 62 0.000120 return hunks == [0, 0, 0] ? [] : hunks FUNCTION airline#util#has_fugitive() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:145 Called 64 times Total time: 0.000242 Self time: 0.000242 count total (s) self (s) 64 0.000091 if !exists("s:has_fugitive") let s:has_fugitive = exists('*FugitiveHead') 64 0.000014 endif 64 0.000042 return s:has_fugitive FUNCTION 233_strlen() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp/lsp.vim:21 Called 6 times Total time: 0.000370 Self time: 0.000370 count total (s) self (s) 6 0.000183 let l:runes = split(a:str, '\zs') 6 0.000181 return len(l:runes) + len(filter(l:runes, 'char2nr(v:val)>=0x10000')) FUNCTION go#config#SearchBinPathFirst() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:412 Called 276 times Total time: 0.000343 Self time: 0.000343 count total (s) self (s) 276 0.000301 return get(g:, 'go_search_bin_path_first', 1) FUNCTION gitgutter#utility#windows() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:253 Called 6 times Total time: 0.000054 Self time: 0.000054 count total (s) self (s) 6 0.000051 return has('win64') || has('win32') || has('win16') FUNCTION airline#util#stl_disabled() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:196 Called 36 times Total time: 0.001092 Self time: 0.000855 count total (s) self (s) " setting the statusline is disabled, " either globally, per window, or per buffer " w:airline_disabled is deprecated! 36 0.001053 0.000816 return get(g:, 'airline_disable_statusline', 0) || airline#util#getwinvar(a:winnr, 'airline_disable_statusline', 0) || airline#util#getwinvar(a:winnr, 'airline_disabled', 0) || airline#util#getbufvar(winbufnr(a:winnr), 'airline_disable_statusline', 0) FUNCTION 163_conflict_marker() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/whitespace.vim:52 Called 4 times Total time: 0.000957 Self time: 0.000957 count total (s) self (s) " Checks for git conflict markers 4 0.000003 let annotation = '\%([0-9A-Za-z_.:]\+\)\?' 4 0.000014 if match(['rst', 'markdown', 'rmd'], &ft) >= 0 " rst filetypes use '=======' as header 2 0.000005 let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(>\{7\} '.annotation.'\)\)$' 2 0.000000 else 2 0.000005 let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(=\{7\}\)\|\%(>\{7\} '.annotation.'\)\)$' 4 0.000001 endif 4 0.000921 return search(pattern, 'nw') FUNCTION fugitive#DidChange() Defined: ~/.vim/plugged/vim-fugitive/autoload/fugitive.vim:4342 Called 4 times Total time: 0.000256 Self time: 0.000178 count total (s) self (s) 4 0.000139 0.000082 call s:ExpireStatus(a:0 ? a:1 : -1) 4 0.000009 if a:0 > 1 ? a:2 : (!a:0 || a:1 isnot# 0) let t = reltime() let t:fugitive_reload_status = t for tabnr in range(1, tabpagenr('$')) call settabvar(tabnr, 'fugitive_reload_status', t) endfor call s:ReloadTabStatus() 4 0.000002 else 4 0.000062 0.000042 call s:ReloadWinStatus() 4 0.000002 return '' endif exe s:DoAutocmdChanged(a:0 ? a:1 : -1) return '' FUNCTION go#uri#Decode() Defined: ~/.vim/plugged/vim-go/autoload/go/uri.vim:26 Called 6 times Total time: 0.000044 Self time: 0.000044 count total (s) self (s) 6 0.000038 return substitute( a:value, '%\(\x\x\)', '\=s:decodehex(submatch(1))', 'g') FUNCTION airline#parts#filetype() Defined: ~/.vim/plugged/vim-airline/autoload/airline/parts.vim:192 Called 54 times Total time: 0.000816 Self time: 0.000498 count total (s) self (s) 54 0.000784 0.000466 return (airline#util#winwidth() < 90 && strlen(&filetype) > 3) ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? '…' : '>') : &filetype FUNCTION airline#extensions#netrw#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/netrw.vim:11 Called 14 times Total time: 0.000175 Self time: 0.000175 count total (s) self (s) 14 0.000037 if &ft == 'netrw' let spc = g:airline_symbols.space call a:1.add_section('airline_a', spc.'netrw'.spc) if exists('*airline#extensions#branch#get_head') call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc) endif call a:1.add_section('airline_c', spc.'%f'.spc) call a:1.split() call a:1.add_section('airline_y', spc.'%{airline#extensions#netrw#sortstring()}'.spc) return 1 14 0.000004 endif FUNCTION airline#extensions#term#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/term.vim:14 Called 14 times Total time: 0.000161 Self time: 0.000161 count total (s) self (s) 14 0.000037 if &buftype ==? 'terminal' || bufname(a:2.bufnr)[0] ==? '!' call a:1.add_section_spaced('airline_a', s:section_a) call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr)) call a:1.add_section('airline_term', s:spc.s:termname(a:2.bufnr)) call a:1.split() call a:1.add_section('airline_y', '') call a:1.add_section_spaced('airline_z', s:section_z) return 1 14 0.000003 endif FUNCTION coc#float#nvim_win_enter() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/float.vim:885 Called 2 times Total time: 0.000011 Self time: 0.000011 count total (s) self (s) 2 0.000003 let kind = getwinvar(a:winid, 'kind', '') 2 0.000002 if kind == 'buttons' || kind == 'close' if empty(maparg('', 'n')) nnoremap :call coc#float#nvim_float_click() endif 2 0.000000 endif FUNCTION gitgutter#process_buffer() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter.vim:21 Called 22 times Total time: 0.044251 Self time: 0.003271 count total (s) self (s) " NOTE a:bufnr is not necessarily the current buffer. 22 0.000847 0.000359 if gitgutter#utility#getbufvar(a:bufnr, 'enabled', -1) == -1 2 0.000034 0.000022 call gitgutter#utility#setbufvar(a:bufnr, 'enabled', g:gitgutter_enabled) 22 0.000016 endif 22 0.022040 0.000347 if gitgutter#utility#is_active(a:bufnr) 18 0.000358 if has('patch-7.4.1559') 18 0.000190 let l:Callback = function('gitgutter#process_buffer', [a:bufnr, a:force]) else let l:Callback = {'function': 'gitgutter#process_buffer', 'arguments': [a:bufnr, a:force]} 18 0.000014 endif 18 0.001932 0.000267 let how = s:setup_path(a:bufnr, l:Callback) 18 0.000063 if [how] == ['async'] " avoid string-to-number conversion if how is a number return 18 0.000051 endif 18 0.000730 0.000333 if a:force || s:has_fresh_changes(a:bufnr) 6 0.000009 let diff = 'NOT SET' 6 0.000005 try 6 0.016791 0.000067 let diff = gitgutter#diff#run_diff(a:bufnr, g:gitgutter_diff_relative_to, 0) catch /gitgutter not tracked/ call gitgutter#debug#log('Not tracked: '.gitgutter#utility#file(a:bufnr)) catch /gitgutter assume unchanged/ call gitgutter#debug#log('Assume unchanged: '.gitgutter#utility#file(a:bufnr)) catch /gitgutter file unknown in base/ let diff = gitgutter#diff#hunk_header_showing_every_line_added(a:bufnr) catch /gitgutter diff failed/ call gitgutter#debug#log('Diff failed: '.gitgutter#utility#file(a:bufnr)) call gitgutter#hunk#reset(a:bufnr) 6 0.000005 endtry 6 0.000011 if diff != 'async' && diff != 'NOT SET' call gitgutter#diff#handler(a:bufnr, diff) 6 0.000002 endif 18 0.000014 endif 22 0.000014 endif FUNCTION go#util#HasDebug() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:513 Called 297 times Total time: 0.001973 Self time: 0.001455 count total (s) self (s) 297 0.001906 0.001389 return index(go#config#Debug(), a:flag) >= 0 FUNCTION 177_get_section() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/default.vim:20 Called 202 times Total time: 0.005326 Self time: 0.004330 count total (s) self (s) 202 0.000259 if has_key(s:section_truncate_width, a:key) 136 0.001446 0.000772 if airline#util#winwidth(a:winnr) < s:section_truncate_width[a:key] return '' 136 0.000031 endif 202 0.000046 endif 202 0.000167 let spc = g:airline_symbols.space 202 0.000373 if !exists('g:airline_section_{a:key}') return '' 202 0.000042 endif 202 0.001651 0.001328 let text = airline#util#getwinvar(a:winnr, 'airline_section_'.a:key, g:airline_section_{a:key}) 202 0.000583 let [prefix, suffix] = [get(a:000, 0, '%('.spc), get(a:000, 1, spc.'%)')] 202 0.000354 return empty(text) ? '' : prefix.text.suffix FUNCTION 130_Filter() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:291 Called 10 times Total time: 0.000110 Self time: 0.000110 count total (s) self (s) 10 0.000017 if index(g:indentLine_fileTypeExclude, &filetype) != -1 return 0 10 0.000002 endif 10 0.000014 if index(g:indentLine_bufTypeExclude, &buftype) != -1 return 0 10 0.000002 endif 10 0.000017 if len(g:indentLine_fileType) != 0 && index(g:indentLine_fileType, &filetype) == -1 return 0 10 0.000002 endif 10 0.000008 for name in g:indentLine_bufNameExclude if matchstr(bufname(''), name) == bufname('') return 0 endif 10 0.000003 endfor 10 0.000003 return 1 FUNCTION 130_InitColor() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:40 Called 6 times Total time: 0.000240 Self time: 0.000240 count total (s) self (s) 6 0.000004 if !g:indentLine_setColors return 6 0.000001 endif 6 0.000005 let default_term_bg = "NONE" 6 0.000004 let default_gui_bg = "NONE" 6 0.000004 if &background ==# "light" let default_term_fg = 249 let default_gui_fg = "Grey70" 6 0.000001 else 6 0.000003 let default_term_fg = 239 6 0.000003 let default_gui_fg = "Grey30" 6 0.000001 endif 6 0.000005 if g:indentLine_defaultGroup != "" let default_id = synIDtrans(hlID(g:indentLine_defaultGroup)) let default_term_fg = synIDattr(default_id, "fg", "cterm") == "" ? default_term_fg : synIDattr(default_id, "fg", "cterm") let default_term_bg = synIDattr(default_id, "bg", "cterm") == "" ? default_term_bg : synIDattr(default_id, "bg", "cterm") let default_gui_fg = synIDattr(default_id, "fg", "gui") == "" ? default_gui_fg : synIDattr(default_id, "fg", "gui") let default_gui_bg = synIDattr(default_id, "bg", "gui") == "" ? default_gui_bg : synIDattr(default_id, "bg", "gui") 6 0.000001 endif 6 0.000007 if !exists("g:indentLine_color_term") let term_color = default_term_fg 6 0.000001 else 6 0.000005 let term_color = g:indentLine_color_term 6 0.000001 endif 6 0.000005 if !exists("g:indentLine_bgcolor_term") 6 0.000005 let term_bgcolor = default_term_bg else let term_bgcolor = g:indentLine_bgcolor_term 6 0.000001 endif 6 0.000005 if !exists("g:indentLine_color_gui") let gui_color = default_gui_fg 6 0.000001 else 6 0.000004 let gui_color = g:indentLine_color_gui 6 0.000001 endif 6 0.000005 if !exists("g:indentLine_bgcolor_gui") 6 0.000004 let gui_bgcolor = default_gui_bg else let gui_bgcolor = g:indentLine_bgcolor_gui 6 0.000001 endif 6 0.000028 execute "highlight Conceal cterm=NONE ctermfg=" . term_color . " ctermbg=" . term_bgcolor 6 0.000016 execute "highlight Conceal gui=NONE guifg=" . gui_color . " guibg=" . gui_bgcolor 6 0.000004 if &term ==# "linux" if &background ==# "light" let tty_color = exists("g:indentLine_color_tty_light") ? g:indentLine_color_tty_light : 4 else let tty_color = exists("g:indentLine_color_tty_dark") ? g:indentLine_color_tty_dark : 2 endif execute "highlight Conceal cterm=bold ctermfg=" . tty_color . " ctermbg=NONE" 6 0.000001 endif FUNCTION 300() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:62 Called 34 times Total time: 0.106850 Self time: 0.013174 count total (s) self (s) 34 0.000027 let side = 1 34 0.000019 let line = '' 34 0.000020 let i = 0 34 0.000047 let length = len(self._sections) 34 0.000021 let split = 0 34 0.000026 let is_empty = 0 34 0.000025 let prev_group = '' 266 0.000190 while i < length 232 0.000257 let section = self._sections[i] 232 0.000234 let group = section[0] 232 0.000213 let contents = section[1] 232 0.000177 let pgroup = prev_group 232 0.003084 0.001716 let prev_group = airline#builder#get_prev_group(self._sections, i) 232 0.000322 if group ==# 'airline_c' && &buftype ==# 'terminal' && self._context.active let group = 'airline_term' 232 0.000428 elseif group ==# 'airline_c' && !self._context.active && has_key(self._context, 'bufnr') let group = 'airline_c'. self._context.bufnr 232 0.000460 elseif prev_group ==# 'airline_c' && !self._context.active && has_key(self._context, 'bufnr') let prev_group = 'airline_c'. self._context.bufnr 232 0.000060 endif 232 0.000104 if is_empty 56 0.000040 let prev_group = pgroup 232 0.000050 endif 232 0.041725 0.001475 let is_empty = s:section_is_empty(self, contents) 232 0.000101 if is_empty " need to fix highlighting groups, since we " have skipped a section, we actually need " the previous previous group and so the " separator goes from the previous previous group " to the current group 70 0.000051 let pgroup = group 232 0.000055 endif 232 0.000153 if group == '' 12 0.000015 let line .= contents 220 0.000152 elseif group == '|' 34 0.000019 let side = 0 34 0.000040 let line .= contents 34 0.000017 let split = 1 186 0.000051 else 186 0.000119 if prev_group == '' 48 0.000079 let line .= '%#'.group.'#' 138 0.000061 elseif split 34 0.000016 if !is_empty 34 0.014197 0.000316 let line .= s:get_transitioned_separator(self, prev_group, group, side) 34 0.000009 endif 34 0.000020 let split = 0 104 0.000025 else 104 0.000043 if !is_empty 62 0.035511 0.000444 let line .= s:get_separator(self, prev_group, group, side) 104 0.000027 endif 186 0.000057 endif 186 0.004247 0.001139 let line .= is_empty ? '' : s:get_accented_line(self, group, contents) 232 0.000058 endif 232 0.000157 let i = i + 1 266 0.000133 endwhile 34 0.000022 if !self._context.active "let line = substitute(line, '%#airline_c#', '%#airline_c'.self._context.bufnr.'#', '') 8 0.000199 let line = substitute(line, '%#.\{-}\ze#', '\0_inactive', 'g') 34 0.000010 endif 34 0.000021 return line FUNCTION 301() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:825 Called 28 times Total time: 0.000133 Self time: 0.000133 count total (s) self (s) 28 0.000112 return get(self._files, a:fname, {}) FUNCTION 303() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:841 Called 14 times Total time: 0.000066 Self time: 0.000066 count total (s) self (s) 14 0.000058 return has_key(self._files, a:fname) FUNCTION 307() Defined: ~/.vim/plugged/tagbar/autoload/tagbar/state.vim:41 Called 14 times Total time: 0.000046 Self time: 0.000046 count total (s) self (s) 14 0.000041 let self._current = a:fileinfo FUNCTION 309() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:9 Called 32 times Total time: 0.000429 Self time: 0.000429 count total (s) self (s) 32 0.000252 if empty(get(self, 'current', {})) || empty(get(self.current, 'job', {})) let self.current = s:newlsp() 32 0.000016 endif 32 0.000033 return self.current FUNCTION FugitiveActualDir() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:273 Called 62 times Total time: 0.002892 Self time: 0.000866 count total (s) self (s) 62 0.002375 0.000348 let dir = call('FugitiveGitDir', a:000) 62 0.000046 if empty(dir) return '' 62 0.000015 endif 62 0.000121 if !has_key(s:resolved_git_dirs, dir) let s:resolved_git_dirs[dir] = s:ResolveGitDir(dir) 62 0.000014 endif 62 0.000174 return empty(s:resolved_git_dirs[dir]) ? dir : s:resolved_git_dirs[dir] FUNCTION gitgutter#utility#has_repo_path() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:101 Called 18 times Total time: 0.001101 Self time: 0.000356 count total (s) self (s) 18 0.001088 0.000343 return index(['', -1, -2], gitgutter#utility#repo_path(a:bufnr, 0)) == -1 FUNCTION airline#mode_changed() Defined: ~/.vim/plugged/vim-airline/autoload/airline.vim:307 Called 32 times Total time: 0.000596 Self time: 0.000463 count total (s) self (s) " airline#visual_active " Boolean: for when to get visual wordcount " needed for the wordcount extension 32 0.000220 let g:airline#visual_active = (mode() =~? '[vs]') 32 0.000324 0.000191 call airline#update_tabline() FUNCTION 311() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:82 Called 47 times Total time: 0.002866 Self time: 0.002706 count total (s) self (s) 47 0.000045 let l:responses = [] 47 0.000044 let l:rest = a:data 62 0.000038 while 1 " Look for the end of the HTTP headers 62 0.000245 let l:body_start_idx = matchend(l:rest, "\r\n\r\n") 62 0.000051 if l:body_start_idx < 0 " incomplete header 30 0.000021 break 32 0.000009 endif " Parse the Content-Length header. 32 0.000060 let l:header = l:rest[:l:body_start_idx - 4] 32 0.000570 let l:length_match = matchlist( l:header, '\vContent-Length: *(\d+)') 32 0.000039 if empty(l:length_match) " TODO(bc): shutdown gopls? throw "invalid JSON-RPC header:\n" . l:header 32 0.000009 endif " get the start of the rest 32 0.000076 let l:next_start_idx = l:body_start_idx + str2nr(l:length_match[1]) 32 0.000050 if len(l:rest) < l:next_start_idx " incomplete response body 17 0.000006 break 15 0.000003 endif 15 0.000251 0.000092 call s:debug('received', l:rest[:l:next_start_idx - 1]) 15 0.000029 let l:body = l:rest[l:body_start_idx : l:next_start_idx - 1] 15 0.000020 let l:rest = l:rest[l:next_start_idx :] 15 0.000005 try " add the json body to the list. 15 0.000212 call add(l:responses, json_decode(l:body)) catch " TODO(bc): log the message and/or show an error message. 15 0.000006 finally " intentionally left blank. 15 0.000005 endtry 62 0.000053 endwhile 47 0.000056 return [l:rest, l:responses] FUNCTION 314() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:181 Called 9 times Total time: 0.006492 Self time: 0.000496 count total (s) self (s) 9 0.000038 if has_key(a:resp, 'id') && has_key(self.handlers, a:resp.id) 9 0.000004 try 9 0.000020 let l:handler = self.handlers[a:resp.id] 9 0.000022 let l:winid = win_getid(winnr()) " Always set the active window to the window that was active when " the request was sent. Among other things, this makes sure that " the correct window's location list will be populated when the " list type is 'location' and the user has moved windows since " sending the request. 9 0.000027 call win_gotoid(l:handler.winid) 9 0.000011 if has_key(a:resp, 'error') 1 0.000005 0.000003 call l:handler.requestComplete(0) 1 0.000001 if has_key(l:handler, 'error') 1 0.000003 0.000003 call call(l:handler.error, [a:resp.error.message]) else call go#util#EchoError(a:resp.error.message) 1 0.000000 endif 1 0.000001 call win_gotoid(l:winid) 1 0.000000 return 8 0.000008 endif 8 0.003842 0.000072 call l:handler.requestComplete(1) 8 0.000012 let l:winidBeforeHandler = l:handler.winid 8 0.002298 0.000074 call call(l:handler.handleResult, [a:resp.result]) " change the window back to the window that was active when " starting to handle the message _only_ if the handler didn't " update the winid, so that handlers can set the winid if needed " (e.g. :GoDef). 8 0.000012 if l:handler.winid == l:winidBeforeHandler 8 0.000012 call win_gotoid(l:winid) 8 0.000003 endif 9 0.000005 finally 9 0.000026 call remove(self.handlers, a:resp.id) 9 0.000005 endtry 8 0.000003 endif FUNCTION 315() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:222 Called 6 times Total time: 0.002141 Self time: 0.000032 count total (s) self (s) " TODO(bc): handle more notifications (e.g. window/showMessage). 6 0.000008 if a:req.method == 'textDocument/publishDiagnostics' 3 0.002115 0.000006 call self.handleDiagnostics(a:req.params) 3 0.000003 elseif a:req.method == 'window/showMessage' call self.showMessage(a:req.params) 6 0.000001 endif FUNCTION 316() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:231 Called 3 times Total time: 0.002109 Self time: 0.000014 count total (s) self (s) 3 0.000005 let self.diagnosticsQueue = add(self.diagnosticsQueue, a:data) 3 0.002103 0.000008 call self.updateDiagnostics() FUNCTION 318() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:250 Called 3 times Total time: 0.002095 Self time: 0.000619 count total (s) self (s) 3 0.000042 0.000013 let l:level = go#config#DiagnosticsLevel() 6 0.000004 for l:data in self.diagnosticsQueue 3 0.000003 call remove(self.diagnosticsQueue, 0) 3 0.000001 try 3 0.000002 let l:diagnostics = [] 3 0.000002 let l:errorMatches = [] 3 0.000002 let l:warningMatches = [] 3 0.000078 0.000012 let l:fname = go#path#FromURI(l:data.uri) " get the buffer name relative to the current directory, because " Vim says that a buffer name can't be an absolute path. 3 0.000262 let l:bufname = fnamemodify(l:fname, ':.') 3 0.000012 if len(l:data.diagnostics) > 0 && (l:level > 0 || bufnr(l:bufname) == bufnr('')) " make sure the buffer is listed and loaded before calling getbufline() on it 1 0.000031 if !bufexists(l:bufname) call bufadd(l:bufname) 1 0.000000 endif 1 0.000026 if !bufloaded(l:bufname) call bufload(l:bufname) 1 0.000000 endif 2 0.000001 for l:diag in l:data.diagnostics 1 0.000001 if l:level < l:diag.severity 1 0.000001 continue endif let [l:diagnostic, l:matchpos] = s:processDiagnostic(l:diag, l:bufname, l:fname) let l:diagnostics = add(l:diagnostics, l:diagnostic) if empty(l:matchpos) continue endif if l:diag.severity == 1 let l:errorMatches = add(l:errorMatches, l:matchpos) elseif l:diag.severity == 2 let l:warningMatches = add(l:warningMatches, l:matchpos) endif 1 0.000000 endfor 3 0.000001 endif 3 0.000015 if bufnr(l:bufname) == bufnr('') " only apply highlighting when the diagnostics are for the current " version. 3 0.000031 0.000010 let l:lsp = s:lspfactory.get() 3 0.000005 let l:version = get(l:lsp.fileVersions, l:fname, 0) " it's tempting to only highlight matches when they are for the " current version of the buffer, but that causes problems when the " version number has been updated and the content has not. In such a " case, the diagnostics may not be sent for later versions. 3 0.001409 0.000050 call s:highlightMatches(l:errorMatches, l:warningMatches) 3 0.000001 endif 3 0.000006 let self.diagnostics[l:fname] = l:diagnostics 3 0.000008 if has_key(self.notificationQueue, l:fname) && len(self.notificationQueue[l:fname]) > 0 call call(self.notificationQueue[l:fname][0], copy(l:diagnostics)) call remove(self.notificationQueue[l:fname], 0) 3 0.000001 endif catch "call go#util#EchoError(printf('%s: %s', v:throwpoint, v:exception)) 3 0.000001 endtry 6 0.000004 endfor FUNCTION 192_infoFromHoverContent() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1183 Called 3 times Total time: 0.000081 Self time: 0.000081 count total (s) self (s) 3 0.000011 if len(a:content) < 1 return '' 3 0.000002 endif 3 0.000007 let l:content = a:content[0] " strip off the method set and fields of structs and interfaces. 3 0.000037 if l:content =~# '^\(type \)\?[^ ]\+ \(struct\|interface\)' let l:content = substitute(l:content, '{.*', '', '') 3 0.000001 endif 3 0.000003 return l:content FUNCTION gitgutter#utility#cd_cmd() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:181 Called 6 times Total time: 0.001336 Self time: 0.000148 count total (s) self (s) 6 0.000695 0.000100 let cd = s:unc_path(a:bufnr) ? 'pushd' : (gitgutter#utility#windows() && s:dos_shell() ? 'cd /d' : 'cd') 6 0.000636 0.000043 return cd.' '.s:dir(a:bufnr).' && '.a:cmd FUNCTION 43_on_cursor_moved() Defined: ~/.vim/plugged/vim-airline/plugin/airline.vim:87 Called 14 times Total time: 0.000289 Self time: 0.000232 count total (s) self (s) 14 0.000089 if winnr() != s:active_winnr || !exists('w:airline_active') call s:on_window_changed('CursorMoved') 14 0.000007 endif 14 0.000153 0.000096 call airline#update_tabline() FUNCTION 320() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:342 Called 12 times Total time: 0.004518 Self time: 0.000963 count total (s) self (s) 12 0.000019 if !self.last_request_id let l:wd = go#util#ModuleRoot() if l:wd == -1 call go#util#EchoError('could not determine appropriate working directory for gopls') return -1 endif if l:wd == '' let l:wd = getcwd() endif let self.wd = l:wd if go#config#EchoCommandInfo() call go#util#EchoProgress("initializing gopls") endif let l:status = { 'desc': '', 'type': 'gopls', 'state': 'initializing', } call go#statusline#Update(l:wd, l:status) let self.workspaceDirectories = add(self.workspaceDirectories, l:wd) let l:msg = self.newMessage(go#lsp#message#Initialize(l:wd)) let l:state = s:newHandlerState('') let l:state.handleResult = funcref('self.handleInitializeResult', [], l:self) let self.handlers[l:msg.id] = l:state call l:state.start() call self.write(l:msg) 12 0.000007 endif 12 0.000012 if !self.ready call add(self.queue, {'data': a:data, 'handler': a:handler}) return 12 0.000005 endif 12 0.000268 0.000061 let l:msg = self.newMessage(a:data) 12 0.000018 if has_key(l:msg, 'id') 9 0.000028 let self.handlers[l:msg.id] = a:handler 12 0.000005 endif 12 0.000241 0.000078 call a:handler.start() 12 0.003434 0.000249 call self.write(l:msg) FUNCTION 321() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:394 Called 12 times Total time: 0.000207 Self time: 0.000207 count total (s) self (s) 12 0.000045 let l:msg = { 'method': a:data.method, 'jsonrpc': '2.0', } 12 0.000012 if !a:data.notification 9 0.000036 let self.last_request_id += 1 9 0.000013 let l:msg.id = self.last_request_id 12 0.000005 endif 12 0.000023 if has_key(a:data, 'params') 12 0.000018 let l:msg.params = a:data.params 12 0.000005 endif 12 0.000011 return l:msg FUNCTION 323() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:422 Called 12 times Total time: 0.003185 Self time: 0.003011 count total (s) self (s) 12 0.000043 if empty(get(self, 'job', {})) return 12 0.000005 endif 12 0.002453 let l:body = json_encode(a:msg) 12 0.000108 let l:data = 'Content-Length: ' . strlen(l:body) . "\r\n\r\n" . l:body 12 0.000270 0.000096 call s:debug('sent', l:data) 12 0.000023 if has('nvim') 12 0.000238 call chansend(self.job, l:data) 12 0.000012 return endif try call ch_sendraw(self.job, l:data) catch call go#util#EchoError(printf('could not send message: %s', v:exception)) endtry FUNCTION 327() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim:18 Called 6 times Total time: 0.000091 Self time: 0.000078 count total (s) self (s) 6 0.000011 let self._first_title = a:first " lowest index 6 0.000009 let self._last_title = a:last " highest index 6 0.000009 let self._left_title = a:current " next index to add on the left 6 0.000009 let self._right_title = a:current + 1 " next index to add on the right 6 0.000037 0.000024 let self._left_position = self.get_position() " left end of titles 6 0.000009 let self._right_position = self._left_position " right end of the titles FUNCTION 328() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim:41 Called 6 times Total time: 0.002422 Self time: 0.000256 count total (s) self (s) 6 0.000507 0.000020 let title = self.get_title(a:index) 6 0.001652 0.000050 let title_size = s:tabline_evaluated_length(title) + a:sep_size 6 0.000009 if a:force || self._remaining_space >= title_size 6 0.000005 let pos = a:pos 6 0.000012 if has_key(self, "get_pretitle") 6 0.000096 0.000052 call self.insert_raw(self.get_pretitle(a:index), pos) 6 0.000008 let self._right_position += 1 6 0.000005 let pos += 1 6 0.000002 endif 6 0.000036 0.000019 call self.insert_section(a:group, title, pos) 6 0.000005 let self._right_position += 1 6 0.000004 let pos += 1 6 0.000007 if has_key(self, "get_posttitle") 6 0.000040 0.000024 call self.insert_raw(self.get_posttitle(a:index), pos) 6 0.000004 let self._right_position += 1 6 0.000004 let pos += 1 6 0.000002 endif 6 0.000007 let self._remaining_space -= title_size 6 0.000003 return 1 endif return 0 FUNCTION 329() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim:96 Called 6 times Total time: 0.030214 Self time: 0.001159 count total (s) self (s) 6 0.000019 if has_key(self, '_left_position') && self._first_title <= self._last_title 6 0.010530 0.000078 let self._remaining_space = &columns - s:tabline_evaluated_length(self._build()) 6 0.000016 let center_active = get(g:, 'airline#extensions#tabline#center_active', 0) 6 0.000247 0.000054 let sep_size = s:tabline_evaluated_length(self._context.left_sep) 6 0.000245 0.000067 let alt_sep_size = s:tabline_evaluated_length(self._context.left_alt_sep) 6 0.000092 0.000042 let outer_left_group = airline#builder#get_prev_group(self._sections, self._left_position) 6 0.000136 0.000056 let outer_right_group = airline#builder#get_next_group(self._sections, self._right_position) 6 0.000025 let overflow_marker = get(g:, 'airline#extensions#tabline#overflow_marker', g:airline_symbols.ellipsis) 6 0.000266 0.000070 let overflow_marker_size = s:tabline_evaluated_length(overflow_marker) " Allow space for the markers before we begin filling in titles. 6 0.000007 if self._left_title > self._first_title let self._remaining_space -= overflow_marker_size + s:get_separator_change(self.overflow_group, "", outer_left_group, sep_size, alt_sep_size) 6 0.000002 endif 6 0.000006 if self._left_title < self._last_title let self._remaining_space -= overflow_marker_size + s:get_separator_change(self.overflow_group, "", outer_right_group, sep_size, alt_sep_size) 6 0.000002 endif " Add the current title 6 0.000245 0.000021 let group = self.get_group(self._left_title) 6 0.000005 if self._left_title == self._first_title 6 0.000221 0.000048 let sep_change = s:get_separator_change(group, "", outer_left_group, sep_size, alt_sep_size) else let sep_change = s:get_separator_change(group, "", self.overflow_group, sep_size, alt_sep_size) 6 0.000002 endif 6 0.000005 if self._left_title == self._last_title 6 0.001470 0.000056 let sep_change += s:get_separator_change(group, "", outer_right_group, sep_size, alt_sep_size) else let sep_change += s:get_separator_change(group, "", self.overflow_group, sep_size, alt_sep_size) 6 0.000002 endif 6 0.000006 let left_group = group 6 0.000007 let right_group = group 6 0.002456 0.000034 let self._left_title -= self.try_insert_title(self._left_title, group, self._left_position, sep_change, 1) 6 0.000013 if get(g:, 'airline#extensions#tabline#current_first', 0) " always have current title first let self._left_position += 1 6 0.000002 endif 6 0.000009 if !center_active && self._right_title <= self._last_title " Add the title to the right let group = self.get_group(self._right_title) if self._right_title == self._last_title let sep_change = s:get_separator_change_with_end(group, right_group, outer_right_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size else let sep_change = s:get_separator_change(group, right_group, self.overflow_group, sep_size, alt_sep_size) endif let right_group = group let self._right_title += self.try_insert_title(self._right_title, group, self._right_position, sep_change, 1) 6 0.000002 endif 6 0.000007 while self._remaining_space > 0 6 0.000005 let done = 0 6 0.000006 if self._left_title >= self._first_title " Insert next title to the left let group = self.get_group(self._left_title) if self._left_title == self._first_title let sep_change = s:get_separator_change_with_end(group, left_group, outer_left_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size else let sep_change = s:get_separator_change(group, left_group, self.overflow_group, sep_size, alt_sep_size) endif let left_group = group let done = self.try_insert_title(self._left_title, group, self._left_position, sep_change, 0) let self._left_title -= done 6 0.000002 endif " If center_active is set, this |if| operates as an independent |if|, " otherwise as an |elif|. 6 0.000010 if self._right_title <= self._last_title && (center_active || !done) " Insert next title to the right let group = self.get_group(self._right_title) if self._right_title == self._last_title let sep_change = s:get_separator_change_with_end(group, right_group, outer_right_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size else let sep_change = s:get_separator_change(group, right_group, self.overflow_group, sep_size, alt_sep_size) endif let right_group = group let done = self.try_insert_title(self._right_title, group, self._right_position, sep_change, 0) let self._right_title += done 6 0.000002 endif 6 0.000004 if !done 6 0.000004 break endif 6 0.000006 endwhile 6 0.000005 if self._left_title >= self._first_title if get(g:, 'airline#extensions#tabline#current_first', 0) let self._left_position -= 1 endif call self.insert_section(self.overflow_group, overflow_marker, self._left_position) let self._right_position += 1 6 0.000002 endif 6 0.000005 if self._right_title <= self._last_title call self.insert_section(self.overflow_group, overflow_marker, self._right_position) 6 0.000002 endif 6 0.000002 endif 6 0.013697 0.000022 return self._build() FUNCTION 130_LeadingSpaceDisable() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:369 Called 2 times Total time: 0.000012 Self time: 0.000012 count total (s) self (s) 2 0.000001 if g:indentLine_newVersion 2 0.000003 if exists("w:indentLine_leadingSpaceId") && ! empty(w:indentLine_leadingSpaceId) for id in w:indentLine_leadingSpaceId try call matchdelete(id) catch /^Vim\%((\a\+)\)\=:E80[23]/ endtry endfor let w:indentLine_leadingSpaceId = [] 2 0.000000 endif 2 0.000000 return endif let b:indentLine_leadingSpaceEnabled = 0 try syntax clear IndentLineLeadingSpace catch /^Vim\%((\a\+)\)\=:E28/ " catch error E28 endtry FUNCTION airline#util#doautocmd() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:178 Called 40 times Total time: 0.002647 Self time: 0.000657 count total (s) self (s) 40 0.000119 if !exists('#airline') && a:event !=? 'AirlineToggledOff' " airline disabled return 40 0.000014 endif 40 0.000021 try 40 0.002357 0.000366 exe printf("silent doautocmd %s User %s", s:nomodeline, a:event) catch /^Vim\%((\a\+)\)\=:E48:/ " Catch: Sandbox mode " no-op 40 0.000020 endtry FUNCTION coc#util#editor_infos() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:421 Called 16 times Total time: 0.003160 Self time: 0.002596 count total (s) self (s) 16 0.000045 let result = [] 34 0.000160 for info in getwininfo() 18 0.000617 0.000194 if !coc#window#is_float(info['winid']) 18 0.000032 let bufnr = info['bufnr'] 18 0.000084 let buftype = getbufvar(bufnr, '&buftype') 18 0.000040 if buftype !=# '' && buftype !=# 'acwrite' 2 0.000001 continue 16 0.000010 endif 16 0.000042 let bufname = bufname(bufnr) 16 0.001693 0.001552 call add(result, { 'winid': info['winid'], 'bufnr': bufnr, 'tabid': coc#util#tabnr_id(info['tabnr']), 'fullpath': empty(bufname) ? '' : fnamemodify(bufname, ':p'), }) 16 0.000016 endif 32 0.000046 endfor 16 0.000019 return result FUNCTION 50_AutoClose() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:282 Called 4 times Total time: 0.001835 Self time: 0.000915 count total (s) self (s) " Add matching pair and jump to the midle: " inoremap ( () 4 0.000002 let i = 0 16 0.000283 0.000083 while i < len(s:get('matchpairs_list', [])) 12 0.000412 0.000122 let ld = s:get('left_delims', [])[i] == '|' ? '' : s:get('left_delims', [])[i] 12 0.000379 0.000104 let rd = s:get('right_delims', [])[i] == '|' ? '' : s:get('right_delims', [])[i] 12 0.000078 exec 'inoremap delimitMate' . ld. ' TriggerAbb().delimitMate#ParenDelim("' . escape(rd, '|') . '")' 12 0.000100 exec 'silent! imap '.ld.' delimitMate'.ld 12 0.000007 let i += 1 16 0.000005 endwhile " Exit from inside the matching pair: 16 0.000076 0.000033 for delim in s:get('right_delims', []) 12 0.000010 let delim = delim == '|' ? '' : delim 12 0.000050 exec 'inoremap delimitMate' . delim. ' TriggerAbb().delimitMate#JumpOut("\' . delim . '")' 12 0.000066 exec 'silent! imap ' . delim. ' delimitMate'. delim 16 0.000004 endfor " Add matching quote and jump to the midle, or exit if inside a pair of matching quotes: " inoremap " =delimitMate#QuoteDelim("\"") 16 0.000063 0.000020 for delim in s:get('quotes_list', []) 12 0.000005 if delim == '|' let delim = '' 12 0.000002 endif 12 0.000060 exec 'inoremap delimitMate' . delim. ' TriggerAbb()."=delimitMate#QuoteDelim(\"\\\' . delim . '\")"' 12 0.000065 exec 'silent! imap ' . delim. ' delimitMate' . delim 16 0.000003 endfor " Try to fix the use of apostrophes (kept for backward compatibility): " inoremap n't n't 4 0.000097 0.000028 for map in s:get('apostrophes_list', []) exec "inoremap " . map . " " . map exec 'silent! imap ' . map . ' delimitMate' . map 4 0.000001 endfor FUNCTION 177_add_section() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/default.vim:47 Called 136 times Total time: 0.007124 Self time: 0.002350 count total (s) self (s) 136 0.000306 let condition = (a:key is# "warning" || a:key is# "error") && (v:version == 704 && !has("patch1511")) " i have no idea why the warning section needs special treatment, but it's " needed to prevent separators from showing up 136 0.001067 0.000396 if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key))) return 136 0.000028 endif 136 0.000054 if condition call a:builder.add_raw('%(') 136 0.000027 endif 136 0.005165 0.001062 call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key)) 136 0.000071 if condition call a:builder.add_raw('%)') 136 0.000031 endif FUNCTION 198_tabline_evaluated_length() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim:223 Called 30 times Total time: 0.002607 Self time: 0.000312 count total (s) self (s) 30 0.002599 0.000305 return airline#util#strchars(s:evaluate_tabline(a:tabline)) FUNCTION tagbar#is_paused() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:3860 Called 56 times Total time: 0.000088 Self time: 0.000088 count total (s) self (s) 56 0.000066 return s:paused FUNCTION 115_Remove_Matches() Defined: /opt/homebrew/Cellar/neovim/0.9.0/share/nvim/runtime/plugin/matchparen.vim:197 Called 30 times Total time: 0.000112 Self time: 0.000112 count total (s) self (s) 30 0.000046 if exists('w:paren_hl_on') && w:paren_hl_on 1 0.000005 silent! call matchdelete(3) 1 0.000002 let w:paren_hl_on = 0 30 0.000007 endif FUNCTION go#path#ToURI() Defined: ~/.vim/plugged/vim-go/autoload/go/path.vim:158 Called 12 times Total time: 0.001181 Self time: 0.000421 count total (s) self (s) 12 0.000165 0.000102 let l:absolute = !go#util#IsWin() && a:path[0] is# '/' 12 0.000014 let l:prefix = '' 12 0.000014 let l:path = a:path 12 0.000102 0.000071 if go#util#IsWin() && l:path[1:2] is# ':\' let l:absolute = 1 let l:prefix = '/' . l:path[0:1] let l:path = l:path[2:] 12 0.000006 endif 12 0.000813 0.000147 return substitute( (l:absolute ? 'file://' : '') . l:prefix . go#uri#EncodePath(l:path), '\\', '/', 'g',) FUNCTION 181_Init() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:209 Called 28 times Total time: 0.000459 Self time: 0.000459 count total (s) self (s) 28 0.000041 if s:checked_ctags == 2 && a:silent return 0 28 0.000024 elseif s:checked_ctags != 1 if !s:CheckForExCtags(a:silent) return 0 endif 28 0.000007 endif 28 0.000033 if !s:type_init_done call s:InitTypes() 28 0.000007 endif 28 0.000022 if !s:autocommands_done call s:CreateAutocommands() call s:AutoUpdate(fnamemodify(expand('%'), ':p'), 0) 28 0.000007 endif 28 0.000026 let s:init_done = 1 28 0.000014 return 1 FUNCTION spelunker#matches#add_matches() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/matches.vim:13 Called 2 times Total time: 0.000031 Self time: 0.000031 count total (s) self (s) 2 0.000003 let l:current_matched_list = keys(a:match_id_dict) 2 0.000003 let l:word_list_for_delete_match = l:current_matched_list " spellbadとして今回検知されなければ削除するリスト 2 0.000002 let l:match_id_dict = a:match_id_dict 2 0.000001 for l:word in a:spell_bad_list if index(l:current_matched_list, l:word) == -1 " 新しく見つかった場合highlightを設定する let l:highlight_group = g:spelunker_spell_bad_group if spelunker#white_list#is_complex_or_compound_word(l:word) let l:highlight_group = g:spelunker_complex_or_compound_word_group endif let l:pattern = spelunker#matches#get_match_pattern(l:word) let l:match_id = matchadd(l:highlight_group, l:pattern, 0) let l:match_id_dict[l:word] = l:match_id else " すでにある場合には削除予定リストから単語消す let l:del_index = index(l:word_list_for_delete_match, l:word) call remove(l:word_list_for_delete_match, l:del_index) endif 2 0.000001 endfor 2 0.000002 return [l:word_list_for_delete_match, l:match_id_dict] FUNCTION coc#window#is_float() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/window.vim:95 Called 20 times Total time: 0.000446 Self time: 0.000446 count total (s) self (s) 20 0.000039 if s:is_vim try return !empty(popup_getpos(a:winid)) catch /^Vim\%((\a\+)\)\=:E993/ return 0 endtry 20 0.000011 else 20 0.000119 let config = nvim_win_get_config(a:winid) 20 0.000090 return !empty(config) && !empty(get(config, 'relative', '')) endif FUNCTION gitgutter#diff#parse_diff() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/diff.vim:223 Called 6 times Total time: 0.000062 Self time: 0.000062 count total (s) self (s) 6 0.000010 let hunks = [] 6 0.000021 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 6 0.000003 endfor 6 0.000004 return hunks FUNCTION go#doc#Open() Defined: ~/.vim/plugged/vim-go/autoload/go/doc.vim:45 Called 2 times Total time: 15.704019 Self time: 0.000194 count total (s) self (s) 2 0.000017 let l:words = a:000 2 0.000004 let l:package = '' 2 0.000006 if a:0 is 0 2 15.517745 0.000053 let l:words = s:godocWord() 2 0.000002 let l:package = l:words[0] 2 0.000000 endif 2 0.000004 if a:0 is 0 && &filetype == 'go' " use gopls to get documentation for go files 2 0.104964 0.000036 let [l:out, l:err] = go#lsp#Doc() else " copy l:words before filtering so that filter() works when l:words is a:000 let l:words = filter(copy(l:words), 'v:val != ""') let l:wd = go#util#Chdir(get(b:, 'go_godoc_wd', getcwd())) try let [l:out, l:err] = go#util#Exec(['go', 'doc'] + l:words) finally call go#util#Chdir(l:wd) endtry 2 0.000000 endif 2 0.000001 if l:err call go#util#EchoError(out) return 2 0.000000 endif 2 0.081238 0.000033 call s:GodocView(a:newmode, a:mode, l:out, l:package) FUNCTION 50_setup() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:219 Called 4 times Total time: 0.006491 Self time: 0.000133 count total (s) self (s) 4 0.000005 let swap = a:0 && a:1 == 2 4 0.000003 let enable = a:0 && a:1 4 0.000003 let disable = a:0 && !a:1 " First, remove all magic, if needed: 4 0.000004 if get(b:, 'delimitMate_enabled', 0) 2 0.000643 0.000007 call s:Unmap() " Switch 2 0.000001 if swap echo "delimitMate is disabled." return 2 0.000000 endif 4 0.000001 endif 4 0.000002 if disable " Just disable the mappings. return 4 0.000001 endif 4 0.000002 if !a:0 " Check if this file type is excluded: 4 0.000011 if exists("g:delimitMate_excluded_ft") && index(split(g:delimitMate_excluded_ft, ','), &filetype, 0, 1) >= 0 " Finish here: return 1 4 0.000001 endif " Check if user tried to disable using b:loaded_delimitMate 4 0.000004 if exists("b:loaded_delimitMate") return 1 4 0.000001 endif 4 0.000001 endif " Initialize settings: 4 0.003068 0.000039 if ! s:init() " Something went wrong. return 4 0.000001 endif 4 0.000006 if enable || swap || !get(g:, 'delimitMate_offByDefault', 0) " Now, add magic: 4 0.002703 0.000010 call s:Map() 4 0.000001 if a:0 echo "delimitMate is enabled." 4 0.000001 endif 4 0.000001 endif FUNCTION 180_nvim_output_handler() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:232 Called 3 times Total time: 0.000013 Self time: 0.000013 count total (s) self (s) 3 0.000005 if a:event == 'stdout' || a:event == 'stderr' 3 0.000006 let self.buf .= join(a:data) 3 0.000001 endif FUNCTION 106_echo() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:419 Called 2 times Total time: 0.000043 Self time: 0.000043 count total (s) self (s) 2 0.000001 let l:msg = [] 2 0.000002 if type(a:msg) != type([]) 2 0.000003 let l:msg = split(a:msg, "\n") else let l:msg = a:msg 2 0.000000 endif " Tabs display as ^I or <09>, so manually expand them. 2 0.000007 let l:msg = map(l:msg, 'substitute(v:val, "\t", " ", "")') 2 0.000004 exe 'echohl ' . a:hi 4 0.000002 for line in l:msg 2 0.000016 echom "vim-go: " . line 4 0.000001 endfor 2 0.000001 echohl None FUNCTION 181_HandleOnlyWindow() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:3512 Called 2 times Total time: 0.000083 Self time: 0.000074 count total (s) self (s) 2 0.000079 0.000070 let tagbarwinnr = bufwinnr(s:TagbarBufName()) 2 0.000002 if tagbarwinnr == -1 2 0.000001 return endif let vim_quitting = s:vim_quitting let s:vim_quitting = 0 let file_open = s:HasOpenFileWindows() if vim_quitting && file_open == 2 && !g:tagbar_autoclose_netrw call tagbar#debug#log('Closing Tagbar due to QuitPre - netrw only remaining window') call s:CloseWindow() return endif if vim_quitting && file_open != 1 call tagbar#debug#log('Closing Tagbar window due to QuitPre event') if winnr('$') >= 1 call s:goto_win(tagbarwinnr, 1) endif " Before quitting Vim, delete the tagbar buffer so that the '0 mark is " correctly set to the previous buffer. if tabpagenr('$') == 1 noautocmd keepalt bdelete endif try try quit catch /.*/ " This can be E173 and maybe others call s:OpenWindow('') echoerr v:exception endtry catch /.*/ echohl ErrorMsg echo v:exception echohl None endtry endif FUNCTION 130_IndentLinesDisable() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:214 Called 2 times Total time: 0.000108 Self time: 0.000097 count total (s) self (s) 2 0.000002 if g:indentLine_newVersion 2 0.000004 if exists("w:indentLine_indentLineId") && ! empty(w:indentLine_indentLineId) 42 0.000012 for id in w:indentLine_indentLineId 40 0.000007 try 40 0.000026 call matchdelete(id) catch /^Vim\%((\a\+)\)\=:E80[23]/ 40 0.000008 endtry 42 0.000008 endfor 2 0.000002 let w:indentLine_indentLineId = [] 2 0.000000 endif 2 0.000019 0.000008 call s:ResetConcealOption() 2 0.000001 return endif let b:indentLine_enabled = 0 try syntax clear IndentLine syntax clear IndentLineSpace catch /^Vim\%((\a\+)\)\=:E28/ " catch error E28 endtry FUNCTION airline#extensions#tabline#add_label() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim:30 Called 6 times Total time: 0.000144 Self time: 0.000072 count total (s) self (s) 6 0.000015 if get(g:, 'airline#extensions#tabline#show_tab_type', 1) 6 0.000121 0.000050 call a:dict.add_section_spaced('airline_tablabel'. (a:right ? '_right' : ''), get(g:, 'airline#extensions#tabline#'.a:type.'_label', a:type)) 6 0.000003 endif FUNCTION coc#util#do_autocmd() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:341 Called 6 times Total time: 0.000035 Self time: 0.000035 count total (s) self (s) 6 0.000027 if exists('#User#'.a:name) exe 'doautocmd User '.a:name 6 0.000001 endif FUNCTION tagbar#state#get_current_file() Defined: ~/.vim/plugged/tagbar/autoload/tagbar/state.vim:1 Called 56 times Total time: 0.001539 Self time: 0.000611 count total (s) self (s) 56 0.001513 0.000586 return s:get().getCurrent(a:force_current) FUNCTION 198_get_separator_change_with_end() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim:76 Called 12 times Total time: 0.001455 Self time: 0.000204 count total (s) self (s) 12 0.000012 let sep_change = 0 12 0.000017 if !empty(a:new_end_group) " Separator between title and the end 6 0.001302 0.000051 let sep_change += airline#builder#should_change_group(a:new_group, a:new_end_group) ? a:sep_size : a:alt_sep_size 12 0.000004 endif 12 0.000013 if !empty(a:old_group) " Separator between the title and the one adjacent let sep_change += airline#builder#should_change_group(a:new_group, a:old_group) ? a:sep_size : a:alt_sep_size if !empty(a:old_end_group) " Remove mis-predicted separator let sep_change -= airline#builder#should_change_group(a:old_group, a:old_end_group) ? a:sep_size : a:alt_sep_size endif 12 0.000003 endif 12 0.000009 return sep_change FUNCTION 104_register() Defined: ~/.vim/plugged/vim-go/plugin/go.vim:252 Called 2 times Total time: 0.000004 Self time: 0.000004 count total (s) self (s) 2 0.000003 if !(&modifiable && expand('') ==# 'go') 2 0.000001 return endif " Resolve any symlinks in so that the filename will match what Vim " will ultimately and usually produce. call go#lsp#DidOpen(resolve(expand(':p'))) FUNCTION 43_on_window_changed() Defined: ~/.vim/plugged/vim-airline/plugin/airline.vim:51 Called 6 times Total time: 0.038928 Self time: 0.000181 count total (s) self (s) " don't trigger for Vim popup windows 6 0.000005 if &buftype is# 'popup' return 6 0.000001 endif 6 0.000009 if pumvisible() && (!&previewwindow || g:airline_exclude_preview) " do not trigger for previewwindows return 6 0.000001 endif 6 0.000008 let s:active_winnr = winnr() " Handle each window only once, since we might come here several times for " different autocommands. 6 0.000024 let l:key = [bufnr('%'), s:active_winnr, winnr('$'), tabpagenr(), &ft] 6 0.000019 if get(g:, 'airline_last_window_changed', []) == l:key && &stl is# '%!airline#statusline('.s:active_winnr.')' && &ft !~? 'gitcommit' " fugitive is special, it changes names and filetypes several times, " make sure the caching does not get into its way return 6 0.000001 endif 6 0.000008 let g:airline_last_window_changed = l:key 6 0.000031 0.000023 call s:init() 6 0.038803 0.000065 call airline#update_statusline() FUNCTION 192_debugasync() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1315 Called 21 times Total time: 0.000763 Self time: 0.000471 count total (s) self (s) 21 0.000161 let s:logtimer = 0 21 0.000497 0.000205 if !go#util#HasDebug('lsp') 21 0.000051 let s:log = [] 21 0.000015 return endif try let l:winid = win_getid() let l:name = '__GOLSP_LOG__' let l:log_winid = bufwinid(l:name) if l:log_winid == -1 silent keepalt botright 10new silent file `='__GOLSP_LOG__'` setlocal buftype=nofile bufhidden=wipe nomodified nobuflisted noswapfile nowrap nonumber nocursorline setlocal filetype=golsplog else call win_gotoid(l:log_winid) endif try setlocal modifiable for [l:event, l:data] in s:log call remove(s:log, 0) if getline(1) == '' call setline('$', printf('===== %s =====', l:event)) else call append('$', printf('===== %s =====', l:event)) endif call append('$', split(l:data, "\r\n")) endfor normal! G setlocal nomodifiable finally call win_gotoid(l:winid) endtry catch call go#util#EchoError(v:exception) finally " retry in when there's an exception. This can happen when trying to do " completion, because the window can not be changed while completion is in " progress. if len(s:log) != 0 let s:logtimer = timer_start(10, function('s:debugasync', [])) endif endtry FUNCTION FugitiveGitDir() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:18 Called 124 times Total time: 0.004490 Self time: 0.004119 count total (s) self (s) 124 0.000097 if v:version < 704 return '' 124 0.000393 elseif !a:0 || type(a:1) == type(0) && a:1 < 0 || a:1 is# get(v:, 'true', -1) 62 0.000082 if exists('g:fugitive_event') return g:fugitive_event 62 0.000019 endif 62 0.000117 let dir = get(b:, 'git_dir', '') 62 0.000191 if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|terminal\|prompt\)$') return FugitiveExtractGitDir(getcwd()) 62 0.000546 elseif (!exists('b:git_dir') || b:git_dir =~# s:bad_git_dir) && &buftype =~# '^\%(nowrite\)\=$' 2 0.000325 0.000013 let b:git_dir = FugitiveExtractGitDir(bufnr('')) 2 0.000001 return b:git_dir 60 0.000015 endif 60 0.000548 return dir =~# s:bad_git_dir ? '' : dir 62 0.000105 elseif type(a:1) == type(0) && a:1 isnot# 0 if a:1 == bufnr('') && (!exists('b:git_dir') || b:git_dir =~# s:bad_git_dir) && &buftype =~# '^\%(nowrite\)\=$' let b:git_dir = FugitiveExtractGitDir(a:1) endif let dir = getbufvar(a:1, 'git_dir') return dir =~# s:bad_git_dir ? '' : dir 62 0.000087 elseif type(a:1) == type('') 62 0.000545 0.000486 return substitute(s:Slash(a:1), '/$', '', '') elseif type(a:1) == type({}) return get(a:1, 'fugitive_dir', get(a:1, 'git_dir', '')) else return '' endif FUNCTION go#auto#update_autocmd() Defined: ~/.vim/plugged/vim-go/autoload/go/auto.vim:86 Called 14 times Total time: 0.000379 Self time: 0.000307 count total (s) self (s) 14 0.000053 let has_timer = get(b:, 'has_timer') 14 0.000240 0.000169 let should_enable = go#config#AutoTypeInfo() || go#config#AutoSameids() 14 0.000048 if (!has_timer && !should_enable) || (has_timer && should_enable) 14 0.000010 return endif if has_timer augroup vim-go-buffer-auto autocmd! * augroup END let b:has_timer = 0 call s:timer_stop() return endif augroup vim-go-buffer-auto autocmd! * autocmd CursorMoved call s:timer_restart() autocmd BufLeave call s:timer_stop() augroup END let b:has_timer = 1 call s:timer_start() FUNCTION 179_can_diffoff() Defined: ~/.vim/plugged/vim-fugitive/autoload/fugitive.vim:6444 Called 2 times Total time: 0.000007 Self time: 0.000007 count total (s) self (s) 2 0.000007 return getwinvar(bufwinnr(a:buf), '&diff') && !empty(getwinvar(bufwinnr(a:buf), 'fugitive_diff_restore')) FUNCTION 159_init_buffer() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:51 Called 2 times Total time: 0.000021 Self time: 0.000021 count total (s) self (s) 2 0.000002 let b:buffer_vcs_config = {} 6 0.000005 for vcs in keys(s:vcs_config) 4 0.000009 let b:buffer_vcs_config[vcs] = { 'branch': '', 'untracked': '', 'dirty': 0, } 6 0.000001 endfor 2 0.000001 unlet! b:airline_head FUNCTION airline#extensions#tabline#get() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim:169 Called 34 times Total time: 0.045955 Self time: 0.002625 count total (s) self (s) 34 0.000388 let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) 34 0.000095 let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) 34 0.000118 let curtabcnt = tabpagenr('$') 34 0.000104 if curtabcnt != s:current_tabcnt let s:current_tabcnt = curtabcnt call airline#extensions#tabline#tabs#invalidate() call airline#extensions#tabline#buffers#invalidate() call airline#extensions#tabline#ctrlspace#invalidate() call airline#extensions#tabline#tabws#invalidate() 34 0.000022 endif 34 0.000175 if !exists('#airline#BufAdd#*') autocmd airline BufAdd * call update_tabline(0) 34 0.000014 endif 34 0.000119 if !exists('#airline#SessionLoadPost') autocmd airline SessionLoadPost * call update_tabline(1) 34 0.000013 endif 34 0.000033 if s:ctrlspace return airline#extensions#tabline#ctrlspace#get() 34 0.000038 elseif s:tabws return airline#extensions#tabline#tabws#get() 34 0.000091 elseif show_buffers && curtabcnt == 1 || !show_tabs 34 0.044143 0.000812 return airline#extensions#tabline#buffers#get() else return airline#extensions#tabline#tabs#get() endif FUNCTION gitgutter#utility#extension() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:87 Called 6 times Total time: 0.000598 Self time: 0.000042 count total (s) self (s) 6 0.000596 0.000041 return fnamemodify(s:abs_path(a:bufnr, 0), ':e') FUNCTION airline#extensions#term#inactive_apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/term.vim:26 Called 8 times Total time: 0.000090 Self time: 0.000090 count total (s) self (s) 8 0.000015 if getbufvar(a:2.bufnr, '&buftype') ==? 'terminal' call a:1.add_section_spaced('airline_a', s:section_a) call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr)) call a:1.add_section('airline_term', s:spc.s:termname(a:2.bufnr)) call a:1.split() call a:1.add_section('airline_y', '') call a:1.add_section_spaced('airline_z', s:section_z) return 1 8 0.000002 endif FUNCTION 181_do_delayed_update() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:3620 Called 16 times Total time: 0.001230 Self time: 0.000634 count total (s) self (s) 16 0.000775 0.000180 let curfile = tagbar#state#get_current_file(0) 16 0.000026 if empty(curfile) let curfname = '' 16 0.000010 else 16 0.000056 let curfname = curfile.fpath 16 0.000009 endif 16 0.000157 while !empty(s:delayed_update_files) let fname = remove(s:delayed_update_files, 0) let no_display = curfname !=# fname call s:AutoUpdate(fname, 1, no_display) 16 0.000017 endwhile FUNCTION 115_Highlight_Matching_Pair() Defined: /opt/homebrew/Cellar/neovim/0.9.0/share/nvim/runtime/plugin/matchparen.vim:39 Called 26 times Total time: 0.001686 Self time: 0.001556 count total (s) self (s) " Remove any previous match. 26 0.000225 0.000126 call s:Remove_Matches() " Avoid that we remove the popup menu. " Return when there are no colors (looks like the cursor jumps). 26 0.000052 if pumvisible() || (&t_Co < 8 && !has("gui_running")) return 26 0.000005 endif " Get the character under the cursor and check if it's in 'matchpairs'. 26 0.000027 let c_lnum = line('.') 26 0.000025 let c_col = col('.') 26 0.000014 let before = 0 26 0.000036 let text = getline(c_lnum) 26 0.000252 let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)') 26 0.000024 if empty(matches) let [c_before, c] = ['', ''] 26 0.000007 else 26 0.000048 let [c_before, c] = matches[1:2] 26 0.000006 endif 26 0.000186 let plist = split(&matchpairs, '.\zs[:,]') 26 0.000038 let i = index(plist, c) 26 0.000014 if i < 0 " not found, in Insert mode try character before the cursor 25 0.000046 if c_col > 1 && (mode() == 'i' || mode() == 'R') let before = strlen(c_before) let c = c_before let i = index(plist, c) 25 0.000006 endif 25 0.000010 if i < 0 " not found, nothing to do 25 0.000010 return endif 1 0.000000 endif " Figure out the arguments for searchpairpos(). 1 0.000001 if i % 2 == 0 let s_flags = 'nW' let c2 = plist[i + 1] 1 0.000000 else 1 0.000001 let s_flags = 'nbW' 1 0.000001 let c2 = c 1 0.000001 let c = plist[i - 1] 1 0.000000 endif 1 0.000001 if c == '[' let c = '\[' let c2 = '\]' 1 0.000000 endif " Find the match. When it was just before the cursor move it there for a " moment. 1 0.000001 if before > 0 let has_getcurpos = exists("*getcurpos") if has_getcurpos " getcurpos() is more efficient but doesn't exist before 7.4.313. let save_cursor = getcurpos() else let save_cursor = winsaveview() endif call cursor(c_lnum, c_col - before) 1 0.000000 endif 1 0.000005 if !has("syntax") || !exists("g:syntax_on") let s_skip = "0" 1 0.000000 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, and " match "symbol" for lispBarSymbol. 1 0.000004 let s_skip = 'synstack(".", col("."))' . '->indexof({_, id -> synIDattr(id, "name") =~? ' . '"string\\|character\\|singlequote\\|escape\\|symbol\\|comment"}) >= 0' " 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'. 1 0.000001 try 1 0.000062 0.000045 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 1 0.000000 endtry 1 0.000000 endif " Limit the search to lines visible in the window. 1 0.000002 let stoplinebottom = line('w$') 1 0.000001 let stoplinetop = line('w0') 1 0.000001 if i % 2 == 0 let stopline = stoplinebottom 1 0.000000 else 1 0.000002 let stopline = stoplinetop 1 0.000000 endif " Limit the search time to 300 msec to avoid a hang on very long lines. " This fails when a timeout is not supported. 1 0.000002 if mode() == 'i' || mode() == 'R' let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout 1 0.000000 else 1 0.000004 let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout 1 0.000000 endif 1 0.000000 try 1 0.000304 0.000290 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) 1 0.000000 endtry 1 0.000001 if before > 0 if has_getcurpos call setpos('.', save_cursor) else call winrestview(save_cursor) endif 1 0.000000 endif " If a match is found setup match highlighting. 1 0.000002 if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom 1 0.000002 if exists('*matchaddpos') 1 0.000013 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\)/' 1 0.000000 endif 1 0.000001 let w:paren_hl_on = 1 1 0.000000 endif FUNCTION airline#builder#get_prev_group() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:37 Called 238 times Total time: 0.001418 Self time: 0.001418 count total (s) self (s) 238 0.000209 let x = a:i - 1 284 0.000174 while x >= 0 238 0.000270 let group = a:sections[x][0] 238 0.000243 if group != '' && group != '|' 192 0.000099 return group 46 0.000012 endif 46 0.000026 let x = x - 1 92 0.000037 endwhile 46 0.000021 return '' FUNCTION spelunker#toggle#is_enabled() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/toggle.vim:65 Called 18 times Total time: 0.000838 Self time: 0.000729 count total (s) self (s) 18 0.000089 if !exists('b:enable_spelunker_vim') 18 0.000704 0.000596 if spelunker#toggle#is_enabled_global() == 1 18 0.000016 return 1 endif return 0 else " b:enable_spelunker_vimがあればbuffer優先 if spelunker#toggle#is_enabled_buffer() == 1 return 1 else return 0 endif if spelunker#toggle#is_enabled_global() == 0 return 0 endif return 1 endif FUNCTION airline#extensions#whitespace#check() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/whitespace.vim:64 Called 14 times Total time: 0.013131 Self time: 0.004388 count total (s) self (s) 14 0.000028 let max_lines = get(g:, 'airline#extensions#whitespace#max_lines', 20000) 14 0.000063 if &readonly || !&modifiable || !s:enabled || line('$') > max_lines || get(b:, 'airline_whitespace_disabled', 0) 2 0.000001 return '' 12 0.000003 endif 12 0.000071 let skip_check_ft = extend(s:skip_check_ft, get(g:, 'airline#extensions#whitespace#skip_indent_check_ft', {}), 'force') 12 0.000018 if !exists('b:airline_whitespace_check') 4 0.000004 let b:airline_whitespace_check = '' 4 0.000011 let checks = get(b:, 'airline_whitespace_checks', get(g:, 'airline#extensions#whitespace#checks', s:default_checks)) 4 0.000002 let trailing = 0 4 0.000002 let check = 'trailing' 4 0.000017 if index(checks, check) > -1 && index(get(skip_check_ft, &ft, []), check) < 0 4 0.000001 try 4 0.000010 let regexp = get(b:, 'airline_whitespace_trailing_regexp', get(g:, 'airline#extensions#whitespace#trailing_regexp', '\s$')) 4 0.003391 let trailing = search(regexp, 'nw') catch call airline#util#warning(printf('Whitespace: error occurred evaluating "%s"', regexp)) echomsg v:exception return '' 4 0.000001 endtry 4 0.000001 endif 4 0.000002 let mixed = 0 4 0.000002 let check = 'indent' 4 0.000012 if index(checks, check) > -1 && index(get(skip_check_ft, &ft, []), check) < 0 4 0.006938 0.000022 let mixed = s:check_mixed_indent() 4 0.000005 endif 4 0.000004 let mixed_file = '' 4 0.000003 let check = 'mixed-indent-file' 4 0.000021 if index(checks, check) > -1 && index(get(skip_check_ft, &ft, []), check) < 0 4 0.000695 0.000052 let mixed_file = s:check_mixed_indent_file() 4 0.000001 endif 4 0.000002 let long = 0 4 0.000005 if index(checks, 'long') > -1 && &tw > 0 let long = search('\%>'.&tw.'v.\+', 'nw') 4 0.000001 endif 4 0.000003 let conflicts = 0 4 0.000004 if index(checks, 'conflicts') > -1 4 0.000974 0.000017 let conflicts = s:conflict_marker() 4 0.000001 endif 4 0.000009 if trailing != 0 || mixed != 0 || long != 0 || !empty(mixed_file) || conflicts != 0 let b:airline_whitespace_check = s:symbol if strlen(s:symbol) > 0 let space = (g:airline_symbols.space) else let space = '' endif if s:show_message if trailing != 0 let trailing_fmt = get(g:, 'airline#extensions#whitespace#trailing_format', '[%s]trailing') let b:airline_whitespace_check .= space.printf(trailing_fmt, trailing) endif if mixed != 0 let mixed_indent_fmt = get(g:, 'airline#extensions#whitespace#mixed_indent_format', '[%s]mixed-indent') let b:airline_whitespace_check .= space.printf(mixed_indent_fmt, mixed) endif if long != 0 let long_fmt = get(g:, 'airline#extensions#whitespace#long_format', '[%s]long') let b:airline_whitespace_check .= space.printf(long_fmt, long) endif if !empty(mixed_file) let mixed_indent_file_fmt = get(g:, 'airline#extensions#whitespace#mixed_indent_file_format', '[%s]mix-indent-file') let b:airline_whitespace_check .= space.printf(mixed_indent_file_fmt, mixed_file) endif if conflicts != 0 let conflicts_fmt = get(g:, 'airline#extensions#whitespace#conflicts_format', '[%s]conflicts') let b:airline_whitespace_check .= space.printf(conflicts_fmt, conflicts) endif endif 4 0.000001 endif 12 0.000002 endif 12 0.000296 0.000069 return airline#util#shorten(b:airline_whitespace_check, 120, 9) FUNCTION 194_textDocumentPositionParams() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp/message.vim:429 Called 9 times Total time: 0.001096 Self time: 0.000157 count total (s) self (s) 9 0.001091 0.000153 return { 'textDocument': { 'uri': go#path#ToURI(a:fname) }, 'position': s:position(a:line, a:col), } FUNCTION gitgutter#hunk#hunks() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/hunk.vim:10 Called 6 times Total time: 0.000066 Self time: 0.000030 count total (s) self (s) 6 0.000065 0.000029 return gitgutter#utility#getbufvar(a:bufnr, 'hunks', []) FUNCTION spelunker#check() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker.vim:25 Called 2 times Total time: 0.002315 Self time: 0.000035 count total (s) self (s) 2 0.000038 0.000008 if s:is_runnable() == 0 call s:clear_matches() return 0 2 0.000000 endif 2 0.000003 if g:spelunker_check_type != g:spelunker_check_type_buf_lead_write return 0 2 0.000000 endif 2 0.002268 0.000019 call spelunker#words#check() 2 0.000001 return 1 FUNCTION 191_get() Defined: ~/.vim/plugged/tagbar/autoload/tagbar/state.vim:13 Called 70 times Total time: 0.000461 Self time: 0.000461 count total (s) self (s) 70 0.000187 if !exists('t:tagbar_state') let t:tagbar_state = s:State.New() 70 0.000028 endif 70 0.000072 return t:tagbar_state FUNCTION 87_HandleWinScrolled() Defined: ~/.vim/plugged/coc.nvim/plugin/coc.vim:308 Called 2 times Total time: 0.000079 Self time: 0.000011 count total (s) self (s) 2 0.000002 if getwinvar(a:winid, 'float', 0) call coc#float#nvim_scrollbar(a:winid) 2 0.000000 endif 2 0.000074 0.000006 call s:Autocmd('WinScrolled', a:winid) FUNCTION go#config#BuildTags() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:13 Called 276 times Total time: 0.000465 Self time: 0.000465 count total (s) self (s) 276 0.000367 return get(g:, 'go_build_tags', '') FUNCTION 43_init() Defined: ~/.vim/plugged/vim-airline/plugin/airline.vim:15 Called 6 times Total time: 0.000008 Self time: 0.000008 count total (s) self (s) 6 0.000004 if s:airline_initialized 6 0.000002 return endif let s:airline_initialized = 1 call airline#extensions#load() call airline#init#sections() let s:theme_in_vimrc = exists('g:airline_theme') if s:theme_in_vimrc try if g:airline_theme is# 'random' let g:airline_theme=s:random_theme() endif let palette = g:airline#themes#{g:airline_theme}#palette catch call airline#util#warning(printf('Could not resolve airline theme "%s". Themes have been migrated to github.com/vim-airline/vim-airline-themes.', g:airline_theme)) let g:airline_theme = 'dark' endtry try silent call airline#switch_theme(g:airline_theme) catch call airline#util#warning(printf('Could not find airline theme "%s".', g:airline_theme)) let g:airline_theme = 'dark' silent call airline#switch_theme(g:airline_theme) endtry else let g:airline_theme = 'dark' silent call s:on_colorscheme_changed() endif call airline#util#doautocmd('AirlineAfterInit') FUNCTION go#config#DiagnosticsLevel() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:586 Called 9 times Total time: 0.000053 Self time: 0.000053 count total (s) self (s) 9 0.000005 let l:default = 0 9 0.000026 if has_key(g:, 'go_diagnostics_enabled') && g:go_diagnostics_enabled let l:default = 2 9 0.000002 endif 9 0.000011 return get(g:, 'go_diagnostics_level', l:default) FUNCTION 193_dequeueneocbs() Defined: ~/.vim/plugged/vim-go/autoload/go/job.vim:549 Called 14 times Total time: 0.013091 Self time: 0.000615 count total (s) self (s) 61 0.000132 for l:Fn in s:neocbs 47 0.000027 try 47 0.000101 call remove(s:neocbs, 0) 47 0.012705 0.000229 call call(l:Fn, []) 47 0.000022 finally 47 0.000022 endtry 61 0.000021 endfor FUNCTION airline#update_statusline_inactive() Defined: ~/.vim/plugged/vim-airline/autoload/airline.vim:179 Called 14 times Total time: 0.019848 Self time: 0.000552 count total (s) self (s) 14 0.000414 0.000068 if airline#util#stl_disabled(winnr()) return 14 0.000004 endif 22 0.000019 for nr in a:range 8 0.000348 0.000052 if airline#util#stl_disabled(nr) continue 8 0.000003 endif 8 0.000019 call setwinvar(nr, 'airline_active', 0) 8 0.000030 let context = { 'winnr': nr, 'active': 0, 'bufnr': winbufnr(nr) } 8 0.000013 if get(g:, 'airline_inactive_alt_sep', 0) call extend(context, { 'left_sep': g:airline_left_alt_sep, 'right_sep': g:airline_right_alt_sep }, 'keep') 8 0.000002 endif 8 0.000004 try 8 0.018750 0.000095 call s:invoke_funcrefs(context, g:airline_inactive_funcrefs) catch /^Vim\%((\a\+)\)\=:E48:/ " Catch: Sandbox mode " no-op 8 0.000003 endtry 22 0.000012 endfor FUNCTION 155_group_not_done() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:32 Called 658 times Total time: 0.003017 Self time: 0.003017 count total (s) self (s) 658 0.001229 if index(a:list, a:name) == -1 640 0.001063 call add(a:list, a:name) 640 0.000360 return 1 18 0.000005 else 18 0.000011 if &vbs echomsg printf("airline: group: %s already done, skipping", a:name) 18 0.000005 endif 18 0.000007 return 0 endif FUNCTION 159_update_git_branch() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:87 Called 62 times Total time: 0.014445 Self time: 0.001535 count total (s) self (s) 62 0.000852 0.000521 call airline#util#ignore_next_focusgain() 62 0.000516 0.000279 if airline#util#has_fugitive() 62 0.012787 0.000444 call s:config_fugitive_branch() elseif airline#util#has_gina() call s:config_gina_branch() else let s:vcs_config['git'].branch = '' return 62 0.000016 endif FUNCTION airline#extensions#tabline#group_of_bufnr() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim:255 Called 18 times Total time: 0.000253 Self time: 0.000253 count total (s) self (s) 18 0.000031 let cur = bufnr('%') 18 0.000014 if cur == a:bufnr 12 0.000033 if g:airline_detect_modified && getbufvar(a:bufnr, '&modified') 6 0.000009 let group = 'airline_tabmod' 6 0.000001 else 6 0.000004 let group = 'airline_tabsel' 12 0.000004 endif 6 0.000001 else 6 0.000010 if g:airline_detect_modified && getbufvar(a:bufnr, '&modified') let group = 'airline_tabmod_unsel' 6 0.000006 elseif index(a:tab_bufs, a:bufnr) > -1 6 0.000003 let group = 'airline_tab' else let group = 'airline_tabhid' 6 0.000001 endif 18 0.000005 endif 18 0.000010 return group FUNCTION airline#async#vcs_untracked() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:57 Called 2 times Total time: 0.000416 Self time: 0.000025 count total (s) self (s) 2 0.000001 if g:airline#init#vim_async " Vim 8 with async support noa call airline#async#vim_vcs_untracked(a:config, a:file) 2 0.000000 else " nvim async or vim without job-feature 2 0.000407 0.000016 noa call airline#async#nvim_vcs_untracked(a:config, a:file, a:vcs) 2 0.000000 endif FUNCTION go#statusline#Update() Defined: ~/.vim/plugged/vim-go/autoload/go/statusline.vim:74 Called 4 times Total time: 0.000161 Self time: 0.000062 count total (s) self (s) 4 0.000004 let a:status.created_at = reltime() 4 0.000010 let s:statuses[a:status_dir] = a:status " force to update the statusline, otherwise the user needs to move the " cursor 4 0.000026 0.000021 exe 'let &ro = &ro' " before we stop the timer, check if we have any previous jobs to be cleaned " up. Otherwise every job will reset the timer when this function is called " and thus old jobs will never be cleaned 4 0.000105 0.000011 call s:clear() " also reset the timer, so the user has time to see it in the statusline. " Setting the timer_id to 0 will cause a new timer to be created the next " time the go#statusline#Show() is called. 4 0.000005 call timer_stop(s:timer_id) 4 0.000002 let s:timer_id = 0 FUNCTION spelunker#get_buffer#filter_backquoted_words() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/get_buffer.vim:94 Called 2 times Total time: 0.000004 Self time: 0.000004 count total (s) self (s) " for shell command " ex) `ls -la` 2 0.000001 if g:spelunker_disable_backquoted_checking == 0 2 0.000001 return a:text endif " [バッククオート内の文字列削除] " substituteを2回実行する " 関数のatomは後方参照出来ないので注意 " 1回目: 改行を含む`以外の文字のマッチ " 2回目: マッチした文字列の改行以外を全部消す " " [考慮点] " 1: 改行を考慮 " ex) ``` " `aaa " bbb` " ``` " 2: 末尾のバッククオートを考慮 " ex) ``` " aaaa` " bbb`ccc " ``` return substitute(a:text, '`\([^`]*[' . a:newline_character . ']*\)\+`', '\=substitute(submatch(0), "[^' . a:newline_character . ']", "", "g")', 'g') FUNCTION 220_on_stderr_nvim() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/async.vim:66 Called 6 times Total time: 0.000028 Self time: 0.000028 count total (s) self (s) 6 0.000013 if a:data != [''] " With Neovim there is always [''] reported on stderr. call self.handler.err(self.buffer) 6 0.000002 endif FUNCTION 79_DetectEditorConfig() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:263 Called 2 times Total time: 0.000427 Self time: 0.000427 count total (s) self (s) 2 0.000002 if empty(a:absolute_path) return [{}, ''] 2 0.000000 endif 2 0.000001 let root = '' 2 0.000002 let tail = a:0 ? a:1 : '.editorconfig' 2 0.000003 let dir = fnamemodify(a:absolute_path, ':h') 2 0.000001 let previous_dir = '' 2 0.000001 let sections = [] 2 0.000003 let overrides = get(g:, 'sleuth_editorconfig_overrides', {}) 14 0.000044 while dir !=# previous_dir && dir !~# '^//\%([^/]\+/\=\)\=$' 12 0.000032 let head = substitute(dir, '/\=$', '/', '') 12 0.000032 let read_from = get(overrides, head . tail, get(overrides, head, head . tail)) 12 0.000006 if read_from is# '' break 12 0.000023 elseif type(read_from) == type('') && read_from !=# head . tail && read_from !~# '^/\|^\a\+:' let read_from = simplify(head . read_from) 12 0.000002 endif 12 0.000089 let ftime = type(read_from) == type('') ? getftime(read_from) : -1 12 0.000027 let [cachetime; econfig] = get(s:editorconfig_cache, read_from, [-1, {}, []]) 12 0.000007 if ftime != cachetime let econfig = s:ReadEditorConfig(read_from) let s:editorconfig_cache[read_from] = [ftime] + econfig lockvar! s:editorconfig_cache[read_from] unlockvar s:editorconfig_cache[read_from] 12 0.000002 endif 12 0.000013 call extend(sections, econfig[1], 'keep') 12 0.000015 if get(econfig[0], 'root', [''])[0] ==? 'true' let root = head break 12 0.000003 endif 12 0.000007 let previous_dir = dir 12 0.000012 let dir = fnamemodify(dir, ':h') 14 0.000004 endwhile 2 0.000001 let config = {} 2 0.000002 for [pattern, pairs] in sections if a:absolute_path =~# pattern call extend(config, pairs) endif 2 0.000001 endfor 2 0.000002 return [config, root] FUNCTION 180_untracked_output() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:12 Called 1 time Total time: 0.000008 Self time: 0.000008 count total (s) self (s) 1 0.000003 if a:buf =~? ('^'. a:dict.cfg['untracked_mark']) let a:dict.cfg.untracked[a:dict.file] = get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists) 1 0.000000 else 1 0.000002 let a:dict.cfg.untracked[a:dict.file] = '' 1 0.000000 endif FUNCTION 193_queueneocb() Defined: ~/.vim/plugged/vim-go/autoload/go/job.vim:559 Called 47 times Total time: 0.000340 Self time: 0.000340 count total (s) self (s) 47 0.000073 let l:shouldStart = len(s:neocbs) == 0 47 0.000063 let s:neocbs = add(s:neocbs, a:fn) 47 0.000025 if l:shouldStart 14 0.000070 call timer_start(10, function('s:dequeueneocbs', [])) 47 0.000014 endif FUNCTION airline#builder#get_next_group() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:49 Called 6 times Total time: 0.000079 Self time: 0.000079 count total (s) self (s) 6 0.000007 let x = a:i + 1 6 0.000007 let l = len(a:sections) 12 0.000010 while x < l 12 0.000018 let group = a:sections[x][0] 12 0.000015 if group != '' && group != '|' 6 0.000004 return group 6 0.000002 endif 6 0.000004 let x = x + 1 6 0.000002 endwhile return '' FUNCTION 220_on_exit_nvim() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/async.vim:72 Called 6 times Total time: 0.001193 Self time: 0.000057 count total (s) self (s) 6 0.000009 if !a:exit_code 6 0.001179 0.000043 call self.handler.out(self.buffer, join(self.stdoutbuffer, "\n")) 6 0.000001 endif FUNCTION 92_CeilingDirectories() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:388 Called 2 times Total time: 0.000050 Self time: 0.000049 count total (s) self (s) 2 0.000003 if !exists('s:ceiling_directories') let s:ceiling_directories = [] let resolve = 1 for dir in split($GIT_CEILING_DIRECTORIES, has('win32') ? ';' : ':', 1) if empty(dir) let resolve = 0 elseif resolve call add(s:ceiling_directories, s:Slash(resolve(dir))) else call add(s:ceiling_directories, s:Slash(dir)) endif endfor 2 0.000000 endif 2 0.000032 0.000030 return s:ceiling_directories + get(g:, 'ceiling_directories', [s:Slash(fnamemodify(expand('~'), ':h'))]) FUNCTION 96_on_bufenter() Defined: ~/.vim/plugged/vim-gitgutter/plugin/gitgutter.vim:236 Called 2 times Total time: 0.001011 Self time: 0.000049 count total (s) self (s) 2 0.000755 0.000007 call gitgutter#setup_maps() " To keep vim's start-up fast, do not process the buffer when vim is starting. " Instead process it a short time later. Normally we would rely on our " CursorHold autocommand to handle this but it turns out CursorHold is not " guaranteed to fire if the user has not typed anything yet; so set up a " timer instead. The disadvantage is that if CursorHold does fire, the " plugin will do a round of unnecessary work; but since there will not have " been any changes to the buffer since the first round, the second round " will be cheap. 2 0.000003 if has('vim_starting') && !$VIM_GITGUTTER_TEST if exists('*timer_start') && has('lambda') call s:next_tick("call gitgutter#process_buffer(+".bufnr('').", 0)") else call gitgutter#process_buffer(bufnr(''), 0) endif return 2 0.000000 endif 2 0.000003 if exists('t:gitgutter_didtabenter') && t:gitgutter_didtabenter let t:gitgutter_didtabenter = 0 call gitgutter#all(!g:gitgutter_terminal_reports_focus) 2 0.000000 else 2 0.000233 0.000019 call gitgutter#process_buffer(bufnr(''), !g:gitgutter_terminal_reports_focus) 2 0.000000 endif FUNCTION gitgutter#utility#setbufvar() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:9 Called 22 times Total time: 0.000180 Self time: 0.000180 count total (s) self (s) 22 0.000019 let buffer = +a:buffer " Default value for getbufvar() was introduced in Vim 7.3.831. 22 0.000032 let ggvars = getbufvar(buffer, 'gitgutter') 22 0.000028 if type(ggvars) == type('') 2 0.000001 unlet ggvars 2 0.000001 let ggvars = {} 2 0.000003 call setbufvar(buffer, 'gitgutter', ggvars) 22 0.000005 endif 22 0.000030 let ggvars[a:varname] = a:val FUNCTION 106_exec() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:266 Called 276 times Total time: 15.368784 Self time: 0.007107 count total (s) self (s) 276 0.000222 let l:bin = a:cmd[0] 276 0.018358 0.001625 let l:cmd = go#util#Shelljoin([l:bin] + a:cmd[1:]) 276 0.002785 0.001104 if go#util#HasDebug('shell-commands') call go#util#EchoInfo('shell command: ' . l:cmd) 276 0.000049 endif 276 15.344776 0.001838 let l:out = call('s:system', [l:cmd] + a:000) 276 0.002184 0.001860 return [l:out, go#util#ShellError()] FUNCTION airline#util#ignore_next_focusgain() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:206 Called 62 times Total time: 0.000330 Self time: 0.000330 count total (s) self (s) 62 0.000200 if has('win32') " Setup an ignore for platforms that trigger FocusLost on calls to " system(). macvim (gui and terminal) and Linux terminal vim do not. let s:focusgained_ignore_time = localtime() 62 0.000016 endif FUNCTION airline#parts#get() Defined: ~/.vim/plugged/vim-airline/autoload/airline/parts.vim:49 Called 124 times Total time: 0.000349 Self time: 0.000349 count total (s) self (s) 124 0.000326 return get(s:parts, a:key, {}) FUNCTION 50_set() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:153 Called 92 times Total time: 0.000959 Self time: 0.000362 count total (s) self (s) 92 0.000951 0.000353 return call('delimitMate#Set', a:000) FUNCTION spelunker#cases#reset_case_counter() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/cases.vim:11 Called 2 times Total time: 0.000005 Self time: 0.000005 count total (s) self (s) 2 0.000003 let b:camel_case_count = 0 2 0.000001 let b:snake_case_count = 0 FUNCTION airline#update_statusline() Defined: ~/.vim/plugged/vim-airline/autoload/airline.vim:144 Called 14 times Total time: 0.101823 Self time: 0.000841 count total (s) self (s) 14 0.000769 0.000244 if airline#util#stl_disabled(winnr()) || airline#util#is_popup_window(winnr()) return 14 0.000004 endif " TODO: need to ignore popup windows here as well? 14 0.000076 let range = filter(range(1, winnr('$')), 'v:val != winnr()') " create inactive statusline 14 0.019997 0.000150 call airline#update_statusline_inactive(range) 14 0.000017 unlet! w:airline_render_left w:airline_render_right 14 0.000107 exe 'unlet! ' 'w:airline_section_'. join(s:sections, ' w:airline_section_') " Now create the active statusline 14 0.000012 let w:airline_active = 1 14 0.000044 let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) } 14 0.000005 try 14 0.080731 0.000122 call s:invoke_funcrefs(context, g:airline_statusline_funcrefs) catch /^Vim\%((\a\+)\)\=:E48:/ " Catch: Sandbox mode " no-op 14 0.000004 endtry FUNCTION 193_on_stdout() Defined: ~/.vim/plugged/vim-go/autoload/go/job.vim:432 Called 17 times Total time: 0.002041 Self time: 0.000267 count total (s) self (s) 17 0.002020 0.000246 let self.stdout_buf = s:neocb(a:mode, a:ch, self.stdout_buf, a:data, self.out_cb) FUNCTION 214_setup_path() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter.vim:171 Called 18 times Total time: 0.001665 Self time: 0.000564 count total (s) self (s) 18 0.001643 0.000543 if gitgutter#utility#has_repo_path(a:bufnr) | return | endif return gitgutter#utility#set_repo_path(a:bufnr, a:continuation) FUNCTION airline#extensions#branch#update_untracked_config() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:193 Called 52 times Total time: 0.000434 Self time: 0.000434 count total (s) self (s) 52 0.000111 if !has_key(s:vcs_config[a:vcs].untracked, a:file) return 52 0.000152 elseif s:vcs_config[a:vcs].untracked[a:file] != b:buffer_vcs_config[a:vcs].untracked let b:buffer_vcs_config[a:vcs].untracked = s:vcs_config[a:vcs].untracked[a:file] unlet! b:airline_head 52 0.000013 endif FUNCTION gitgutter#diff#handler() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/diff.vim:191 Called 6 times Total time: 0.001136 Self time: 0.000363 count total (s) self (s) 6 0.000158 0.000024 call gitgutter#debug#log(a:diff) 6 0.000008 if !bufexists(a:bufnr) return 6 0.000001 endif 6 0.000367 0.000075 call gitgutter#hunk#set_hunks(a:bufnr, gitgutter#diff#parse_diff(a:diff)) 6 0.000160 0.000061 let modified_lines = gitgutter#diff#process_hunks(a:bufnr, gitgutter#hunk#hunks(a:bufnr)) 6 0.000009 let signs_count = len(modified_lines) 6 0.000011 if g:gitgutter_max_signs != -1 && 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) 6 0.000002 else 6 0.000012 if g:gitgutter_signs || g:gitgutter_highlight_lines || g:gitgutter_highlight_linenrs 6 0.000212 0.000040 call gitgutter#sign#update_signs(a:bufnr, modified_lines) 6 0.000002 endif 6 0.000002 endif 6 0.000102 0.000027 call s:save_last_seen_change(a:bufnr) 6 0.000020 if exists('#User#GitGutter') let g:gitgutter_hook_context = {'bufnr': a:bufnr} execute 'doautocmd' s:nomodeline 'User GitGutter' unlet g:gitgutter_hook_context 6 0.000001 endif FUNCTION go#util#GetLines() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:455 Called 3 times Total time: 0.000486 Self time: 0.000486 count total (s) self (s) 3 0.000447 let buf = getline(1, '$') 3 0.000008 if &encoding != 'utf-8' let buf = map(buf, 'iconv(v:val, &encoding, "utf-8")') 3 0.000002 endif 3 0.000006 if &l:fileformat == 'dos' " XXX: line2byte() depend on 'fileformat' option. " so if fileformat is 'dos', 'buf' must include '\r'. let buf = map(buf, 'v:val."\r"') 3 0.000001 endif 3 0.000003 return buf FUNCTION 74_addtomrufs() Defined: ~/.vim/plugged/ctrlp.vim/autoload/ctrlp/mrufiles.vim:70 Called 2 times Total time: 0.000173 Self time: 0.000173 count total (s) self (s) 2 0.000052 let fn = fnamemodify(a:fname, get(g:, 'ctrlp_tilde_homedir', 0) ? ':p:~' : ':p') 2 0.000005 let fn = exists('+ssl') ? tr(fn, '/', '\') : fn 2 0.000004 let abs_fn = fnamemodify(fn,':p') 2 0.000109 if ( !empty({s:in}) && fn !~# {s:in} ) || ( !empty({s:ex}) && fn =~# {s:ex} ) || !empty(getbufvar('^' . abs_fn . '$', '&bt')) || !filereadable(abs_fn) 2 0.000001 retu en let idx = index(s:mrufs, fn, 0, !{s:cseno}) if idx cal filter(s:mrufs, 'v:val !='.( {s:cseno} ? '#' : '?' ).' fn') cal insert(s:mrufs, fn) if {s:soup} && idx < 0 cal s:savetofile(s:mergelists()) en en FUNCTION coc#util#variables() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:223 Called 2 times Total time: 0.000130 Self time: 0.000130 count total (s) self (s) 2 0.000005 let info = getbufinfo(a:bufnr) 2 0.000012 let variables = empty(info) ? {} : copy(info[0]['variables']) 50 0.000019 for key in keys(variables) 48 0.000042 if key !~# '\v^coc' 48 0.000027 unlet variables[key] 48 0.000008 endif 50 0.000009 endfor 2 0.000001 return variables FUNCTION 92_Tree() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:340 Called 2 times Total time: 0.000008 Self time: 0.000008 count total (s) self (s) 2 0.000003 if a:path =~# '/\.git$' return len(a:path) ==# 5 ? '/' : a:path[0:-6] 2 0.000001 elseif a:path ==# '' 2 0.000001 return '' endif let dir = FugitiveActualDir(a:path) if !has_key(s:worktree_for_dir, dir) let s:worktree_for_dir[dir] = '' let ext_wtc_pat = 'v:val =~# "^\\s*worktreeConfig *= *\\%(true\\|yes\\|on\\|1\\) *$"' let config = s:ReadFile(dir . '/config', 50) if len(config) let ext_wtc_config = filter(copy(config), ext_wtc_pat) if len(ext_wtc_config) == 1 && filereadable(dir . '/config.worktree') let config += s:ReadFile(dir . '/config.worktree', 50) endif else let worktree = fnamemodify(FugitiveVimPath(get(s:ReadFile(dir . '/gitdir', 1), '0', '')), ':h') if worktree ==# '.' unlet! worktree endif if len(filter(s:ReadFile(FugitiveCommonDir(dir) . '/config', 50), ext_wtc_pat)) let config = s:ReadFile(dir . '/config.worktree', 50) endif endif if len(config) let wt_config = filter(copy(config), 'v:val =~# "^\\s*worktree *="') if len(wt_config) let worktree = FugitiveVimPath(matchstr(wt_config[0], '= *\zs.*')) elseif !exists('worktree') call filter(config,'v:val =~# "^\\s*bare *= *true *$"') if empty(config) let s:worktree_for_dir[dir] = 0 endif endif endif if exists('worktree') let s:worktree_for_dir[dir] = s:Slash(resolve(worktree)) let s:dir_for_worktree[s:worktree_for_dir[dir]] = dir endif endif if s:worktree_for_dir[dir] =~# '^\.' return simplify(dir . '/' . s:worktree_for_dir[dir]) else return s:worktree_for_dir[dir] endif FUNCTION 79_Slash() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:33 Called 6 times Total time: 0.000005 Self time: 0.000005 count total (s) self (s) 6 0.000004 return a:path FUNCTION airline#highlighter#exec() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:219 Called 1131 times Total time: 0.222263 Self time: 0.077228 count total (s) self (s) 1131 0.001041 if pumvisible() return 1131 0.000337 endif 1131 0.001081 let colors = a:colors 1131 0.001197 if len(colors) == 4 462 0.000508 call add(colors, '') 1131 0.000333 endif " colors should always be string values 1131 0.013593 let colors = map(copy(colors), 'type(v:val) != type("") ? string(v:val) : v:val') 1131 0.000817 if s:is_win32term let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, '')) let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, '')) 1131 0.000322 endif 1131 0.122375 0.010517 let old_hi = airline#highlighter#get_highlight(a:group) 1131 0.005297 let new_hi = [colors[0], colors[1], printf('%s', colors[2]), printf('%s', colors[3]), colors[4]] 1131 0.024374 0.008677 let colors = s:CheckDefined(colors) 1131 0.014026 0.007614 if old_hi != new_hi || !s:hl_group_exists(a:group) 145 0.012195 0.001127 let cmd = printf('hi %s%s', a:group, s:GetHiCmd(colors)) 145 0.000075 try 145 0.000832 exe cmd catch /^Vim\%((\a\+)\)\=:E421:/ " color definition not found let group=matchstr(v:exception, '\w\+\ze=') let color=matchstr(v:exception, '=\zs\w\+') let cmd=substitute(cmd, color, 'grey', 'g') exe cmd call airline#util#warning('color definition for group ' . a:group . ' not found, using grey as fallback') catch call airline#util#warning('Error when running command: '. cmd) 145 0.000108 endtry 145 0.000259 if has_key(s:hl_groups, a:group) 145 0.000251 let s:hl_groups[a:group] = colors 145 0.000055 endif 1131 0.000305 endif FUNCTION go#lsp#Doc() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1029 Called 2 times Total time: 0.104928 Self time: 0.000128 count total (s) self (s) 2 0.000045 let l:fname = expand('%:p') 2 0.000109 0.000009 let [l:line, l:col] = go#lsp#lsp#Position() 2 0.000090 0.000007 call go#lsp#DidChange(l:fname) 2 0.000010 0.000003 let l:lsp = s:lspfactory.get() 2 0.000143 0.000008 let l:msg = go#lsp#message#Hover(l:fname, l:line, l:col) 2 0.000049 0.000008 let l:state = s:newHandlerState('doc') 2 0.000027 0.000012 let l:resultHandler = go#promise#New(function('s:docFromHoverResult', [], l:state), 10000, '') 2 0.000002 let l:state.handleResult = l:resultHandler.wrapper 2 0.000002 let l:state.error = l:resultHandler.wrapper 2 0.000256 0.000007 call l:lsp.sendMessage(l:msg, l:state) 2 0.104191 0.000021 return l:resultHandler.await() FUNCTION airline#extensions#append_to_section() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions.vim:54 Called 14 times Total time: 0.000196 Self time: 0.000111 count total (s) self (s) 14 0.000162 0.000077 call check_defined_section(a:name) 14 0.000028 let w:airline_section_{a:name} .= a:value FUNCTION airline#check_mode() Defined: ~/.vim/plugged/vim-airline/autoload/airline.vim:227 Called 54 times Total time: 0.351706 Self time: 0.007506 count total (s) self (s) 54 0.000139 if !has_key(s:contexts, a:winnr) return '' 54 0.000041 endif 54 0.000160 let context = s:contexts[a:winnr] 54 0.000140 if get(w:, 'airline_active', 1) 48 0.000117 let m = mode(1) " Refer :help mode() to see the list of modes " NB: 'let mode' here refers to the display colour _groups_, " not the literal mode's code (i.e., m). E.g., Select modes " v, S and ^V use 'visual' since they are of similar ilk. " Some modes do not get recognised for status line purposes: " no, nov, noV, no^V, !, cv, and ce. " Mode name displayed is handled in init.vim (g:airline_mode_map). " 48 0.000091 if m[0] ==# "i" let mode = ['insert'] " Insert modes + submodes (i, ic, ix) 48 0.000098 elseif m[0] == "R" let mode = ['replace'] " Replace modes + submodes (R, Rc, Rv, Rx) (NB: case sensitive as 'r' is a mode) 48 0.000483 elseif m[0] =~ '\v(v|V||s|S|)' let mode = ['visual'] " Visual and Select modes (v, V, ^V, s, S, ^S)) 48 0.000044 elseif m ==# "t" let mode = ['terminal'] " Terminal mode (only has one mode (t)) 48 0.000227 elseif m[0] =~ '\v(c|r|!)' 10 0.000034 let mode = ['commandline'] " c, cv, ce, r, rm, r? (NB: cv and ce stay showing as mode entered from) 38 0.000013 else 38 0.000054 let mode = ['normal'] " Normal mode + submodes (n, niI, niR, niV; plus operator pendings no, nov, noV, no^V) 48 0.000021 endif 48 0.000195 if exists("*VMInfos") && !empty(VMInfos()) " Vim plugin Multiple Cursors https://github.com/mg979/vim-visual-multi let m = 'multi' 48 0.000018 endif " Adjust to handle additional modes, which don't display correctly otherwise 48 0.000278 if index(['niI', 'niR', 'niV', 'ic', 'ix', 'Rc', 'Rv', 'Rx', 'multi'], m) == -1 48 0.000056 let m = m[0] 48 0.000017 endif 48 0.000209 let w:airline_current_mode = get(g:airline_mode_map, m, m) 6 0.000003 else 6 0.000010 let mode = ['inactive'] 6 0.000026 let w:airline_current_mode = get(g:airline_mode_map, '__') 54 0.000021 endif 54 0.000198 if g:airline_detect_modified && &modified 8 0.000014 call add(mode, 'modified') 54 0.000020 endif 54 0.000087 if g:airline_detect_paste && &paste call add(mode, 'paste') 54 0.000017 endif 54 0.000510 if g:airline_detect_crypt && exists("+key") && !empty(&key) call add(mode, 'crypt') 54 0.000016 endif 54 0.000090 if g:airline_detect_spell && &spell call add(mode, 'spell') 54 0.000016 endif 54 0.000072 if &readonly || ! &modifiable 6 0.000016 call add(mode, 'readonly') 54 0.000020 endif 54 0.000184 let mode_string = join(mode) 54 0.000166 if get(w:, 'airline_lastmode', '') != mode_string 32 0.012711 0.000584 call airline#highlighter#highlight_modified_inactive(context.bufnr) 32 0.330619 0.000492 call airline#highlighter#highlight(mode, string(context.bufnr)) 32 0.002193 0.000246 call airline#util#doautocmd('AirlineModeChanged') 32 0.000053 let w:airline_lastmode = mode_string 54 0.000017 endif 54 0.000032 return '' FUNCTION 198_get_separator_change() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim:68 Called 12 times Total time: 0.001587 Self time: 0.000132 count total (s) self (s) 12 0.001584 0.000129 return s:get_separator_change_with_end(a:new_group, a:old_group, a:end_group, a:end_group, a:sep_size, a:alt_sep_size) FUNCTION go#tool#Imports() Defined: ~/.vim/plugged/vim-go/autoload/go/tool.vim:57 Called 2 times Total time: 15.517129 Self time: 0.006072 count total (s) self (s) 2 0.000009 let imports = {} 2 0.000044 0.000019 if go#util#IsWin() let format = '{{range $f := .Imports}}{{$f}}{{printf \"\n\"}}{{end}}' 2 0.000001 else 2 0.000007 let format = "{{range $f := .Imports}}{{$f}}{{printf \"\\n\"}}{{end}}" 2 0.000001 endif 2 0.446181 0.000049 let [l:out, l:err] = go#util#ExecInDir(['go', 'list', '-tags', go#config#BuildTags(), '-f', l:format]) 2 0.000001 if l:err != 0 echo out return imports 2 0.000000 endif 276 0.000290 for package_path in split(out, '\n') 274 15.067492 0.002592 let [l:out, l:err] = go#util#ExecInDir(['go', 'list', '-tags', go#config#BuildTags(), '-f', '{{.Name}}', l:package_path]) 274 0.000172 if l:err != 0 echo out return imports 274 0.000065 endif 274 0.001909 let package_name = substitute(l:out, '\n$', '', '') 274 0.000536 let imports[package_name] = package_path 276 0.000096 endfor 2 0.000001 return imports FUNCTION 193_neocb() Defined: ~/.vim/plugged/vim-go/autoload/go/job.vim:473 Called 17 times Total time: 0.001775 Self time: 0.001435 count total (s) self (s) " dealing with the channel lines of Neovim is awful. The docs (:help " channel-lines) say: " stream event handlers may receive partial (incomplete) lines. For a " given invocation of on_stdout etc, `a:data` is not guaranteed to end " with a newline. " - `abcdefg` may arrive as `['abc']`, `['defg']`. " - `abc\nefg` may arrive as `['abc', '']`, `['efg']` or `['abc']`, " `['','efg']`, or even `['ab']`, `['c','efg']`. " " Thankfully, though, this is explained a bit better in an issue: " https://github.com/neovim/neovim/issues/3555. Specifically in these two " comments: " * https://github.com/neovim/neovim/issues/3555#issuecomment-152290804 " * https://github.com/neovim/neovim/issues/3555#issuecomment-152588749 " " The key is " Every item in the list passed to job control callbacks represents a " string after a newline(Except the first, of course). If the program " outputs: "hello\nworld" the corresponding list is ["hello", "world"]. " If the program outputs "hello\nworld\n", the corresponding list is " ["hello", "world", ""]. In other words, you can always determine if " the last line received is complete or not. " and " for every list you receive in a callback, all items except the first " represent newlines. 17 0.000032 let l:buf = '' " A single empty string means EOF was reached. The first item will never be " an empty string except for when it's the only item and is signaling that " EOF was reached. 17 0.000065 if len(a:data) == 1 && a:data[0] == '' " when there's nothing buffered, return early so that an " erroneous message will not be added. if a:buf == '' return '' endif let l:data = [a:buf] 17 0.000007 else 17 0.000042 let l:data = copy(a:data) 17 0.000050 let l:data[0] = a:buf . l:data[0] " The last element may be a partial line; save it for next time. 17 0.000016 if a:mode != 'raw' let l:buf = l:data[-1] let l:data = l:data[:-2] 17 0.000005 endif 17 0.000006 endif 17 0.000013 let l:i = 0 17 0.000024 let l:last = len(l:data) - 1 64 0.000056 while l:i <= l:last 47 0.000053 let l:msg = l:data[l:i] 47 0.000051 if a:mode == 'raw' && l:i < l:last 30 0.000036 let l:msg = l:msg . "\n" 47 0.000012 endif 47 0.000029 if a:mode == 'raw' 47 0.000719 0.000379 call s:queueneocb(function(a:callback, [a:ch, l:msg])) else call a:callback(a:ch, l:msg) 47 0.000012 endif 47 0.000039 let l:i += 1 64 0.000034 endwhile 17 0.000014 return l:buf FUNCTION 79_AutoInit() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:625 Called 2 times Total time: 0.001087 Self time: 0.000008 count total (s) self (s) 2 0.001087 0.000007 return s:Init(1, 1, 1, 1) FUNCTION airline#util#is_popup_window() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:214 Called 14 times Total time: 0.000074 Self time: 0.000074 count total (s) self (s) " Keep the statusline active if it's a popup window 14 0.000024 if exists('*win_gettype') 14 0.000040 return win_gettype(a:winnr) ==# 'popup' || win_gettype(a:winnr) ==# 'autocmd' else return airline#util#getwinvar(a:winnr, '&buftype', '') ==# 'popup' endif FUNCTION 130_Setup() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:322 Called 4 times Total time: 0.000846 Self time: 0.000075 count total (s) self (s) 4 0.000004 if &filetype ==# "" 2 0.000083 0.000006 call s:InitColor() 4 0.000001 endif 4 0.000069 0.000017 if s:Filter() && g:indentLine_enabled || exists("b:indentLine_enabled") && b:indentLine_enabled 4 0.000623 0.000017 call s:IndentLinesEnable() 4 0.000001 endif 4 0.000055 0.000018 if s:Filter() && g:indentLine_leadingSpaceEnabled || exists("b:indentLine_leadingSpaceEnabled") && b:indentLine_leadingSpaceEnabled call s:LeadingSpaceEnable() 4 0.000001 endif FUNCTION 155_hl_group_exists() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:99 Called 986 times Total time: 0.006412 Self time: 0.006412 count total (s) self (s) 986 0.001237 if !hlexists(a:group) return 0 986 0.002988 elseif empty(synIDattr(synIDtrans(hlID(a:group)), 'fg')) return 0 986 0.000271 endif 986 0.000460 return 1 FUNCTION airline#extensions#searchcount#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/searchcount.vim:15 Called 14 times Total time: 0.000305 Self time: 0.000109 count total (s) self (s) 14 0.000299 0.000103 call airline#extensions#append_to_section('y', '%{v:hlsearch ? airline#extensions#searchcount#status() : ""}') FUNCTION 79_Apply() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:389 Called 4 times Total time: 0.000274 Self time: 0.000263 count total (s) self (s) 4 0.000009 let options = extend(copy(a:detected.defaults), a:detected.options) 4 0.000013 if get(a:detected.defaults, 'shiftwidth', [1])[0] == 0 && get(options, 'shiftwidth', [0])[0] != 0 && !has_key(a:detected.declared, 'tabstop') let options.tabstop = options.shiftwidth let options.shiftwidth = a:detected.defaults.shiftwidth 4 0.000001 endif 4 0.000005 if has_key(options, 'shiftwidth') && !has_key(options, 'expandtab') let options.expandtab = [stridx(join(getline(1, 256), "\n"), "\t") == -1, a:detected.bufname] 4 0.000001 endif 4 0.000007 if !exists('*shiftwidth') && !get(options, 'shiftwidth', [1])[0] let options.shiftwidth = [get(options, 'tabstop', [&tabstop])[0]] + options.shiftwidth[1:-1] 4 0.000001 endif 4 0.000002 let msg = '' 4 0.000002 let cmd = 'setlocal' 34 0.000013 for option in a:permitted_options 30 0.000058 if !exists('&' . option) || !has_key(options, option) || !&l:modifiable && index(s:safe_options, option) == -1 30 0.000007 continue endif let value = options[option] if has_key(s:booleans, option) let setting = (value[0] ? '' : 'no') . option else let setting = option . '=' . value[0] endif if getbufvar('', '&' . option) !=# value[0] || index(s:safe_options, option) >= 0 let cmd .= ' ' . setting endif if !&verbose || a:silent if has_key(s:booleans, option) let msg .= ' ' . (value[0] ? '' : 'no') . get(s:short_options, option, option) else let msg .= ' ' . get(s:short_options, option, option) . '=' . value[0] endif continue endif if len(value) > 1 if value[1] ==# a:detected.bufname let file = '%' else let file = value[1] =~# '/' ? fnamemodify(value[1], ':~:.') : value[1] if file !=# value[1] && file[0:0] !=# '~' let file = './' . file endif endif if len(value) > 2 let file .= ' line ' . value[2] endif echo printf(':setlocal %-21s " from %s', setting, file) else echo ':setlocal ' . setting endif 4 0.000002 endfor 4 0.000005 if !&verbose && !empty(msg) && !a:silent echo ':setlocal' . msg 4 0.000001 endif 4 0.000003 if has_key(options, 'shiftwidth') let cmd .= ' softtabstop=' . (exists('*shiftwidth') ? -1 : options.shiftwidth[0]) 4 0.000001 else 4 0.000025 0.000013 call s:Warn(':Sleuth failed to detect indent settings', a:silent) 4 0.000001 endif 4 0.000003 return cmd ==# 'setlocal' ? '' : cmd FUNCTION gitgutter#async#available() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/async.vim:11 Called 6 times Total time: 0.000009 Self time: 0.000009 count total (s) self (s) 6 0.000008 return s:available FUNCTION 79_Warn() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:19 Called 4 times Total time: 0.000012 Self time: 0.000012 count total (s) self (s) 4 0.000004 if !get(a:000, 0, 0) echohl WarningMsg echo a:msg echohl NONE 4 0.000001 endif 4 0.000001 return '' FUNCTION airline#extensions#tagbar#currenttag() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tagbar.vim:31 Called 68 times Total time: 0.012596 Self time: 0.004440 count total (s) self (s) 68 0.000096 if get(w:, 'airline_active', 0) 62 0.000056 if !s:init try " try to load the plugin, if filetypes are disabled, " this will cause an error, so try only once let a = tagbar#currenttag('%s', '', '') catch endtry unlet! a let s:init=1 62 0.000018 endif 62 0.002569 let cursize = getfsize(fnamemodify(bufname('%'), ':p')) 62 0.000185 if cursize > 0 && cursize > get(g:, 'airline#extensions#tagbar#max_filesize', 1024 * 1024) return '' 62 0.000017 endif 62 0.000126 let flags = get(g:, 'airline#extensions#tagbar#flags', '') " function tagbar#currenttag does not exist, if filetype is not enabled 62 0.000217 if s:airline_tagbar_last_lookup_time != localtime() && exists("*tagbar#currenttag") 28 0.008471 0.000316 let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', flags, get(g:, 'airline#extensions#tagbar#searchmethod', 'nearest-stl')) 28 0.000050 let s:airline_tagbar_last_lookup_time = localtime() 62 0.000016 endif 62 0.000062 return s:airline_tagbar_last_lookup_val 6 0.000002 endif 6 0.000003 return '' FUNCTION go#path#FromURI() Defined: ~/.vim/plugged/vim-go/autoload/go/path.vim:177 Called 6 times Total time: 0.000188 Self time: 0.000115 count total (s) self (s) 6 0.000010 let l:i = len('file://') 6 0.000020 let l:encoded_path = a:uri[: l:i - 1] is# 'file://' ? a:uri[l:i :] : a:uri 6 0.000075 0.000031 let l:path = go#uri#Decode(l:encoded_path) " If the path is like /C:/foo/bar, it should be C:\foo\bar instead. 6 0.000053 0.000024 if go#util#IsWin() && l:path =~# '^/[a-zA-Z]:' let l:path = substitute(l:path[1:], '/', '\\', 'g') 6 0.000003 endif 6 0.000004 return l:path FUNCTION 199_ExcludeOther() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buflist.vim:32 Called 2 times Total time: 0.000013 Self time: 0.000013 count total (s) self (s) 2 0.000010 if (getbufvar(a:nr, 'current_syntax') == 'qf') || (a:exclude_preview && getbufvar(a:nr, '&bufhidden') == 'wipe' && getbufvar(a:nr, '&buftype') == 'nofile') 2 0.000002 return 1 | endif FUNCTION 155_get_syn() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:44 Called 8740 times Total time: 0.093318 Self time: 0.093318 count total (s) self (s) 8740 0.005683 let color = '' 8740 0.008694 if hlexists(a:group) 8488 0.022981 let color = synIDattr(synIDtrans(hlID(a:group)), a:what, a:mode) 8740 0.002487 endif 8740 0.009809 if empty(color) || color == -1 " should always exist 252 0.000532 let color = synIDattr(synIDtrans(hlID('Normal')), a:what, a:mode) " however, just in case 252 0.000250 if empty(color) || color == -1 let color = 'NONE' 252 0.000062 endif 8740 0.002223 endif 8740 0.004610 return color FUNCTION 215_timer_restart() Defined: ~/.vim/plugged/vim-go/autoload/go/auto.vim:111 Called 10 times Total time: 0.001181 Self time: 0.000975 count total (s) self (s) 10 0.000846 if isdirectory(expand('%:p:h')) 10 0.000115 0.000063 call s:timer_stop() 10 0.000211 0.000057 call s:timer_start() 10 0.000003 endif FUNCTION coc#cursor#position() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/cursor.vim:16 Called 16 times Total time: 0.002076 Self time: 0.000449 count total (s) self (s) 16 0.000083 let line = getline('.') 16 0.001976 0.000349 return [line('.') - 1, coc#string#character_index(line, col('.') - 1)] FUNCTION spelunker#words#highlight() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/words.vim:161 Called 2 times Total time: 0.000076 Self time: 0.000045 count total (s) self (s) 2 0.000002 let l:spell_bad_list = a:spell_bad_list " matchadd()の対象が多すぎるとスクロール時に毎回処理が走るっぽく、重くなるため 2 0.000003 if len(l:spell_bad_list) > g:spelunker_max_hi_words_each_buf if !exists('b:is_too_much_words_notified') echon 'Too many spell bad words. (' . len(l:spell_bad_list) . ' words found.)' endif let l:spell_bad_list = l:spell_bad_list[0:g:spelunker_max_hi_words_each_buf] " 2回目は通知しない let b:is_too_much_words_notified = 1 2 0.000000 endif 2 0.000002 if !exists('b:match_id_dict') 2 0.000002 let b:match_id_dict = {} 2 0.000000 endif " 同じbufferながら、ウインドウを2つ開いたときに両方正しくhighlightされるように 2 0.000002 let l:window_id = win_getid() 2 0.000003 if !has_key(b:match_id_dict, l:window_id) 2 0.000003 let b:match_id_dict[l:window_id] = {} 2 0.000000 endif 2 0.000045 0.000014 let [l:word_list_for_delete_match, b:match_id_dict[l:window_id]] = spelunker#matches#add_matches(l:spell_bad_list, b:match_id_dict[l:window_id]) 2 0.000002 if len(l:word_list_for_delete_match) == 0 2 0.000001 return endif let b:match_id_dict[l:window_id] = spelunker#matches#delete_matches(l:word_list_for_delete_match, b:match_id_dict[l:window_id], l:window_id) FUNCTION 79_DetectDeclared() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:481 Called 2 times Total time: 0.000785 Self time: 0.000176 count total (s) self (s) 2 0.000025 0.000023 let detected = {'bufname': s:Slash(@%), 'declared': {}} 2 0.000010 let absolute_or_empty = detected.bufname =~# '^$\|^\a\+:\|^/' 2 0.000005 if &l:buftype =~# '^\%(nowrite\)\=$' && !absolute_or_empty 2 0.000054 0.000052 let detected.bufname = substitute(s:Slash(getcwd()), '/\=$', '/', '') . detected.bufname 2 0.000001 let absolute_or_empty = 1 2 0.000000 endif 2 0.000003 let detected.path = absolute_or_empty ? detected.bufname : '' 2 0.000009 let pre = substitute(matchstr(detected.path, '^\a\a\+\ze:'), '^\a', '\u&', 'g') 2 0.000003 if len(pre) && exists('*' . pre . 'Real') let detected.path = s:Slash(call(pre . 'Real', [detected.path])) 2 0.000000 endif 2 0.000001 try 2 0.000007 if len(detected.path) && exists('*ExcludeBufferFromDiscovery') && !empty(ExcludeBufferFromDiscovery(detected.path, 'sleuth')) let detected.path = '' 2 0.000000 endif catch 2 0.000001 endtry 2 0.000441 0.000014 let [detected.editorconfig, detected.root] = s:DetectEditorConfig(detected.path) 2 0.000109 0.000014 call extend(detected.declared, s:EditorConfigToOptions(detected.editorconfig)) 2 0.000106 0.000023 call extend(detected.declared, s:ModelineOptions()) 2 0.000001 return detected FUNCTION airline#extensions#tabline#formatters#default#format() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/default.vim:7 Called 40 times Total time: 0.009240 Self time: 0.008290 count total (s) self (s) 40 0.000128 let fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0) 40 0.000091 let fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.') 40 0.000041 let _ = '' 40 0.000097 let name = bufname(a:bufnr) 40 0.000058 if empty(name) let _ = '[No Name]' 40 0.000303 elseif name =~ 'term://' " Neovim Terminal let _ = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '') 40 0.000021 else 40 0.000100 if get(g:, 'airline#extensions#tabline#fnamecollapse', 1) " Does not handle non-ascii characters like Cyrillic: 'D/Учёба/t.c' "let _ .= substitute(fnamemodify(name, fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g') 40 0.005625 let _ = pathshorten(fnamemodify(name, fmod)) else let _ = fnamemodify(name, fmod) 40 0.000030 endif 40 0.000163 if a:bufnr != bufnr('%') && fnametruncate && strlen(_) > fnametruncate let _ = airline#util#strcharpart(_, 0, fnametruncate) 40 0.000015 endif 40 0.000016 endif 40 0.001836 0.000886 return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, _) FUNCTION airline#extensions#branch#head() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:249 Called 62 times Total time: 0.028584 Self time: 0.002080 count total (s) self (s) 62 0.000118 if !exists('b:buffer_vcs_config') 2 0.000041 0.000020 call s:init_buffer() 62 0.000016 endif 62 0.019517 0.000415 call s:update_branch() 62 0.007473 0.000451 call s:update_untracked() 62 0.000138 if exists('b:airline_head') && !empty(b:airline_head) 52 0.000036 return b:airline_head 10 0.000002 endif 10 0.000009 let b:airline_head = '' 10 0.000022 let vcs_priority = get(g:, "airline#extensions#branch#vcs_priority", ["git", "mercurial"]) 10 0.000006 let heads = [] 30 0.000015 for vcs in vcs_priority 20 0.000025 if !empty(b:buffer_vcs_config[vcs].branch) 10 0.000012 let heads += [vcs] 20 0.000004 endif 30 0.000007 endfor 20 0.000011 for vcs in heads 10 0.000009 if !empty(b:airline_head) let b:airline_head .= ' | ' 10 0.000002 endif 10 0.000010 if len(heads) > 1 let b:airline_head .= s:vcs_config[vcs].exe .':' 10 0.000002 endif 10 0.000478 0.000119 let b:airline_head .= s:format_name({s:vcs_config[vcs].display_branch}()) 10 0.000014 let additional = b:buffer_vcs_config[vcs].untracked 10 0.000031 if empty(additional) && has_key(b:buffer_vcs_config[vcs], 'dirty') && b:buffer_vcs_config[vcs].dirty let additional = g:airline_symbols['dirty'] 10 0.000002 endif 10 0.000012 let b:airline_head .= additional 20 0.000008 endfor 10 0.000008 if empty(heads) if airline#util#has_vcscommand() noa call VCSCommandEnableBufferSetup() if exists('b:VCSCommandBufferInfo') let b:airline_head = s:format_name(get(b:VCSCommandBufferInfo, 0, '')) endif endif 10 0.000002 endif 10 0.000006 if empty(heads) if airline#util#has_custom_scm() try let Fn = function(g:airline#extensions#branch#custom_head) let b:airline_head = Fn() endtry endif 10 0.000002 endif 10 0.000017 if exists("g:airline#extensions#branch#displayed_head_limit") let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit if strwidth(b:airline_head) > w:displayed_head_limit - 1 let b:airline_head = airline#util#strcharpart(b:airline_head, 0, w:displayed_head_limit - 1) . (&encoding ==? 'utf-8' ? '…' : '.') endif 10 0.000002 endif 10 0.000006 return b:airline_head FUNCTION gitgutter#diff#run_diff() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/diff.vim:71 Called 6 times Total time: 0.016724 Self time: 0.001666 count total (s) self (s) 6 0.000125 0.000035 if gitgutter#utility#repo_path(a:bufnr, 0) == -1 throw 'gitgutter path not set' 6 0.000003 endif 6 0.000213 0.000044 if gitgutter#utility#repo_path(a:bufnr, 0) == -2 throw 'gitgutter not tracked' 6 0.000002 endif 6 0.000183 0.000034 if gitgutter#utility#repo_path(a:bufnr, 0) == -3 throw 'gitgutter assume unchanged' 6 0.000002 endif " If we are diffing against a specific branch/commit, handle the case " where a file exists on the current branch but not in/at the diff base. " We have to handle it here because the approach below (using git-show) " doesn't work for this case. 6 0.000013 if !empty(g:gitgutter_diff_base) let index_name = gitgutter#utility#get_diff_base(a:bufnr).':'.gitgutter#utility#repo_path(a:bufnr, 1) let cmd = g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager show '.index_name let cmd = gitgutter#utility#cd_cmd(a:bufnr, cmd) call gitgutter#utility#system(cmd) if v:shell_error throw 'gitgutter file unknown in base' endif 6 0.000002 endif " Wrap compound commands in parentheses to make Windows happy. " bash doesn't mind the parentheses. 6 0.000006 let cmd = '(' " Append buffer number to temp filenames to avoid race conditions between " writing and reading the files when asynchronously processing multiple " buffers. " 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). 6 0.000023 let buff_file = s:temp_buffer.'.'.a:bufnr " Add a counter to avoid a similar race with two quick writes of the same buffer. " Use a modulus greater than a maximum reasonable number of visible buffers. 6 0.000012 let s:counter = (s:counter + 1) % 20 6 0.000016 let buff_file .= '.'.s:counter 6 0.000640 0.000042 let extension = gitgutter#utility#extension(a:bufnr) 6 0.000009 if !empty(extension) 6 0.000012 let buff_file .= '.'.extension 6 0.000003 endif " Write buffer to temporary file. " Note: this is synchronous. 6 0.004581 0.000371 call s:write_buffer(a:bufnr, buff_file) 6 0.000011 if a:from ==# 'index' " Without the buffer number, from_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). 6 0.000022 let from_file = s:temp_from.'.'.a:bufnr " Add a counter to avoid a similar race with two quick writes of the same buffer. 6 0.000026 let from_file .= '.'.s:counter 6 0.000012 if !empty(extension) 6 0.000010 let from_file .= '.'.extension 6 0.000003 endif " Write file from index to temporary file. 6 0.000927 0.000170 let index_name = gitgutter#utility#get_diff_base(a:bufnr).':'.gitgutter#utility#repo_path(a:bufnr, 1) 6 0.000043 let cmd .= g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager show '.index_name.' > '.from_file.' && ' elseif a:from ==# 'working_tree' let from_file = gitgutter#utility#repo_path(a:bufnr, 1) 6 0.000003 endif " Call git-diff. 6 0.000021 let cmd .= g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager' 6 0.000006 if s:c_flag 6 0.000013 let cmd .= ' -c "diff.autorefreshindex=0"' 6 0.000009 let cmd .= ' -c "diff.noprefix=false"' 6 0.000010 let cmd .= ' -c "core.safecrlf=false"' 6 0.000002 endif 6 0.000030 let cmd .= ' diff --no-ext-diff --no-color -U0 '.g:gitgutter_diff_args.' -- '.from_file.' '.buff_file " Pipe git-diff output into grep. 6 0.000015 if !a:preserve_full_diff && !empty(g:gitgutter_grep) 6 0.000227 0.000074 let cmd .= ' | '.g:gitgutter_grep.' '.gitgutter#utility#shellescape('^@@ ') 6 0.000002 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). 6 0.000009 let cmd .= ' || exit 0' 6 0.000008 let cmd .= ')' 6 0.001446 0.000110 let cmd = gitgutter#utility#cd_cmd(a:bufnr, cmd) 6 0.000058 0.000048 if g:gitgutter_async && gitgutter#async#available() 6 0.007687 0.000100 call gitgutter#async#execute(cmd, a:bufnr, { 'out': function('gitgutter#diff#handler'), 'err': function('gitgutter#hunk#reset'), }) 6 0.000007 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 79_EditorConfigToOptions() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:322 Called 2 times Total time: 0.000096 Self time: 0.000096 count total (s) self (s) 2 0.000001 let options = {} 2 0.000003 let pairs = map(copy(a:pairs), 'v:val[0]') 2 0.000003 let sources = map(copy(a:pairs), 'v:val[1:-1]') 2 0.000002 call filter(pairs, 'v:val !=? "unset"') 2 0.000003 if get(pairs, 'indent_style', '') ==? 'tab' let options.expandtab = [0] + sources.indent_style 2 0.000002 elseif get(pairs, 'indent_style', '') ==? 'space' let options.expandtab = [1] + sources.indent_style 2 0.000000 endif 2 0.000007 if get(pairs, 'indent_size', '') =~? '^[1-9]\d*$\|^tab$' let options.shiftwidth = [str2nr(pairs.indent_size)] + sources.indent_size if &g:shiftwidth == 0 && !has_key(pairs, 'tab_width') && pairs.indent_size !=? 'tab' let options.tabstop = options.shiftwidth let options.shiftwidth = [0] + sources.indent_size endif 2 0.000000 endif 2 0.000004 if get(pairs, 'tab_width', '') =~? '^[1-9]\d*$' let options.tabstop = [str2nr(pairs.tab_width)] + sources.tab_width if !has_key(pairs, 'indent_size') && get(pairs, 'indent_style', '') ==? 'tab' let options.shiftwidth = [0] + options.tabstop[1:-1] endif 2 0.000000 endif 2 0.000005 if get(pairs, 'max_line_length', '') =~? '^[1-9]\d*$\|^off$' let options.textwidth = [str2nr(pairs.max_line_length)] + sources.max_line_length 2 0.000000 endif 2 0.000005 if get(pairs, 'insert_final_newline', '') =~? '^true$\|^false$' let options.endofline = [pairs.insert_final_newline ==? 'true'] + sources.insert_final_newline let options.fixendofline = copy(options.endofline) 2 0.000000 endif 2 0.000004 let eol = tolower(get(pairs, 'end_of_line', '')) 2 0.000002 if has_key(s:editorconfig_fileformat, eol) let options.fileformat = [s:editorconfig_fileformat[eol]] + sources.end_of_line 2 0.000000 endif 2 0.000002 let charset = tolower(get(pairs, 'charset', '')) 2 0.000002 if has_key(s:editorconfig_bomb, charset) let options.bomb = [s:editorconfig_bomb[charset]] + sources.charset let options.fileencoding = [substitute(charset, '\C-bom$', '', '')] + sources.charset 2 0.000000 endif 2 0.000003 let filetype = tolower(get(pairs, 'vim_filetype', 'unset')) 2 0.000002 if filetype !=# 'unset' && filetype =~# '^[.a-z0-9_-]*$' let options.filetype = [substitute(filetype, '^\.\+\|\.\+$', '', 'g')] + sources.vim_filetype 2 0.000000 endif 2 0.000001 return options FUNCTION airline#extensions#hunks#get_raw_hunks() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/hunks.vim:88 Called 62 times Total time: 0.003809 Self time: 0.001620 count total (s) self (s) 62 0.000195 if !exists('b:source_func') || get(b:, 'source_func', '') is# 's:get_hunks_empty' 2 0.000003 if get(g:, 'loaded_signify') && sy#buffer_is_active() let b:source_func = 's:get_hunks_signify' 2 0.000004 elseif exists('*GitGutterGetHunkSummary') && get(g:, 'gitgutter_enabled') 2 0.000002 let b:source_func = 's:get_hunks_gitgutter' elseif exists('*changes#GetStats') let b:source_func = 's:get_hunks_changes' elseif exists('*quickfixsigns#vcsdiff#GetHunkSummary') let b:source_func = 'quickfixsigns#vcsdiff#GetHunkSummary' elseif exists(':Gitsigns') let b:source_func = 's:get_hunks_gitsigns' elseif s:coc_git_enabled() let b:source_func = 's:get_hunks_coc' else let b:source_func = 's:get_hunks_empty' 2 0.000000 endif 62 0.000015 endif 62 0.002800 0.000612 return {b:source_func}() FUNCTION coc#util#get_bufoptions() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:468 Called 2 times Total time: 0.000235 Self time: 0.000098 count total (s) self (s) 2 0.000006 if !bufloaded(a:bufnr) | return v:null | endif 2 0.000003 let bufname = bufname(a:bufnr) 2 0.000003 let buftype = getbufvar(a:bufnr, '&buftype') 2 0.000026 0.000018 let size = coc#util#bufsize(a:bufnr) 2 0.000002 let lines = v:null 2 0.000008 if getbufvar(a:bufnr, 'coc_enabled', 1) && (buftype == '' || buftype == 'acwrite' || getbufvar(a:bufnr, 'coc_force_attach', 0)) && size != -2 && size < a:max let lines = getbufline(a:bufnr, 1, '$') 2 0.000000 endif 2 0.000184 0.000054 return { 'bufnr': a:bufnr, 'size': size, 'lines': lines, 'winid': bufwinid(a:bufnr), 'bufname': bufname, 'buftype': buftype, 'previewwindow': v:false, 'eol': getbufvar(a:bufnr, '&eol'), 'variables': coc#util#variables(a:bufnr), 'filetype': getbufvar(a:bufnr, '&filetype'), 'lisp': getbufvar(a:bufnr, '&lisp'), 'iskeyword': getbufvar(a:bufnr, '&iskeyword'), 'changedtick': getbufvar(a:bufnr, 'changedtick'), 'fullpath': empty(bufname) ? '' : fnamemodify(bufname, ':p'),} FUNCTION airline#util#strchars() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:121 Called 30 times Total time: 0.000073 Self time: 0.000073 count total (s) self (s) 30 0.000022 if s:has_strchars 30 0.000037 return strchars(a:str) else return strlen(substitute(a:str, '.', 'a', 'g')) endif FUNCTION airline#extensions#wordcount#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/wordcount.vim:98 Called 14 times Total time: 0.000337 Self time: 0.000337 count total (s) self (s) 14 0.000070 let filetypes = get(g:, 'airline#extensions#wordcount#filetypes', ['asciidoc', 'help', 'mail', 'markdown', 'rmd', 'nroff', 'org', 'rst', 'plaintex', 'tex', 'text']) " export current filetypes settings to global namespace 14 0.000019 let g:airline#extensions#wordcount#filetypes = filetypes " Check if filetype needs testing 14 0.000015 if did_filetype() " correctly test for compound filetypes (e.g. markdown.pandoc) 2 0.000003 let ft = substitute(&filetype, '\.', '\\|', 'g') " Select test based on type of "filetypes": new=list, old=string 2 0.000015 if type(filetypes) == get(v:, 't_list', type([])) ? match(filetypes, '\<'. ft. '\>') > -1 || index(filetypes, 'all') > -1 : match(&filetype, filetypes) > -1 let b:airline_changedtick = -1 call s:update_wordcount(1) " force update: ensures initial worcount exists 2 0.000002 elseif exists('b:airline_wordcount') " cleanup when filetype is removed unlet b:airline_wordcount 2 0.000000 endif 14 0.000003 endif 14 0.000017 if exists('b:airline_wordcount') call airline#extensions#prepend_to_section( 'z', '%{airline#extensions#wordcount#get()}') 14 0.000003 endif FUNCTION 49_setup_styledEmmetAbbreviation() Defined: ~/.vim/plugged/emmet-vim/plugin/emmet.vim:178 Called 2 times Total time: 0.000015 Self time: 0.000015 count total (s) self (s) 2 0.000005 if index(['javascript', 'javascriptreact', 'typescript', 'typescriptreact'], &filetype) != -1 syntax match styledEmmetAbbreviation "[a-z0-9#+!%]\+" containedin=styledDefinition contained 2 0.000000 endif FUNCTION gitgutter#setup_maps() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter.vim:122 Called 2 times Total time: 0.000749 Self time: 0.000719 count total (s) self (s) 2 0.000001 if !g:gitgutter_map_keys return 2 0.000000 endif " Note hasmapto() and maparg() operate on the current buffer. 2 0.000002 let bufnr = bufnr('') 2 0.000023 0.000009 if gitgutter#utility#getbufvar(bufnr, 'mapped', 0) return 2 0.000000 endif 2 0.000107 if !hasmapto('(GitGutterPrevHunk)') && maparg('[c', 'n') ==# '' 2 0.000004 nmap [c (GitGutterPrevHunk) 2 0.000000 endif 2 0.000067 if !hasmapto('(GitGutterNextHunk)') && maparg(']c', 'n') ==# '' 2 0.000003 nmap ]c (GitGutterNextHunk) 2 0.000000 endif 2 0.000043 if !hasmapto('(GitGutterStageHunk)', 'v') && maparg('hs', 'x') ==# '' 2 0.000005 xmap hs (GitGutterStageHunk) 2 0.000000 endif 2 0.000060 if !hasmapto('(GitGutterStageHunk)', 'n') && maparg('hs', 'n') ==# '' 2 0.000004 nmap hs (GitGutterStageHunk) 2 0.000000 endif 2 0.000064 if !hasmapto('(GitGutterUndoHunk)') && maparg('hu', 'n') ==# '' 2 0.000003 nmap hu (GitGutterUndoHunk) 2 0.000000 endif 2 0.000062 if !hasmapto('(GitGutterPreviewHunk)') && maparg('hp', 'n') ==# '' 2 0.000004 nmap hp (GitGutterPreviewHunk) 2 0.000000 endif 2 0.000069 if !hasmapto('(GitGutterTextObjectInnerPending)') && maparg('ic', 'o') ==# '' omap ic (GitGutterTextObjectInnerPending) 2 0.000000 endif 2 0.000064 if !hasmapto('(GitGutterTextObjectOuterPending)') && maparg('ac', 'o') ==# '' omap ac (GitGutterTextObjectOuterPending) 2 0.000000 endif 2 0.000062 if !hasmapto('(GitGutterTextObjectInnerVisual)') && maparg('ic', 'x') ==# '' xmap ic (GitGutterTextObjectInnerVisual) 2 0.000000 endif 2 0.000058 if !hasmapto('(GitGutterTextObjectOuterVisual)') && maparg('ac', 'x') ==# '' xmap ac (GitGutterTextObjectOuterVisual) 2 0.000000 endif 2 0.000027 0.000011 call gitgutter#utility#setbufvar(bufnr, 'mapped', 1) FUNCTION airline#highlighter#add_separator() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:184 Called 96 times Total time: 0.034768 Self time: 0.001162 count total (s) self (s) 96 0.000345 let s:separators[a:from.a:to] = [a:from, a:to, a:inverse] 96 0.034387 0.000781 call exec_separator({}, a:from, a:to, a:inverse, '') FUNCTION 74_record() Defined: ~/.vim/plugged/ctrlp.vim/autoload/ctrlp/mrufiles.vim:59 Called 2 times Total time: 0.000199 Self time: 0.000026 count total (s) self (s) 2 0.000002 if s:locked | retu | en 2 0.000002 let bufnr = a:bufnr + 0 2 0.000002 let bufname = bufname(bufnr) 2 0.000002 if bufnr > 0 && !empty(bufname) 2 0.000005 cal filter(s:mrbs, 'v:val != bufnr') 2 0.000003 cal insert(s:mrbs, bufnr) 2 0.000181 0.000008 cal s:addtomrufs(bufname) 2 0.000001 en FUNCTION 180_set_clean_jobs_variable() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:80 Called 1 time Total time: 0.000004 Self time: 0.000004 count total (s) self (s) 1 0.000001 if !has_key(s:clean_jobs, a:vcs) let s:clean_jobs[a:vcs] = {} 1 0.000000 endif 1 0.000002 let s:clean_jobs[a:vcs][a:file]=a:id FUNCTION airline#async#nvim_vcs_clean() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:305 Called 2 times Total time: 0.000282 Self time: 0.000265 count total (s) self (s) 2 0.000039 0.000026 let config = { 'buf': '', 'vcs': a:vcs, 'file': a:file, 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h')), 'on_stdout': function('s:nvim_output_handler'), 'on_stderr': function('s:nvim_output_handler'), 'on_exit': function('s:on_exit_clean')} 2 0.000002 if g:airline#init#is_windows && &shell =~ 'cmd\|powershell' let cmd = a:cmd 2 0.000000 else 2 0.000003 let cmd = [&shell, &shellcmdflag, a:cmd] 2 0.000000 endif 2 0.000002 if !has_key(s:clean_jobs, a:vcs) let s:clean_jobs[a:vcs] = {} 2 0.000000 endif 2 0.000003 if has_key(s:clean_jobs[a:vcs], a:file) " still running 1 0.000000 return " jobs dict should be cleaned on exit, so not needed here " call remove(s:clean_jobs[a:vcs], a:file) 1 0.000000 endif 1 0.000217 let id = jobstart(cmd, config) 1 0.000011 0.000007 call s:set_clean_jobs_variable(a:vcs, a:file, id) FUNCTION go#config#EchoCommandInfo() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:166 Called 2 times Total time: 0.000004 Self time: 0.000004 count total (s) self (s) 2 0.000003 return get(g:, 'go_echo_command_info', 1) FUNCTION airline#statusline() Defined: ~/.vim/plugged/vim-airline/autoload/airline.vim:218 Called 54 times Total time: 0.000975 Self time: 0.000975 count total (s) self (s) 54 0.000417 if has_key(s:contexts, a:winnr) 54 0.000448 return '%{airline#check_mode('.a:winnr.')}'.s:contexts[a:winnr].line endif " in rare circumstances this happens...see #276 return '' FUNCTION coc#window#get_cursor() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/window.vim:17 Called 6 times Total time: 0.000030 Self time: 0.000030 count total (s) self (s) 6 0.000012 if exists('*nvim_win_get_cursor') 6 0.000014 return nvim_win_get_cursor(a:winid) endif if has('patch-8.2.1727') let pos = getcurpos(a:winid) return [pos[1], pos[2] - 1] endif return coc#api#exec('win_get_cursor', [a:winid]) FUNCTION coc#highlight#clear_highlight() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/highlight.vim:326 Called 30 times Total time: 0.001350 Self time: 0.001176 count total (s) self (s) 30 0.000216 let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr 30 0.000069 if !bufloaded(bufnr) return 30 0.000019 endif 30 0.000524 0.000351 let src_id = coc#highlight#create_namespace(a:key) 30 0.000097 if has('nvim') 30 0.000208 call nvim_buf_clear_namespace(a:bufnr, src_id, a:start_line, a:end_line) else call coc#api#exec('buf_clear_namespace', [a:bufnr, src_id, a:start_line, a:end_line]) 30 0.000012 endif FUNCTION 234_wrapper() Defined: ~/.vim/plugged/vim-go/autoload/go/promise.vim:27 Called 2 times Total time: 0.000046 Self time: 0.000018 count total (s) self (s) 2 0.000001 try 2 0.000039 0.000011 let self.retval = call(a:fn, a:000) catch let self.retval = substitute(v:exception, '^Vim', '', '') let self.exception = 1 2 0.000001 endtry 2 0.000001 return self.retval FUNCTION go#path#BinPath() Defined: ~/.vim/plugged/vim-go/autoload/go/path.vim:73 Called 276 times Total time: 0.006523 Self time: 0.004864 count total (s) self (s) 276 0.001716 0.001244 let l:bin_path = go#config#BinPath() 276 0.000201 if l:bin_path isnot "" return l:bin_path 276 0.000053 endif " check if our global custom path is set, if not check if GOBIN is set so " we can use it, otherwise use default GOPATH 276 0.002150 0.000964 let l:bin_path = go#util#env('gobin') 276 0.000152 if l:bin_path isnot '' 276 0.000228 let l:bin_path = $GOBIN else let l:go_paths = split(go#path#Default(), go#util#PathListSep()) if len(l:go_paths) == 0 return '' "nothing found endif let l:bin_path = expand(l:go_paths[0] . '/bin/') 276 0.000051 endif 276 0.000136 return l:bin_path FUNCTION 148_parse_screen() Defined: ~/.vim/plugged/vim-css-color/autoload/css_color.vim:246 Called 10 times Total time: 0.001437 Self time: 0.001394 count total (s) self (s) 10 0.000034 let leftcol = winsaveview().leftcol 10 0.000020 let left = max([ leftcol - 15, 0 ]) 10 0.000014 let width = &columns * 4 10 0.001267 call filter( range( line('w0'), line('w$') ), 'substitute( strpart( getline(v:val), col([v:val, left]), width ), b:css_color_pat, ''\=s:create_syn_match()'', ''g'' )' ) 10 0.000090 0.000047 call s:flush_exe() FUNCTION gitgutter#utility#is_active() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:50 Called 22 times Total time: 0.021693 Self time: 0.001213 count total (s) self (s) 22 0.021663 0.001183 return gitgutter#utility#getbufvar(a:bufnr, 'enabled') && !pumvisible() && s:is_file_buffer(a:bufnr) && s:exists_file(a:bufnr) && s:not_git_dir(a:bufnr) FUNCTION airline#extensions#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions.vim:72 Called 22 times Total time: 0.001300 Self time: 0.000768 count total (s) self (s) 22 0.000059 let filetype_overrides = get(s:, 'filetype_overrides', {}) 22 0.000081 call extend(filetype_overrides, get(g:, 'airline_filetype_overrides', {}), 'force') 22 0.000648 0.000117 if s:is_excluded_window() return -1 22 0.000005 endif 22 0.000018 if &buftype == 'terminal' let w:airline_section_x = '' let w:airline_section_y = '' 22 0.000005 endif 22 0.000036 if &previewwindow && empty(get(w:, 'airline_section_a', '')) let w:airline_section_a = 'Preview' let w:airline_section_b = '' let w:airline_section_c = bufname(winbufnr(winnr())) 22 0.000005 endif 22 0.000078 if has_key(filetype_overrides, &ft) && ((&filetype == 'help' && &buftype == 'help') || &filetype !~ 'help') " for help files only override it, if the buftype is also of type 'help', " else it would trigger when editing Vim help files let args = filetype_overrides[&ft] call airline#extensions#apply_left_override(args[0], args[1]) 22 0.000005 endif 22 0.000015 if &buftype == 'help' let w:airline_section_x = '' let w:airline_section_y = '' let w:airline_render_right = 1 22 0.000005 endif 22 0.000036 for item in items(s:filetype_regex_overrides) if match(&ft, item[0]) >= 0 call airline#extensions#apply_left_override(item[1][0], item[1][1]) endif 22 0.000007 endfor FUNCTION spelunker#white_list#init_white_list() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/white_list.vim:11 Called 2 times Total time: 0.000081 Self time: 0.000081 count total (s) self (s) 2 0.000002 if !exists('g:spelunker_white_list') let l:wl = [] " Programming language keywords " Common let l:wl += ['elif', 'elseif', 'elsif', 'endfor', 'endforeach', 'endif', 'endswitch', 'esac'] let l:wl += ['endwhile', 'endfunc', 'endfunction', 'endtry', 'xor', 'trait'] " JS: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Reserved_Words let l:wl += ['let', 'const', 'var', 'typeof', 'instanceof'] " PHP: http://php.net/manual/ja/reserved.keywords.php let l:wl += ['foreach', 'enddeclare', 'insteadof', 'isset'] " Go: http://golang.jp/go_spec#Keywords let l:wl += ['func', 'chan', 'fallthrough', 'iota', 'imag', 'println'] " Rust: https://qnighy.hatenablog.com/entry/2017/05/28/070000 let l:wl += ['struct', 'impl', 'pub', 'mut', 'ref', 'fn', 'extern', 'mod', 'priv', 'proc', 'sizeof'] " Ruby: http://secret-garden.hatenablog.com/entry/2015/06/30/000000 let l:wl += ['nil', 'def', 'undef'] " Elixir let l:wl += ['defp', 'defimpl', 'defmacro', 'defmacrop', 'defmodule', 'defprotocol', 'defstruct'] " C: https://ja.wikipedia.org/wiki/キーワード_(C言語) let l:wl += ['typedef', 'noreturn'] " C++: https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89_(C%2B%2B) let l:wl += ['nullptr', 'wchar', 'constexpr', 'alignof', 'decltype', 'typeid'] let l:wl += ['noexcept', 'typename', 'alignas', 'asm', 'bitand', 'bitor', 'compl'] " C#: https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/ let l:wl += ['readonly', 'sbyte', 'stackalloc', 'ascending'] " Python: https://www.lifewithpython.com/2013/03/python-reserved-words.html " Java: https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89_(Java) " Types " Common let l:wl += ['str', 'char', 'int', 'bool', 'dict', 'enum', 'void', 'uint', 'ulong', 'ushort'] " Rust: https://qnighy.hatenablog.com/entry/2017/05/28/070000 let l:wl += ['isize', 'usize', 'vec'] " Go: http://golang.jp/go_spec#Constants let l:wl += ['uintptr'] " Commands let l:wl += ['sudo', 'grep', 'awk', 'curl', 'wget', 'mkdir', 'rmdir', 'pwd'] let l:wl += ['chmod', 'chown', 'rsync', 'uniq', 'git', 'svn', 'nohup'] " Famous OSS or products let l:wl += ['apache', 'nginx', 'github', 'wikipedia', 'linux', 'unix', 'dos'] let l:wl += ['sql', 'mysql', 'postgresql', 'postgre', 'vim', 'gvim', 'emacs', 'vscode'] let l:wl += ['csh', 'bash', 'zsh', 'ksh', 'iphone', 'redis', 'memcached', 'aws', 'gcp'] let l:wl += ['google', 'nvim', 'neovim', 'webkit'] " Programming language name: https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E4%B8%80%E8%A6%A7 let l:wl += ['php', 'kotlin', 'clojure', 'ecma', 'lisp', 'erlang', 'clang', 'golang'] let l:wl += ['fortran', 'haskell', 'jsx', 'lua', 'matlab', 'scala', 'html', 'css'] let l:wl += ['javascript', 'less', 'sass', 'scss', 'csharp', 'dotnet', 'perl'] " Setting files let l:wl += ['ini', 'toml', 'yml', 'xml', 'json'] " Image file type let l:wl += ['jpeg', 'jpg', 'gif', 'png', 'svg'] " Top level domain: https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%83%E3%83%97%E3%83%AC%E3%83%99%E3%83%AB%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3 " 最近増えたものに関しては一旦保留 let l:wl += ['com', 'org', 'biz', 'xxx', 'gov', 'edu', 'tel', 'arpa', 'bitnet', 'csnet'] " Environment let l:wl += ['env', 'dev', 'prod', 'stg', 'qa', 'rc'] " Acronyms and abbreviations let l:wl += ['config', 'conf', 'goto', 'eval', 'exec', 'init', 'calc', 'iter'] let l:wl += ['auth', 'sync', 'del', 'bin', 'wasm', 'ttl', 'sec', 'dom', 'cmd'] let l:wl += ['tls', 'ssl', 'tmp', 'etc', 'usr', 'pos', 'ptr', 'err', 'docs'] let l:wl += ['lang', 'ajax', 'async', 'attr', 'elem', 'ctrl', 'alt'] let l:wl += ['asc', 'desc', 'wifi', 'url', 'ascii', 'ansi', 'unicode'] let l:wl += ['cnt', 'api', 'href', 'src', 'cui', 'gui', 'webhook', 'iframe'] let l:wl += ['charset', 'os', 'num', 'expr', 'msg', 'std', 'ime', 'nav', 'img'] let l:wl += ['util', 'utils', 'param', 'params'] " Comment let l:wl += ['todo', 'fixme', 'fyi'] " Protocols let l:wl += ['ssh', 'http', 'https', 'tcp', 'udp', 'ftp', 'ftps', 'sftp', 'imap', 'scp'] " print let l:wl += ['printf', 'println', 'sprint', 'sprintf', 'sprintln', 'fprint', 'fprintf', 'fprintln'] " timezone let l:wl += ['gmt', 'utc'] " text encoding let l:wl += ['utf', 'euc', 'jis'] " Other let l:wl += ['referer', 'localhost', 'serializer', 'mutex', 'autoload', 'varchar', 'popup', 'header'] let l:wl += ['neo', 'fazzy'] " spelunker.vim option name let l:wl += ['backquoted'] " Don't you think it is terrible? let l:wl += ['don', 'doesn', 'didn', 'ain', 'isn', 'wasn', 'aren', 'weren'] let g:spelunker_white_list = l:wl 2 0.000000 endif FUNCTION coc#highlight#match_ranges() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/highlight.vim:554 Called 14 times Total time: 0.090927 Self time: 0.016625 count total (s) self (s) 14 0.000050 let winid = a:winid == 0 ? win_getid() : a:winid 14 0.000055 let bufnr = a:bufnr == 0 ? winbufnr(winid) : a:bufnr 14 0.000137 if empty(getwininfo(winid)) || (a:bufnr != 0 && winbufnr(a:winid) != a:bufnr) " not valid return [] 14 0.000006 endif 14 0.000019 if !s:clear_match_by_window let curr = win_getid() noa call win_gotoid(winid) 14 0.000006 endif 14 0.000018 let ids = [] 228 0.000151 for range in a:ranges 214 0.000164 let pos = [] 214 0.000250 let start = range['start'] 214 0.000213 let end = range['end'] 428 0.000607 for lnum in range(start['line'] + 1, end['line'] + 1) 214 0.000515 let arr = getbufline(bufnr, lnum) 214 0.000366 let line = empty(arr) ? '' : arr[0] 214 0.000217 if empty(line) continue 214 0.000068 endif 214 0.034231 0.001937 let colStart = lnum == start['line'] + 1 ? coc#string#byte_index(line, start['character']) + 1 : 1 214 0.044195 0.002187 let colEnd = lnum == end['line'] + 1 ? coc#string#byte_index(line, end['character']) + 1 : strlen(line) + 1 214 0.000180 if colStart == colEnd continue 214 0.000066 endif 214 0.000501 call add(pos, [lnum, colStart, colEnd - colStart]) 428 0.000157 endfor 214 0.000199 if !empty(pos) 214 0.000512 let opts = s:clear_match_by_window ? {'window': a:winid} : {} 214 0.000142 let i = 1 214 0.000189 let l = [] 428 0.000265 for p in pos 214 0.000236 call add(l, p) 214 0.000148 if i % 8 == 0 let id = matchaddpos(a:hlGroup, l, a:priority, -1, opts) call add(ids, id) let l = [] 214 0.000071 endif 214 0.000161 let i += 1 428 0.000160 endfor 214 0.000200 if !empty(l) 214 0.000670 let id = matchaddpos(a:hlGroup, l, a:priority, -1, opts) 214 0.000235 call add(ids, id) 214 0.000071 endif 214 0.000069 endif 228 0.000091 endfor 14 0.000014 if !s:clear_match_by_window noa call win_gotoid(curr) 14 0.000005 endif 14 0.000009 return ids FUNCTION airline#highlighter#get_highlight() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:68 Called 2185 times Total time: 0.201807 Self time: 0.101248 count total (s) self (s) " only check for the cterm reverse attribute " TODO: do we need to check all modes (gui, term, as well)? 2185 0.006562 let reverse = synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm') 2185 0.004551 if get(g:, 'airline_highlighting_cache', 0) && has_key(s:hl_groups, a:group) let res = s:hl_groups[a:group] return reverse ? [ res[1], res[0], res[3], res[2], res[4] ] : res 2185 0.000685 else 2185 0.037417 0.012629 let ctermfg = s:get_syn(a:group, 'fg', 'cterm') 2185 0.034623 0.011629 let ctermbg = s:get_syn(a:group, 'bg', 'cterm') 2185 0.034560 0.011657 let guifg = s:get_syn(a:group, 'fg', 'gui') 2185 0.034439 0.011805 let guibg = s:get_syn(a:group, 'bg', 'gui') 2185 0.004853 let bold = synIDattr(synIDtrans(hlID(a:group)), 'bold') 2185 0.001168 if reverse let res = s:get_array(guibg, guifg, ctermbg, ctermfg, bold ? ['bold'] : a:000) 2185 0.000679 else 2185 0.021995 0.014755 let res = s:get_array(guifg, guibg, ctermfg, ctermbg, bold ? ['bold'] : a:000) 2185 0.000714 endif 2185 0.000609 endif 2185 0.004314 let s:hl_groups[a:group] = res 2185 0.001089 return res FUNCTION airline#util#shorten() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:30 Called 74 times Total time: 0.001454 Self time: 0.001043 count total (s) self (s) 74 0.000940 0.000529 if airline#util#winwidth() < a:winwidth && len(split(a:text, '\zs')) > a:minwidth if get(a:000, 0, 0) " shorten from tail return '…'.matchstr(a:text, '.\{'.a:minwidth.'}$') else " shorten from beginning of string return matchstr(a:text, '^.\{'.a:minwidth.'}').'…' endif 74 0.000017 else 74 0.000058 return a:text endif FUNCTION 180_on_exit_clean() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:87 Called 1 time Total time: 0.000131 Self time: 0.000015 count total (s) self (s) 1 0.000002 let buf=self.buf 1 0.000123 0.000007 call s:set_clean_variables(self.file, self.vcs, !empty(buf)) 1 0.000003 if has_key(get(s:clean_jobs, self.vcs, {}), self.file) 1 0.000002 call remove(s:clean_jobs[self.vcs], self.file) 1 0.000000 endif FUNCTION go#util#ShowInfo() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:571 Called 3 times Total time: 0.000101 Self time: 0.000101 count total (s) self (s) 3 0.000005 if empty(a:info) 1 0.000000 return 2 0.000001 endif 2 0.000088 echo "vim-go: " | echohl Function | echon a:info | echohl None FUNCTION 192_requestComplete() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:546 Called 9 times Total time: 0.003772 Self time: 0.003643 count total (s) self (s) 9 0.000014 if self.statustype == '' 7 0.000004 return 2 0.000000 endif 2 0.000012 0.000008 if go#config#EchoCommandInfo() " redraw to avoid messages piling up 2 0.003547 redraw 2 0.000003 let prefix = '[' . self.statustype . '] ' 2 0.000001 if a:ok 2 0.000059 0.000009 call go#util#EchoSuccess(prefix . "SUCCESS") else call go#util#EchoError(prefix . "FAIL") 2 0.000000 endif 2 0.000000 endif 2 0.000004 let status = { 'desc': 'last status', 'type': self.statustype, 'state': "success", } 2 0.000001 if !a:ok let status.state = "failed" 2 0.000000 endif 2 0.000002 if has_key(self, 'started_at') 2 0.000007 let elapsed_time = reltimestr(reltime(self.started_at)) " strip whitespace 2 0.000011 let elapsed_time = substitute(elapsed_time, '^\s*\(.\{-}\)\s*$', '\1', '') 2 0.000003 let status.state .= printf(" (%ss)", elapsed_time) 2 0.000000 endif 2 0.000082 0.000008 call go#statusline#Update(self.jobdir, status) FUNCTION airline#highlighter#highlight_modified_inactive() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:205 Called 32 times Total time: 0.012126 Self time: 0.001255 count total (s) self (s) 32 0.000141 if getbufvar(a:bufnr, '&modified') 2 0.000016 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 : [] 30 0.000017 else 30 0.000314 let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive.airline_c') ? g:airline#themes#{g:airline_theme}#palette.inactive.airline_c : [] 32 0.000015 endif 32 0.000052 if !empty(colors) 32 0.011290 0.000419 call airline#highlighter#exec('airline_c'.(a:bufnr).'_inactive', colors) 32 0.000012 endif FUNCTION 155_GetHiCmd() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:140 Called 145 times Total time: 0.011068 Self time: 0.011068 count total (s) self (s) " a:list needs to have 5 items! 145 0.000130 let res = '' 145 0.000132 let i = -1 870 0.000572 while i < 4 725 0.000554 let i += 1 725 0.001081 let item = get(a:list, i, '') 725 0.000537 if item is '' 104 0.000048 continue 621 0.000200 endif 621 0.000382 if i == 0 145 0.000253 let res .= ' guifg='.item 476 0.000290 elseif i == 1 143 0.000195 let res .= ' guibg='.item 333 0.000174 elseif i == 2 145 0.000238 let res .= ' ctermfg='.item 188 0.000095 elseif i == 3 143 0.000233 let res .= ' ctermbg='.item 45 0.000024 elseif i == 4 45 0.000160 let res .= printf(' gui=%s cterm=%s term=%s', item, item, item) 621 0.000230 endif 766 0.000411 endwhile 145 0.000117 return res FUNCTION 181_GetNearbyTag() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:3187 Called 42 times Total time: 0.011458 Self time: 0.010200 count total (s) self (s) 42 0.000051 if s:nearby_disabled 2 0.000002 return {} 40 0.000012 endif 40 0.001390 0.000446 let fileinfo = tagbar#state#get_current_file(a:forcecurrent) 40 0.000047 if empty(fileinfo) return {} 40 0.000012 endif 40 0.000105 let curline = a:0 > 0 ? a:1 : line('.') 40 0.000063 let direction = a:0 > 1 ? a:2 : -1 40 0.000067 let ignore_curline = a:0 > 2 ? a:3 : 0 40 0.000077 let typeinfo = fileinfo.typeinfo 40 0.000049 let tag = {} 40 0.000038 if direction < 0 40 0.000038 let endline = 1 40 0.000038 let increment = -1 else let endline = line('$') let increment = 1 40 0.000013 endif " If a tag appears in a file more than once (for example namespaces in " C++) only one of them has a 'tline' entry and can thus be highlighted. " The only way to solve this would be to go over the whole tag list again, " making everything slower. Since this should be a rare occurence and " highlighting isn't /that/ important ignore it for now. 586 0.000685 for line in range(curline, endline, increment) 586 0.000847 if has_key(fileinfo.fline, line) 40 0.000079 let curtag = fileinfo.fline[line] 40 0.000804 0.000490 if a:request ==# 'nearest-stl' && typeinfo.getKind(curtag.fields.kind).stl 40 0.000053 let tag = curtag 40 0.000029 break elseif a:request ==# 'scoped-stl' && typeinfo.getKind(curtag.fields.kind).stl && curtag.fields.line <= curline && curline <= curtag.fields.end let tag = curtag break elseif a:request ==# 'nearest' || (line == curline && ignore_curline == 0) let tag = curtag break endif 546 0.000179 endif 586 0.000364 endfor 40 0.000032 return tag FUNCTION airline#extensions#branch#get_head() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:318 Called 62 times Total time: 0.032443 Self time: 0.002501 count total (s) self (s) 62 0.029612 0.001028 let head = airline#extensions#branch#head() 62 0.000491 0.000360 let winwidth = get(airline#parts#get('branch'), 'minwidth', 120) 62 0.000147 let minwidth = empty(get(b:, 'airline_hunks', '')) ? 14 : 7 62 0.001582 0.000355 let head = airline#util#shorten(head, winwidth, minwidth) 62 0.000200 let symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch) 62 0.000354 return empty(head) ? get(g:, 'airline#extensions#branch#empty_message', '') : printf('%s%s', empty(symbol) ? '' : symbol.(g:airline_symbols.space), head) FUNCTION 192_infoDefinitionHandler() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1141 Called 3 times Total time: 0.001529 Self time: 0.000207 count total (s) self (s) " gopls returns a []Location; just take the first one. 3 0.000012 if a:msg is v:null || len(a:msg) == 0 return 3 0.000001 endif 3 0.000005 let l:msg = a:msg[0] 3 0.000174 0.000053 let l:fname = go#path#FromURI(l:msg.uri) 3 0.000006 let l:line = l:msg.range.start.line 3 0.000004 let l:col = l:msg.range.start.character 3 0.000046 0.000015 let l:lsp = s:lspfactory.get() 3 0.000437 0.000030 let l:msg = go#lsp#message#Hover(l:fname, l:line, l:col) 3 0.000003 if a:showstatus let l:state = s:newHandlerState('info') 3 0.000002 else 3 0.000369 0.000024 let l:state = s:newHandlerState('') 3 0.000002 endif 3 0.000005 let l:state.handleResult = a:next 3 0.000007 let l:state.error = funcref('s:noop') 3 0.000437 0.000019 return l:lsp.sendMessage(l:msg, l:state) FUNCTION coc#rpc#notify() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/rpc.vim:186 Called 626 times Total time: 0.034628 Self time: 0.006588 count total (s) self (s) 626 0.004871 0.002365 if !coc#rpc#ready() return '' 626 0.000126 endif 626 0.028896 0.003362 call s:client['notify'](a:method, a:args) 626 0.000270 return '' FUNCTION go#config#BinPath() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:408 Called 276 times Total time: 0.000473 Self time: 0.000473 count total (s) self (s) 276 0.000393 return get(g:, "go_bin_path", "") FUNCTION 176_get_transitioned_separator() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:140 Called 96 times Total time: 0.037028 Self time: 0.002260 count total (s) self (s) 96 0.000069 let line = '' 96 0.000315 if get(a:self._context, 'tabline', 0) && get(g:, 'airline#extensions#tabline#alt_sep', 0) && a:group ==# 'airline_tabsel' && a:side call airline#highlighter#add_separator(a:prev_group, a:group, 0) let line .= '%#'.a:prev_group.'_to_'.a:group.'#' let line .= a:self._context.right_sep.'%#'.a:group.'#' 96 0.000026 else 96 0.035534 0.000766 call airline#highlighter#add_separator(a:prev_group, a:group, a:side) 96 0.000217 let line .= '%#'.a:prev_group.'_to_'.a:group.'#' 96 0.000206 let line .= a:side ? a:self._context.left_sep : a:self._context.right_sep 96 0.000132 let line .= '%#'.a:group.'#' 96 0.000026 endif 96 0.000056 return line FUNCTION 179_BlameCursorSync() Defined: ~/.vim/plugged/vim-fugitive/autoload/fugitive.vim:7288 Called 2 times Total time: 0.000003 Self time: 0.000003 count total (s) self (s) 2 0.000002 if a:line == line('.') 2 0.000001 return endif if get(s:TempState(), 'origin_bufnr') == a:bufnr || get(s:TempState(a:bufnr), 'origin_bufnr') == bufnr('') if &startofline execute a:line else let pos = getpos('.') let pos[1] = a:line call setpos('.', pos) endif endif FUNCTION 155_CheckDefined() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:108 Called 1131 times Total time: 0.015698 Self time: 0.015698 count total (s) self (s) " Checks, whether the definition of the colors is valid and is not empty or NONE " e.g. if the colors would expand to this: " hi airline_c ctermfg=NONE ctermbg=NONE " that means to clear that highlighting group, therefore, fallback to Normal " highlighting group for the cterm values " This only works, if the Normal highlighting group is actually defined, so " return early, if it has been cleared 1131 0.002306 if !exists("g:airline#highlighter#normal_fg_hi") let g:airline#highlighter#normal_fg_hi = synIDattr(synIDtrans(hlID('Normal')), 'fg', 'cterm') 1131 0.000358 endif 1131 0.002478 if empty(g:airline#highlighter#normal_fg_hi) || g:airline#highlighter#normal_fg_hi < 0 return a:colors 1131 0.000309 endif 1131 0.001352 for val in a:colors 1131 0.001690 if !empty(val) && val !=# 'NONE' 1131 0.000762 return a:colors endif endfor " this adds the bold attribute to the term argument of the :hi command, " but at least this makes sure, the group will be defined let fg = g:airline#highlighter#normal_fg_hi let bg = synIDattr(synIDtrans(hlID('Normal')), 'bg', 'cterm') if empty(bg) || bg < 0 " in case there is no background color defined for Normal let bg = a:colors[3] endif return a:colors[0:1] + [fg, bg] + [a:colors[4]] FUNCTION FugitiveParse() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:89 Called 10 times Total time: 0.000082 Self time: 0.000073 count total (s) self (s) 10 0.000048 0.000040 let path = s:Slash(a:0 ? a:1 : @%) 10 0.000023 if path !~# '^fugitive://' 10 0.000006 return ['', ''] endif let [rev, dir] = fugitive#Parse(path) if !empty(dir) return [rev, dir] endif throw 'fugitive: invalid Fugitive URL ' . path FUNCTION spelunker#toggle#is_enabled_global() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/toggle.vim:88 Called 18 times Total time: 0.000108 Self time: 0.000108 count total (s) self (s) 18 0.000060 if g:enable_spelunker_vim == 1 18 0.000020 return 1 endif return 0 FUNCTION coc#util#diagnostic_info() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:96 Called 6 times Total time: 0.000356 Self time: 0.000270 count total (s) self (s) 6 0.000129 0.000073 let checked = coc#util#check_refresh(a:bufnr) 6 0.000003 if !checked return v:null 6 0.000001 endif 6 0.000032 if a:checkInsert && mode() =~# '^i' return v:null 6 0.000001 endif 6 0.000005 let locationlist = '' 6 0.000004 let winid = -1 6 0.000029 for info in getwininfo() 6 0.000009 if info['bufnr'] == a:bufnr 6 0.000006 let winid = info['winid'] 6 0.000032 let locationlist = get(getloclist(winid, {'title': 1}), 'title', '') 6 0.000004 break endif 6 0.000004 endfor 6 0.000075 0.000045 return { 'bufnr': bufnr('%'), 'winid': winid, 'lnum': winid == -1 ? -1 : coc#window#get_cursor(winid)[0], 'locationlist': locationlist } FUNCTION 176_get_separator() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:155 Called 62 times Total time: 0.035067 Self time: 0.001081 count total (s) self (s) 62 0.011324 0.000484 if airline#builder#should_change_group(a:prev_group, a:group) 62 0.023719 0.000573 return s:get_transitioned_separator(a:self, a:prev_group, a:group, a:side) else return a:side ? a:self._context.left_alt_sep : a:self._context.right_alt_sep endif FUNCTION airline#util#prepend() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:65 Called 420 times Total time: 0.001735 Self time: 0.001735 count total (s) self (s) 420 0.000553 if a:minwidth > 0 && airline#util#winwidth() < a:minwidth return '' 420 0.000110 endif 420 0.000770 return empty(a:text) ? '' : a:text.s:spc.g:airline_right_alt_sep.s:spc FUNCTION FugitiveIsGitDir() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:317 Called 2 times Total time: 0.000063 Self time: 0.000063 count total (s) self (s) 2 0.000003 if !a:0 || type(a:1) !=# type('') return !empty(call('FugitiveGitDir', a:000)) 2 0.000000 endif 2 0.000008 let path = substitute(a:1, '[\/]$', '', '') . '/' 2 0.000050 return len(path) && getfsize(path.'HEAD') > 10 && ( isdirectory(path.'objects') && isdirectory(path.'refs') || getftype(path.'commondir') ==# 'file') FUNCTION airline#extensions#tabline#buflist#invalidate() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buflist.vim:6 Called 2 times Total time: 0.000003 Self time: 0.000003 count total (s) self (s) 2 0.000003 unlet! s:current_buffer_list FUNCTION 192_info() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1167 Called 3 times Total time: 0.000649 Self time: 0.000467 count total (s) self (s) 3 0.000010 if a:msg is v:null || !has_key(a:msg, 'contents') return 3 0.000001 endif 3 0.000070 let l:value = json_decode(a:msg.contents.value) 3 0.000005 let l:content = [l:value.singleLine] 3 0.000422 0.000340 let l:content = s:infoFromHoverContent(l:content) 3 0.000002 if a:show 3 0.000125 0.000024 call go#util#ShowInfo(l:content) 3 0.000002 endif 3 0.000003 return l:content FUNCTION airline#util#getbufvar() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:73 Called 36 times Total time: 0.000067 Self time: 0.000067 count total (s) self (s) 36 0.000061 return getbufvar(a:bufnr, a:key, a:def) FUNCTION spelunker#reduce_spell_setting() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker.vim:156 Called 2 times Total time: 0.000006 Self time: 0.000006 count total (s) self (s) 2 0.000002 if a:spell_setting != "spell" 2 0.000003 setlocal nospell 2 0.000000 endif FUNCTION gitgutter#utility#get_diff_base() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:213 Called 6 times Total time: 0.000499 Self time: 0.000499 count total (s) self (s) 6 0.000394 let p = resolve(expand('#'.a:bufnr.':p')) 6 0.000065 let ml = matchlist(p, '\v^fugitive:/.*/(\x{40,})/') 6 0.000015 if !empty(ml) && !empty(ml[1]) return ml[1].'^' 6 0.000003 endif 6 0.000009 return g:gitgutter_diff_base FUNCTION 155_exec_separator() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:189 Called 459 times Total time: 0.181610 Self time: 0.015702 count total (s) self (s) 459 0.000374 if pumvisible() return 459 0.000124 endif 459 0.000932 let group = a:from.'_to_'.a:to.a:suffix 459 0.047909 0.003449 let l:from = airline#themes#get_highlight(a:from.a:suffix) 459 0.046386 0.003350 let l:to = airline#themes#get_highlight(a:to.a:suffix) 459 0.000271 if a:inverse 145 0.000387 let colors = [ l:from[1], l:to[1], l:from[3], l:to[3] ] 314 0.000087 else 314 0.000785 let colors = [ l:to[1], l:from[1], l:to[3], l:from[3] ] 459 0.000125 endif 459 0.000935 let a:dict[group] = colors 459 0.081818 0.003407 call airline#highlighter#exec(group, colors) FUNCTION 178_reset_summary() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/hunk.vim:24 Called 6 times Total time: 0.000076 Self time: 0.000031 count total (s) self (s) 6 0.000075 0.000030 call gitgutter#utility#setbufvar(a:bufnr, 'summary', [0,0,0]) FUNCTION 179_ExpireStatus() Defined: ~/.vim/plugged/vim-fugitive/autoload/fugitive.vim:4285 Called 4 times Total time: 0.000058 Self time: 0.000058 count total (s) self (s) 4 0.000012 if a:bufnr is# -2 || a:bufnr is# 0 4 0.000021 let s:head_cache = {} 4 0.000015 let s:last_time = reltime() 4 0.000003 return '' endif let head_file = fugitive#Find('.git/HEAD', a:bufnr) if !empty(head_file) let s:last_times[s:Tree(a:bufnr) . '/'] = reltime() if has_key(s:head_cache, head_file) call remove(s:head_cache, head_file) endif endif return '' FUNCTION gitgutter#hunk#set_hunks() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/hunk.vim:5 Called 6 times Total time: 0.000230 Self time: 0.000090 count total (s) self (s) 6 0.000096 0.000033 call gitgutter#utility#setbufvar(a:bufnr, 'hunks', a:hunks) 6 0.000132 0.000056 call s:reset_summary(a:bufnr) FUNCTION 159_config_fugitive_branch() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:99 Called 62 times Total time: 0.012343 Self time: 0.000605 count total (s) self (s) 62 0.012078 0.000340 let s:vcs_config['git'].branch = FugitiveHead(s:sha1size) 62 0.000144 if s:vcs_config['git'].branch is# 'master' && airline#util#winwidth() < 81 " Shorten default a bit let s:vcs_config['git'].branch='mas' 62 0.000015 endif FUNCTION 163_check_mixed_indent_file() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/whitespace.vim:34 Called 4 times Total time: 0.000643 Self time: 0.000643 count total (s) self (s) 4 0.000015 let c_like_langs = get(g:, 'airline#extensions#c_like_langs', [ 'arduino', 'c', 'cpp', 'cuda', 'go', 'javascript', 'ld', 'php' ]) 4 0.000008 if index(c_like_langs, &ft) > -1 " for C-like languages: allow /** */ comment style with one space before the '*' 2 0.000002 let head_spc = '\v(^ +\*@!)' 2 0.000000 else 2 0.000001 let head_spc = '\v(^ +)' 4 0.000001 endif 4 0.000019 let indent_tabs = search('\v(^\t+)', 'nw') 4 0.000577 let indent_spc = search(head_spc, 'nw') 4 0.000004 if indent_tabs > 0 && indent_spc > 0 return printf("%d:%d", indent_tabs, indent_spc) 4 0.000001 else 4 0.000001 return '' endif FUNCTION coc#client#get_channel() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/client.vim:168 Called 626 times Total time: 0.001621 Self time: 0.001621 count total (s) self (s) 626 0.000366 if s:is_vim return a:client['channel'] 626 0.000131 endif 626 0.000468 return a:client['chan_id'] FUNCTION 159_display_git_branch() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:121 Called 10 times Total time: 0.000351 Self time: 0.000270 count total (s) self (s) 10 0.000012 let name = b:buffer_vcs_config['git'].branch 10 0.000004 try 10 0.000141 0.000059 let commit = matchstr(FugitiveParse()[0], '^\x\+') 10 0.000012 if has_key(s:names, commit) let name = get(s:names, commit)."(".name.")" 10 0.000008 elseif !empty(commit) if exists('*FugitiveExecute') let ref = FugitiveExecute(['describe', '--all', '--exact-match', commit], bufnr('')).stdout[0] else noautocmd let ref = fugitive#repo().git_chomp('describe', '--all', '--exact-match', commit) if ref =~# ':' let ref = '' endif endif if !empty(ref) let name = s:format_name(substitute(ref, '\v\C^%(heads/|remotes/|tags/)=','',''))."(".name.")" else let name = matchstr(commit, '.\{'.s:sha1size.'}')."(".name.")" endif 10 0.000002 endif catch 10 0.000004 endtry 10 0.000006 return name FUNCTION airline#util#exec_funcrefs() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:95 Called 22 times Total time: 0.014987 Self time: 0.001786 count total (s) self (s) 180 0.000106 for Fn in a:list 180 0.014609 0.001407 let code = call(Fn, a:000) 180 0.000087 if code != 0 22 0.000011 return code 158 0.000036 endif 158 0.000040 endfor return 0 FUNCTION 50_ExtraMappings() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:325 Called 4 times Total time: 0.000636 Self time: 0.000481 count total (s) self (s) " If pair is empty, delete both delimiters: 4 0.000011 inoremap delimitMateBS =delimitMate#BS() 4 0.000048 if !hasmapto('delimitMateBS','i') 4 0.000023 if empty(maparg('', 'i')) 4 0.000019 silent! imap delimitMateBS 4 0.000001 endif 4 0.000033 if empty(maparg('', 'i')) 4 0.000028 silent! imap delimitMateBS 4 0.000001 endif 4 0.000001 endif " If pair is empty, delete closing delimiter: 4 0.000014 inoremap delimitMateS-BS delimitMate#WithinEmptyPair() ? "\" : "\" 4 0.000054 if !hasmapto('delimitMateS-BS','i') && maparg('', 'i') == '' 4 0.000017 silent! imap delimitMateS-BS 4 0.000001 endif " Expand return if inside an empty pair: 4 0.000012 inoremap delimitMateCR TriggerAbb()."\=delimitMate#ExpandReturn()\" 4 0.000078 0.000020 if s:get('expand_cr', 0) && !hasmapto('delimitMateCR', 'i') && maparg('', 'i') == '' silent! imap delimitMateCR 4 0.000001 endif " Expand space if inside an empty pair: 4 0.000012 inoremap delimitMateSpace TriggerAbb()."\=delimitMate#ExpandSpace()\" 4 0.000061 0.000019 if s:get('expand_space', 0) && !hasmapto('delimitMateSpace', 'i') && maparg('', 'i') == '' silent! imap delimitMateSpace 4 0.000001 endif " Jump over any delimiter: 4 0.000011 inoremap delimitMateS-Tab TriggerAbb()."\=delimitMate#JumpAny()\" 4 0.000116 0.000061 if s:get('tab2exit', 0) && !hasmapto('delimitMateS-Tab', 'i') && maparg('', 'i') == '' silent! imap delimitMateS-Tab 4 0.000001 endif " Jump over next delimiters 4 0.000010 inoremap delimitMateJumpMany TriggerAbb()."\=delimitMate#JumpMany()\" 4 0.000060 if !hasmapto('delimitMateJumpMany', 'i') && maparg("g", 'i') == '' 4 0.000008 imap g delimitMateJumpMany 4 0.000001 endif FUNCTION go#config#AutoSameids() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:246 Called 4 times Total time: 0.000020 Self time: 0.000020 count total (s) self (s) 4 0.000016 return get(g:, 'go_auto_sameids', 0) FUNCTION 186_str() Defined: ~/.vim/plugged/tagbar/autoload/tagbar/prototypes/normaltag.vim:56 Called 26 times Total time: 0.000319 Self time: 0.000319 count total (s) self (s) 26 0.000033 if a:full && self.path !=# '' let str = self.path . self.typeinfo.sro . self.name 26 0.000008 else 26 0.000032 let str = self.name 26 0.000008 endif 26 0.000040 if has_key(self.fields, 'signature') 26 0.000017 if a:longsig let str .= self.fields.signature 26 0.000008 else 26 0.000035 let str .= '()' 26 0.000008 endif 26 0.000007 endif 26 0.000016 return str FUNCTION 151_invoke_funcrefs() Defined: ~/.vim/plugged/vim-airline/autoload/airline.vim:205 Called 22 times Total time: 0.099263 Self time: 0.000735 count total (s) self (s) 22 0.000502 0.000121 let builder = airline#builder#new(a:context) 22 0.015220 0.000233 let err = airline#util#exec_funcrefs(a:funcrefs + s:core_funcrefs, builder, a:context) 22 0.000014 if err == 1 22 0.083254 0.000092 let a:context.line = builder.build() 22 0.000077 let s:contexts[a:context.winnr] = a:context 22 0.000043 let option = get(g:, 'airline_statusline_ontop', 0) ? '&tabline' : '&statusline' 22 0.000131 call setwinvar(a:context.winnr, option, '%!airline#statusline('.a:context.winnr.')') 22 0.000005 endif FUNCTION spelunker#check_displayed_words() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker.vim:11 Called 16 times Total time: 0.002358 Self time: 0.000403 count total (s) self (s) 16 0.002154 0.000198 if s:is_runnable() == 0 call s:clear_matches() return 0 16 0.000009 endif 16 0.000065 if g:spelunker_check_type != g:spelunker_check_type_cursor_hold 16 0.000014 return 0 endif call spelunker#words#check_display_area() return 1 FUNCTION 97_winshell() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:67 Called 6 times Total time: 0.000042 Self time: 0.000042 count total (s) self (s) 6 0.000040 return &shell =~? 'cmd' || exists('+shellslash') && !&shellslash FUNCTION 80_LocalVimRCWritePersistent() Defined: ~/.vim/plugged/vim-localvimrc/plugin/localvimrc.vim:768 Called 2 times Total time: 0.000090 Self time: 0.000090 count total (s) self (s) 2 0.000001 if (s:localvimrc_persistent >= 1) " select only data relevant for persistence 2 0.000006 let l:persistent_data = filter(copy(s:localvimrc_data), 'v:val[0] =~# "^[YN]$" || v:val[1] =~# "^[YN]$"') " if there are answers to store and global variables are enabled for viminfo 2 0.000002 if (len(l:persistent_data) > 0) if l:persistent_data != s:localvimrc_persistent_data " check if persistence file is writable if filereadable(s:localvimrc_persistence_file) && filewritable(s:localvimrc_persistence_file) || !filereadable(s:localvimrc_persistence_file) && filewritable(fnamemodify(s:localvimrc_persistence_file, ":h")) let l:serialized = [ ] for [ l:key, l:value ] in items(l:persistent_data) if len(l:value) == 2 let [ l:answer, l:checksum ] = l:value let l:sandbox = "" elseif len(l:value) == 3 let [ l:answer, l:sandbox, l:checksum ] = l:value else let l:answer = "" let l:sandbox = "" let l:checksum = "" endif " delete none persisten answers if l:answer !~# "^[YN]$" let l:answer = "" endif if l:sandbox !~# "^[YN]$" let l:sandbox = "" endif call add(l:serialized, escape(l:key, '|') . "|" . escape(l:answer, '|') . "|" . escape(l:sandbox, '|') . "|" . escape(l:checksum, '|')) endfor call s:LocalVimRCDebug(3, "write persistent data: " . string(l:serialized)) " check if there is a exising persistence file if filereadable(s:localvimrc_persistence_file) " first write backup file to avoid lost persistence information " on write errors if partition is full. Done this way because " write/rename approach causes permission problems with sudo. let l:backup_name = s:localvimrc_persistence_file . "~" let l:backup_content = readfile(s:localvimrc_persistence_file, "b") if writefile(l:backup_content, l:backup_name, "b") == 0 if writefile(l:serialized, s:localvimrc_persistence_file) == 0 call delete(l:backup_name) else call s:LocalVimRCError("error while writing persistence file, backup stored in '" . l:backup_name . "'") endif else call s:LocalVimRCError("unable to write persistence file backup '" . l:backup_name . "'") endif else " there is no persistence file to backup, just write new one if writefile(l:serialized, s:localvimrc_persistence_file) != 0 call s:LocalVimRCError("unable to write persistence file '" . s:localvimrc_persistence_file . "'") endif endif else call s:LocalVimRCError("unable to write persistence file '" . s:localvimrc_persistence_file . "'") endif " store persistence file checksum let s:localvimrc_persistence_file_checksum = s:LocalVimRCCalcChecksum(s:localvimrc_persistence_file) endif let s:localvimrc_persistent_data = l:persistent_data 2 0.000000 endif else " delete persistence file if filewritable(s:localvimrc_persistence_file) call delete(s:localvimrc_persistence_file) endif 2 0.000000 endif " remove old persistence data 2 0.000002 if exists("g:LOCALVIMRC_ANSWERS") unlet g:LOCALVIMRC_ANSWERS 2 0.000000 endif 2 0.000002 if exists("g:LOCALVIMRC_CHECKSUMS") unlet g:LOCALVIMRC_CHECKSUMS 2 0.000000 endif FUNCTION 214_has_fresh_changes() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter.vim:177 Called 14 times Total time: 0.000397 Self time: 0.000225 count total (s) self (s) 14 0.000387 0.000214 return getbufvar(a:bufnr, 'changedtick') != gitgutter#utility#getbufvar(a:bufnr, 'tick') FUNCTION 192_start() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:582 Called 12 times Total time: 0.000163 Self time: 0.000076 count total (s) self (s) 12 0.000029 let self.started_at = reltime() 12 0.000017 if self.statustype == '' 10 0.000007 return 2 0.000000 endif 2 0.000004 let status = { 'desc': 'current status', 'type': self.statustype, 'state': "started", } 2 0.000095 0.000008 call go#statusline#Update(self.jobdir, status) FUNCTION 220_build_command() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/async.vim:43 Called 6 times Total time: 0.000022 Self time: 0.000022 count total (s) self (s) 6 0.000008 if has('unix') 6 0.000010 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 airline#extensions#vimtex#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/vimtex.vim:44 Called 14 times Total time: 0.000073 Self time: 0.000073 count total (s) self (s) 14 0.000020 if exists("b:vimtex") let w:airline_section_x = get(w:, 'airline_section_x', g:airline_section_x) let w:airline_section_x.=s:spc.g:airline_left_alt_sep.s:spc.'%{airline#extensions#vimtex#get_scope()}' 14 0.000004 endif FUNCTION spelunker#utils#filter_list_char_length() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/utils.vim:12 Called 4 times Total time: 0.001109 Self time: 0.001109 count total (s) self (s) 4 0.000003 let l:filtered_word_list = [] 566 0.000145 for word in a:word_list 562 0.000399 if strlen(word) < g:spelunker_target_min_char_len 186 0.000035 continue 376 0.000055 endif 376 0.000269 call add(l:filtered_word_list, word) 380 0.000059 endfor 4 0.000002 return l:filtered_word_list FUNCTION 92_Slash() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:502 Called 78 times Total time: 0.000072 Self time: 0.000072 count total (s) self (s) 78 0.000059 return a:path FUNCTION airline#util#try_focusgained() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:223 Called 4 times Total time: 0.000036 Self time: 0.000036 count total (s) self (s) " Ignore lasts for at most one second and is cleared on the first " focusgained. We use ignore to prevent system() calls from triggering " FocusGained (which occurs 100% on win32 and seem to sometimes occur under " tmux). 4 0.000017 let dt = localtime() - s:focusgained_ignore_time 4 0.000005 let s:focusgained_ignore_time = 0 4 0.000004 return dt >= 1 FUNCTION airline#themes#get_highlight() Defined: ~/.vim/plugged/vim-airline/autoload/airline/themes.vim:35 Called 918 times Total time: 0.087496 Self time: 0.008281 count total (s) self (s) 918 0.087310 0.008095 return call('airline#highlighter#get_highlight', [a:group] + a:000) FUNCTION 50_Unmap() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:183 Called 2 times Total time: 0.000636 Self time: 0.000505 count total (s) self (s) 2 0.000181 0.000057 let imaps = s:get('right_delims', []) + s:get('left_delims', []) + s:get('quotes_list', []) + s:get('apostrophes_list', []) + ['', '', '', '', '', '', '', ''] + ['', '', '', '', '', ''] + ['', ''] + ['', '', '', '', '', '', 'g'] 66 0.000018 for map in imaps 64 0.000294 if maparg(map, "i") =~# '^delimitMate' 26 0.000011 if map == '|' let map = '' 26 0.000004 endif 26 0.000038 exec 'silent! iunmap ' . map 64 0.000010 endif 66 0.000011 endfor 2 0.000011 0.000004 silent! doautocmd User delimitMate_unmap 2 0.000002 let b:delimitMate_enabled = 0 FUNCTION 169_map_keys() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buffers.vim:195 Called 34 times Total time: 0.010042 Self time: 0.010042 count total (s) self (s) 34 0.000146 let bidx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 1) 34 0.000039 if bidx_mode > 0 34 0.000034 if bidx_mode == 1 374 0.000658 for i in range(1, 10) 340 0.006478 exe printf('noremap AirlineSelectTab%d :call select_tab(%d)', i%10, i-1) 374 0.001289 endfor else let start_idx = bidx_mode == 2 ? 11 : 1 for i in range(start_idx, 99) exe printf('noremap AirlineSelectTab%02d :call select_tab(%d)', i, i-start_idx) endfor 34 0.000015 endif 34 0.000410 noremap AirlineSelectPrevTab :call jump_to_tab(-v:count1) 34 0.000393 noremap AirlineSelectNextTab :call jump_to_tab(v:count1) " Enable this for debugging " com! AirlineBufferList :echo map(copy(s:current_visible_buffers), {i,k -> k.": ".bufname(k)}) 34 0.000017 endif FUNCTION 79_ModelineOptions() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:182 Called 2 times Total time: 0.000083 Self time: 0.000062 count total (s) self (s) 2 0.000001 let options = {} 2 0.000006 if !&l:modeline && (&g:modeline || s:Capture('setlocal') =~# '\\\@' && s:Capture('verbose setglobal modeline?') !=# s:Capture('verbose setlocal modeline?')) return options 2 0.000000 endif 2 0.000004 let modelines = get(b:, 'sleuth_modelines', get(g:, 'sleuth_modelines', 5)) 2 0.000002 if line('$') > 2 * modelines let lnums = range(1, modelines) + range(line('$') - modelines + 1, line('$')) 2 0.000000 else 2 0.000003 let lnums = range(1, line('$')) 2 0.000000 endif 4 0.000002 for lnum in lnums 2 0.000047 0.000026 if s:ParseOptions(split(matchstr(getline(lnum), '\%(\S\@130_IndentLinesEnable() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:153 Called 4 times Total time: 0.000605 Self time: 0.000565 count total (s) self (s) 4 0.000002 if g:indentLine_newVersion 4 0.000006 if exists("b:indentLine_enabled") && b:indentLine_enabled == 0 return 4 0.000001 endif 4 0.000004 if !exists("w:indentLine_indentLineId") 2 0.000002 let w:indentLine_indentLineId = [] 4 0.000001 endif 4 0.000068 0.000028 call s:SetConcealOption() 4 0.000003 if g:indentLine_showFirstIndentLevel call add(w:indentLine_indentLineId, matchadd('Conceal', '^ ', 0, -1, {'conceal': g:indentLine_first_char})) 4 0.000001 endif 4 0.000010 let space = &l:shiftwidth == 0 ? &l:tabstop : &l:shiftwidth 4 0.000005 let n = len(g:indentLine_char_list) 4 0.000002 let level = 0 84 0.000038 for i in range(space+1, space * g:indentLine_indentLevel + 1, space) 80 0.000025 if n > 0 let char = g:indentLine_char_list[level % n] let level += 1 80 0.000015 else 80 0.000042 let char = g:indentLine_char 80 0.000015 endif 80 0.000236 call add(w:indentLine_indentLineId, matchadd('Conceal', '^\s\+\zs\%'.i.'v ', 0, -1, {'conceal': char})) 84 0.000018 endfor 4 0.000001 return endif if exists("b:indentLine_enabled") && b:indentLine_enabled return else let b:indentLine_enabled = 1 endif call s:SetConcealOption() let g:mysyntaxfile = g:indentLine_mysyntaxfile let space = &l:shiftwidth == 0 ? &l:tabstop : &l:shiftwidth if g:indentLine_showFirstIndentLevel execute 'syntax match IndentLine /^ / containedin=ALL conceal cchar=' . g:indentLine_first_char endif if g:indentLine_faster execute 'syntax match IndentLineSpace /^\s\+/ containedin=ALL contains=IndentLine' execute 'syntax match IndentLine / \{'.(space-1).'}\zs / contained conceal cchar=' . g:indentLine_char execute 'syntax match IndentLine /\t\zs / contained conceal cchar=' . g:indentLine_char else let pattern = line('$') < g:indentLine_maxLines ? 'v' : 'c' for i in range(space+1, space * g:indentLine_indentLevel + 1, space) execute 'syntax match IndentLine /\%(^\s\+\)\@<=\%'.i.pattern.' / containedin=ALL conceal cchar=' . g:indentLine_char endfor endif FUNCTION coc#float#check_related() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/float.vim:751 Called 16 times Total time: 0.004199 Self time: 0.002389 count total (s) self (s) 16 0.000050 let invalids = [] 16 0.003656 0.001846 let ids = coc#float#get_float_win_list(1) 16 0.000034 for id in ids let target = getwinvar(id, 'target_winid', 0) if target && index(ids, target) == -1 call add(invalids, id) endif 16 0.000020 endfor 16 0.000040 if s:is_vim && !s:popup_list_api let s:popup_list = filter(ids, "index(invalids, v:val) == -1") 16 0.000013 endif 16 0.000035 for id in invalids call coc#float#close(id) 16 0.000015 endfor FUNCTION go#path#CheckBinPath() Defined: ~/.vim/plugged/vim-go/autoload/go/path.vim:98 Called 276 times Total time: 0.055280 Self time: 0.044958 count total (s) self (s) " remove whitespaces if user applied something like 'goimports ' 276 0.001772 let binpath = substitute(a:binpath, '^\s*\(.\{-}\)\s*$', '\1', '') " save original path 276 0.001312 let old_path = $PATH " check if we have an appropriate bin_path 276 0.007649 0.001126 let go_bin_path = go#path#BinPath() 276 0.000206 if !empty(go_bin_path) " append our GOBIN and GOPATH paths and be sure they can be found there... " let us search in our GOBIN and GOPATH paths " respect the ordering specified by go_search_bin_path_first 276 0.002817 0.002474 if go#config#SearchBinPathFirst() 276 0.006534 0.004569 let $PATH = go_bin_path . go#util#PathListSep() . $PATH else let $PATH = $PATH . go#util#PathListSep() . go_bin_path 276 0.000057 endif 276 0.000053 endif " if it's in PATH just return it 276 0.019208 if executable(binpath) 276 0.000313 if exists('*exepath') 276 0.008141 let binpath = exepath(binpath) 276 0.000072 endif 276 0.002544 let $PATH = old_path 276 0.002935 0.001442 if go#util#IsUsingCygwinShell() == 1 return s:CygwinPath(binpath) 276 0.000056 endif 276 0.000127 return binpath endif " just get the basename let basename = fnamemodify(binpath, ":t") if !executable(basename) call go#util#EchoError(printf("could not find '%s'. Run :GoInstallBinaries to fix it", basename)) " restore back! let $PATH = old_path return "" endif let $PATH = old_path if go#util#IsUsingCygwinShell() == 1 return s:CygwinPath(a:binpath) endif return go_bin_path . go#util#PathSep() . basename FUNCTION 179_ReloadWinStatus() Defined: ~/.vim/plugged/vim-fugitive/autoload/fugitive.vim:4301 Called 4 times Total time: 0.000020 Self time: 0.000020 count total (s) self (s) 4 0.000016 if get(b:, 'fugitive_type', '') !=# 'index' || &modified 4 0.000002 return endif if !exists('b:fugitive_reltime') exe s:ReloadStatusBuffer() return endif let t = b:fugitive_reltime if reltimestr(reltime(s:last_time, t)) =~# '-\|\d\{10\}\.' || reltimestr(reltime(get(s:last_times, s:Tree() . '/', t), t)) =~# '-\|\d\{10\}\.' exe s:ReloadStatusBuffer() endif FUNCTION go#lsp#Info() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1102 Called 4 times Total time: 0.008694 Self time: 0.001197 count total (s) self (s) 4 0.000755 let l:fname = expand('%:p') 4 0.000700 0.000066 let [l:line, l:col] = go#lsp#lsp#Position() 4 0.004791 0.000071 call go#lsp#DidChange(l:fname) 4 0.000060 0.000019 let l:lsp = s:lspfactory.get() 4 0.000004 if a:showstatus let l:state = s:newHandlerState('info') 4 0.000002 else 4 0.000264 0.000031 let l:state = s:newHandlerState('') 4 0.000002 endif 4 0.000102 let l:state.handleResult = funcref('s:infoDefinitionHandler', [function('s:info', [1], l:state), a:showstatus], l:state) 4 0.000019 let l:state.error = funcref('s:noop') 4 0.000844 0.000054 let l:msg = go#lsp#message#Definition(l:fname, l:line, l:col) 4 0.001118 0.000039 return l:lsp.sendMessage(l:msg, l:state) FUNCTION 215_handler() Defined: ~/.vim/plugged/vim-go/autoload/go/auto.vim:129 Called 4 times Total time: 0.009908 Self time: 0.000486 count total (s) self (s) 4 0.000211 0.000129 if go#config#AutoTypeInfo() 4 0.009375 0.000053 call go#tool#Info(0) 4 0.000002 endif 4 0.000286 0.000266 if go#config#AutoSameids() call go#sameids#SameIds(0) 4 0.000002 endif 4 0.000008 let s:timer_id = 0 FUNCTION go#util#IsUsingCygwinShell() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:56 Called 276 times Total time: 0.001492 Self time: 0.001114 count total (s) self (s) 276 0.001441 0.001063 return go#util#IsWin() && executable('cygpath') && &shell =~ '.*sh.*' FUNCTION 1_LoadFTPlugin() Defined: /opt/homebrew/Cellar/neovim/0.9.0/share/nvim/runtime/ftplugin.vim:14 Called 2 times Total time: 0.005224 Self time: 0.005057 count total (s) self (s) 2 0.000002 if exists("b:undo_ftplugin") exe b:undo_ftplugin unlet! b:undo_ftplugin b:did_ftplugin 2 0.000000 endif 2 0.000002 let s = expand("") 2 0.000001 if s != "" 2 0.000005 if &cpo =~# "S" && exists("b:did_ftplugin") " In compatible mode options are reset to the global values, need to " set the local values also when a plugin was already used. unlet b:did_ftplugin 2 0.000000 endif " When there is a dot it is used to separate filetype names. Thus for " "aaa.bbb" load "aaa" and then "bbb". 4 0.000004 for name in split(s, '\.') 2 0.002927 0.002760 exe 'runtime! ftplugin/' . name . '.vim ftplugin/' . name . '_*.vim ftplugin/' . name . '/*.vim' " Load lua ftplugins 2 0.002268 exe printf('runtime! ftplugin/%s.lua ftplugin/%s_*.lua ftplugin/%s/*.lua', name, name, name) 4 0.000002 endfor 2 0.000001 endif FUNCTION 97_exists_file() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:240 Called 20 times Total time: 0.007173 Self time: 0.001445 count total (s) self (s) 20 0.007158 0.001430 return filereadable(s:abs_path(a:bufnr, 0)) FUNCTION 180_set_clean_variables() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:67 Called 1 time Total time: 0.000116 Self time: 0.000116 count total (s) self (s) 1 0.000024 let var=getbufvar(fnameescape(a:file), 'buffer_vcs_config', {}) 1 0.000069 if has_key(var, a:vcs) && has_key(var[a:vcs], 'dirty') && type(getbufvar(fnameescape(a:file), 'buffer_vcs_config')) == type({}) 1 0.000002 let var[a:vcs].dirty=a:val 1 0.000000 try 1 0.000019 call setbufvar(fnameescape(a:file), 'buffer_vcs_config', var) 1 0.000001 unlet! b:airline_head catch 1 0.000000 endtry 1 0.000000 endif FUNCTION airline#extensions#coc#get() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/coc.vim:17 Called 28 times Total time: 0.000242 Self time: 0.000242 count total (s) self (s) 28 0.000073 if !exists(':CocCommand') | return '' | endif 28 0.000032 let is_err = (a:type is# 'error') 28 0.000054 let info = get(b:, 'coc_diagnostic_info', {}) 28 0.000035 if empty(info) | return '' | endif 10 0.000015 let cnt = get(info, a:type, 0) 10 0.000012 if empty(cnt) | return '' | endif let error_symbol = get(g:, 'airline#extensions#coc#error_symbol', 'E:') let warning_symbol = get(g:, 'airline#extensions#coc#warning_symbol', 'W:') let error_format = get(g:, 'airline#extensions#coc#stl_format_err', '%C(L%L)') let warning_format = get(g:, 'airline#extensions#coc#stl_format_warn', '%C(L%L)') " replace %C with error count and %L with line number return (is_err ? error_symbol : warning_symbol) . substitute(substitute(is_err ? error_format : warning_format, '%C', cnt, 'g'), '%L', (info.lnums)[is_err ? 0 : 1], 'g') FUNCTION go#util#Shelljoin() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:300 Called 276 times Total time: 0.016733 Self time: 0.015587 count total (s) self (s) " Preserve original shell. This needs to be kept in sync with how s:system " sets shell. 276 0.000247 let l:shell = &shell 276 0.000068 try 276 0.008366 0.008062 if !go#util#IsWin() && executable('/bin/sh') 276 0.001200 0.000858 set shell=/bin/sh 276 0.000061 endif 276 0.001181 0.000863 if go#util#IsWin() if executable($COMSPEC) let &shell = $COMSPEC endif 276 0.000050 endif 276 0.000230 let ssl_save = &shellslash 276 0.000153 set noshellslash 276 0.000122 if a:0 return join(map(copy(a:arglist), 'shellescape(v:val, ' . a:1 . ')'), ' ') 276 0.000046 endif 276 0.002633 return join(map(copy(a:arglist), 'shellescape(v:val)'), ' ') 276 0.000106 finally " Restore original values 276 0.000295 let &shellslash = ssl_save 276 0.000566 0.000384 let &shell = l:shell 276 0.000089 endtry FUNCTION go#util#Chdir() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:733 Called 552 times Total time: 0.065101 Self time: 0.032568 count total (s) self (s) 552 0.000923 if !exists('*chdir') let l:olddir = getcwd() let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd' execute printf('%s %s', cd, fnameescape(a:dir)) return l:olddir 552 0.000132 endif 552 0.061746 0.029213 return chdir(a:dir) FUNCTION airline#extensions#tabline#buflist#list() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buflist.vim:39 Called 46 times Total time: 0.000383 Self time: 0.000341 count total (s) self (s) 46 0.000144 if exists('s:current_buffer_list') 44 0.000045 return s:current_buffer_list 2 0.000000 endif 2 0.000004 let exclude_buffers = get(g:, 'airline#extensions#tabline#exclude_buffers', []) 2 0.000003 let exclude_paths = get(g:, 'airline#extensions#tabline#excludes', []) 2 0.000003 let exclude_preview = get(g:, 'airline#extensions#tabline#exclude_preview', 1) 2 0.000005 let list = (exists('g:did_bufmru') && g:did_bufmru) ? BufMRUList() : range(1, bufnr("$")) 2 0.000001 let buffers = [] " If this is too slow, we can switch to a different algorithm. " Basically branch 535 already does it, but since it relies on " BufAdd autocommand, I'd like to avoid this if possible. 6 0.000003 for nr in list 4 0.000003 if buflisted(nr) " Do not add to the bufferlist, if either " 1) bufnr is exclude_buffers list " 2) buffername matches one of exclude_paths patterns " 3) buffer is a quickfix buffer " 4) when excluding preview windows: " 'bufhidden' == wipe " 'buftype' == nofile " 5) ignore buffers matching airline#extensions#tabline#ignore_bufadd_pat " check buffer numbers first 2 0.000002 if index(exclude_buffers, nr) >= 0 continue " check paths second 2 0.000004 elseif !empty(exclude_paths) && s:ExcludePaths(nr, exclude_paths) continue " ignore buffers matching airline#extensions#tabline#ignore_bufadd_pat 2 0.000038 0.000009 elseif airline#util#ignore_buf(bufname(nr)) continue " check other types last 2 0.000038 0.000025 elseif s:ExcludeOther(nr, exclude_preview) continue 2 0.000000 endif 2 0.000003 call add(buffers, nr) 4 0.000001 endif 6 0.000002 endfor 2 0.000002 let s:current_buffer_list = buffers 2 0.000001 return buffers FUNCTION 195_encode() Defined: ~/.vim/plugged/vim-go/autoload/go/uri.vim:17 Called 12 times Total time: 0.000239 Self time: 0.000239 count total (s) self (s) 12 0.000230 return substitute( a:value, a:unreserved, '\=s:encodechar(submatch(0))', 'g') FUNCTION 2_LoadIndent() Defined: /opt/homebrew/Cellar/neovim/0.9.0/share/nvim/runtime/indent.vim:13 Called 2 times Total time: 0.000771 Self time: 0.000771 count total (s) self (s) 2 0.000002 if exists("b:undo_indent") exe b:undo_indent unlet! b:undo_indent b:did_indent 2 0.000000 endif 2 0.000002 let s = expand("") 2 0.000001 if s != "" 2 0.000001 if exists("b:did_indent") unlet b:did_indent 2 0.000000 endif " When there is a dot it is used to separate filetype names. Thus for " "aaa.bbb" load "indent/aaa.vim" and then "indent/bbb.vim". 4 0.000004 for name in split(s, '\.') 2 0.000410 exe 'runtime! indent/' . name . '.vim' 2 0.000340 exe 'runtime! indent/' . name . '.lua' 4 0.000001 endfor 2 0.000000 endif FUNCTION coc#util#get_editoroption() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:387 Called 2 times Total time: 0.000056 Self time: 0.000033 count total (s) self (s) 2 0.000013 let info = get(getwininfo(a:winid), 0, v:null) 2 0.000031 0.000009 if empty(info) || coc#window#is_float(a:winid) return v:null 2 0.000000 endif 2 0.000002 let bufnr = info['bufnr'] 2 0.000003 let buftype = getbufvar(bufnr, '&buftype') " avoid window for other purpose. 2 0.000002 if buftype !=# '' && buftype !=# 'acwrite' 2 0.000001 return v:null endif let tabSize = getbufvar(bufnr, '&shiftwidth') if tabSize == 0 let tabSize = getbufvar(bufnr, '&tabstop') endif return { 'bufnr': bufnr, 'winid': a:winid, 'tabpageid': coc#util#tabnr_id(info['tabnr']), 'winnr': winnr(), 'visibleRanges': s:visible_ranges(a:winid), 'tabSize': tabSize, 'insertSpaces': getbufvar(bufnr, '&expandtab') ? v:true : v:false } FUNCTION airline#extensions#po#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/po.vim:64 Called 14 times Total time: 0.000069 Self time: 0.000069 count total (s) self (s) 14 0.000020 if &ft ==# 'po' call airline#extensions#prepend_to_section('z', '%{airline#extensions#po#stats()}') " Also reset the cache variable, if a window has been split, e.g. the winwidth changed autocmd airline BufWritePost * call s:autocmd_handler() autocmd airline WinEnter * call airline#extensions#po#on_winenter() 14 0.000003 endif FUNCTION spelunker#get_buffer#filter_email() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/get_buffer.vim:66 Called 2 times Total time: 0.000003 Self time: 0.000003 count total (s) self (s) 2 0.000002 if g:spelunker_disable_email_checking == 0 2 0.000001 return a:text endif " FYI: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address " memo: single quote ' -> '' return substitute(a:text, '[a-zA-Z0-9.!#$%&''*+\/=?^_`{|}~-]\+@[a-zA-Z0-9]\([a-zA-Z0-9-]\{0,61}[a-zA-Z0-9]\)\?\(\.[a-zA-Z0-9]\([a-zA-Z0-9-]\{0,61}[a-zA-Z0-9]\)\?\)*', '', 'g') FUNCTION go#util#PathListSep() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:14 Called 276 times Total time: 0.001965 Self time: 0.001206 count total (s) self (s) 276 0.001602 0.000844 if go#util#IsWin() return ";" 276 0.000048 endif 276 0.000093 return ":" FUNCTION 87_AsyncRequest() Defined: ~/.vim/plugged/coc.nvim/plugin/coc.vim:141 Called 16 times Total time: 0.004793 Self time: 0.001259 count total (s) self (s) 16 0.000434 let Cb = empty(a:args)? v:null : a:args[len(a:args) - 1] 16 0.000147 if type(Cb) == 2 if !coc#rpc#ready() call Cb('service not started', v:null) else call coc#rpc#request_async(a:name, a:args[0:-2], Cb) endif return '' 16 0.000018 endif 16 0.003789 0.000255 call coc#rpc#notify(a:name, a:args) 16 0.000018 return '' FUNCTION airline#util#ignore_buf() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:138 Called 2 times Total time: 0.000029 Self time: 0.000029 count total (s) self (s) 2 0.000007 let pat = '\c\v'. get(g:, 'airline#ignore_bufadd_pat', ''). get(g:, 'airline#extensions#tabline#ignore_bufadd_pat', '!|defx|gundo|nerd_tree|startify|tagbar|term://|undotree|vimfiler') 2 0.000021 return match(a:name, pat) > -1 FUNCTION go#util#ExecInDir() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:245 Called 276 times Total time: 15.510566 Self time: 0.009508 count total (s) self (s) 276 0.007559 let l:wd = expand('%:p:h') 276 15.502935 0.001877 return call('go#util#ExecInWorkDir', [a:cmd, l:wd] + a:000) FUNCTION 87_Autocmd() Defined: ~/.vim/plugged/coc.nvim/plugin/coc.vim:276 Called 610 times Total time: 0.035210 Self time: 0.004116 count total (s) self (s) 610 0.001073 if !get(g:, 'coc_workspace_initialized', 0) return 610 0.000137 endif 610 0.033521 0.002427 call coc#rpc#notify('CocAutocmd', a:000) FUNCTION airline#util#winwidth() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:19 Called 504 times Total time: 0.002791 Self time: 0.002791 count total (s) self (s) 504 0.000678 let nr = get(a:000, 0, 0) " When statusline is on top, or using global statusline for Neovim " always return the number of columns 504 0.000809 if get(g:, 'airline_statusline_ontop', 0) || &laststatus > 2 return &columns 504 0.000141 else 504 0.000483 return winwidth(nr) endif FUNCTION 192_newHandlerState() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:527 Called 12 times Total time: 0.000813 Self time: 0.000813 count total (s) self (s) 12 0.000646 let l:state = { 'winid': win_getid(winnr()), 'statustype': a:statustype, 'jobdir': getcwd(), 'handleResult': funcref('s:noop'), } " explicitly bind requestComplete to state so that within it, self will " always refer to state. See :help Partial for more information. 12 0.000065 let l:state.requestComplete = funcref('s:requestComplete', [], l:state) " explicitly bind start to state so that within it, self will " always refer to state. See :help Partial for more information. 12 0.000044 let l:state.start = funcref('s:start', [], l:state) 12 0.000011 return l:state FUNCTION 176_get_accented_line() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:163 Called 130 times Total time: 0.003109 Self time: 0.003109 count total (s) self (s) 130 0.000097 if a:self._context.active " active window 98 0.000077 let contents = [] 98 0.000347 let content_parts = split(a:contents, '__accent') 228 0.000155 for cpart in content_parts 130 0.000434 let accent = matchstr(cpart, '_\zs[^#]*\ze') 130 0.000147 call add(contents, cpart) 228 0.000080 endfor 98 0.000189 let line = join(contents, a:group) 98 0.000350 let line = substitute(line, '__restore__', a:group, 'g') 32 0.000007 else " inactive window 32 0.000226 let line = substitute(a:contents, '%#__accent[^#]*#', '', 'g') 32 0.000101 let line = substitute(line, '%#__restore__#', '', 'g') 130 0.000034 endif 130 0.000070 return line FUNCTION 306() Defined: ~/.vim/plugged/tagbar/autoload/tagbar/state.vim:32 Called 56 times Total time: 0.000562 Self time: 0.000475 count total (s) self (s) 56 0.000461 0.000374 if !tagbar#is_paused() || a:force_current 56 0.000075 return self._current else return self._paused endif FUNCTION 80_LocalVimRC() Defined: ~/.vim/plugged/vim-localvimrc/plugin/localvimrc.vim:242 Called 2 times Total time: 0.001210 Self time: 0.000998 count total (s) self (s) " begin marker 2 0.000027 0.000020 call s:LocalVimRCDebug(1, "== START LocalVimRC() ============================") " finish immediately if localvimrc is disabled 2 0.000002 if s:localvimrc_enable == 0 call s:LocalVimRCDebug(1, "== END LocalVimRC() (disabled) ===================") return 2 0.000000 endif " finish immediately if we are being called recursively 2 0.000001 if s:localvimrc_running == 1 call s:LocalVimRCDebug(1, "== END LocalVimRC() (already running) ============") return 2 0.000000 endif 2 0.000039 0.000031 call s:LocalVimRCDebug(1, "running for file \"" . fnameescape(expand("%:p")) . "\"") " read persistent information 2 0.000088 0.000009 call s:LocalVimRCReadPersistent() " only consider normal buffers (skip especially CommandT's GoToFile buffer) " NOTE: in general the buftype is not set for new buffers (BufWinEnter), " e.g. for help files via plugins (pydoc) 2 0.000002 if !empty(&buftype) call s:LocalVimRCDebug(1, "not a normal buffer, exiting") return 2 0.000000 endif " directory of current file (correctly escaped) 2 0.000025 let l:directory = fnameescape(expand("%:p:h")) 2 0.000002 if empty(l:directory) let l:directory = fnameescape(getcwd()) 2 0.000000 endif 2 0.000028 0.000021 call s:LocalVimRCDebug(2, "searching directory \"" . l:directory . "\"") " check if the local vimrc file shall be searched just in the files " directory or in the whole tree 2 0.000001 if s:localvimrc_file_directory_only == 1 let l:search_option = "" 2 0.000000 else 2 0.000002 let l:search_option = ";" 2 0.000000 endif " generate a list of all local vimrc files with absolute file names along path to root 2 0.000001 let l:rcfiles = [] 4 0.000003 for l:rcname in s:localvimrc_name 2 0.000500 for l:rcfile in findfile(l:rcname, l:directory . l:search_option, -1) let l:rcfile_unresolved = fnamemodify(l:rcfile, ":p") let l:rcfile_resolved = resolve(l:rcfile_unresolved) call insert(l:rcfiles, { "resolved": l:rcfile_resolved, "unresolved": l:rcfile_unresolved } ) 2 0.000001 endfor 4 0.000001 endfor 2 0.000017 0.000010 call s:LocalVimRCDebug(1, "found files: " . string(l:rcfiles)) " shrink list of found files 2 0.000003 if (s:localvimrc_count >= 0 && s:localvimrc_count < len(l:rcfiles)) call remove(l:rcfiles, 0, len(l:rcfiles) - s:localvimrc_count - 1) 2 0.000000 endif " reverse order of found files if reverse loading is requested 2 0.000001 if (s:localvimrc_reverse != 0) call reverse(l:rcfiles) 2 0.000000 endif 2 0.000015 0.000008 call s:LocalVimRCDebug(1, "candidate files: " . string(l:rcfiles)) " source all found local vimrc files in l:rcfiles variable 2 0.000001 let s:localvimrc_finish = 0 2 0.000001 let l:answer = "" 2 0.000001 let l:sandbox_answer = "" 2 0.000001 let l:sourced_files = [] 2 0.000001 for l:rcfile_dict in l:rcfiles " get values from dictionary let l:rcfile = l:rcfile_dict["resolved"] let l:rcfile_unresolved = l:rcfile_dict["unresolved"] call s:LocalVimRCDebug(2, "processing \"" . l:rcfile . "\"") let l:rcfile_load = "unknown" if filereadable(l:rcfile) " extract information if has_key(s:localvimrc_data, l:rcfile) if len(s:localvimrc_data[l:rcfile]) == 2 let [ l:stored_answer, l:stored_checksum ] = s:localvimrc_data[l:rcfile] let l:stored_sandbox_answer = "" elseif len(s:localvimrc_data[l:rcfile]) == 3 let [ l:stored_answer, l:stored_sandbox_answer, l:stored_checksum ] = s:localvimrc_data[l:rcfile] else let l:stored_answer = "" let l:stored_sandbox_answer = "" let l:stored_checksum = "" endif else let l:stored_answer = "" let l:stored_sandbox_answer = "" let l:stored_checksum = "" endif call s:LocalVimRCDebug(3, "stored information: answer = '" . l:stored_answer . "' sandbox answer = '" . l:stored_sandbox_answer . "' checksum = '" . l:stored_checksum . "'") " check if checksum is the same let l:checksum_is_same = s:LocalVimRCCheckChecksum(l:rcfile, l:stored_checksum) " reset answers if checksum changed if (!l:checksum_is_same) call s:LocalVimRCDebug(2, "checksum mismatch, not reusing answer") let l:stored_answer = "" let l:stored_sandbox_answer = "" else call s:LocalVimRCDebug(2, "reuse previous answer = '" . l:stored_answer . "' sandbox answer = '" . l:stored_sandbox_answer . "'") endif " check if whitelisted if (l:rcfile_load == "unknown") if s:LocalVimRCMatchAny(l:rcfile, s:localvimrc_whitelist) call s:LocalVimRCDebug(2, l:rcfile . " is whitelisted") let l:rcfile_load = "yes" endif endif " check if blacklisted if (l:rcfile_load == "unknown") if s:LocalVimRCMatchAny(l:rcfile, s:localvimrc_blacklist) call s:LocalVimRCDebug(2, l:rcfile . " is blacklisted") let l:rcfile_load = "no" endif endif " check if an answer has been given for the same file if !empty(l:stored_answer) " check the answer if (l:stored_answer =~? '^y$') let l:rcfile_load = "yes" elseif (l:stored_answer =~? '^n$') let l:rcfile_load = "no" endif endif " ask if in interactive mode if (l:rcfile_load == "unknown") if (s:localvimrc_ask == 1) if (l:answer !~? "^a$") call s:LocalVimRCDebug(2, "need to ask") let l:answer = "" let l:message = "" while (l:answer !~? '^[ynaq]$') if (s:localvimrc_persistent == 0) let l:message .= "localvimrc: source " . l:rcfile . "? ([y]es/[n]o/[a]ll/[s]how/[q]uit) " elseif (s:localvimrc_persistent == 1) let l:message .= "localvimrc: source " . l:rcfile . "? ([y]es/[n]o/[a]ll/[s]how/[q]uit ; persistent [Y]es/[N]o/[A]ll) " else let l:message .= "localvimrc: source " . l:rcfile . "? ([y]es/[n]o/[a]ll/[s]how/[q]uit) " endif " turn off possible previous :silent command to force this " message to be printed unsilent let l:answer = inputdialog(l:message) call s:LocalVimRCDebug(2, "answer is \"" . l:answer . "\"") if empty(l:answer) call s:LocalVimRCDebug(2, "aborting on empty answer") let l:answer = "q" endif " add the content of the file for repeating the question let l:message = "" if (l:answer =~? "^s$") let l:message .= "localvimrc: >>>>>>>> start content of " . l:rcfile . "\n" let l:content_max = 10 let l:content = readfile(l:rcfile, "", l:content_max + 1) for l:line in l:content let l:message .= "localvimrc: " . l:line . "\n" endfor if len(l:content) > l:content_max let l:message .= "localvimrc: ======== TRUNCATED AFTER " . l:content_max . " LINES!\n" endif let l:message .= "localvimrc: <<<<<<<< end content of " . l:rcfile . "\n" endif endwhile endif " make answer upper case if persistence is 2 ("force") if (s:localvimrc_persistent == 2) let l:answer = toupper(l:answer) endif " store y/n answers if (l:answer =~? "^y$") let l:stored_answer = l:answer elseif (l:answer =~? "^n$") let l:stored_answer = l:answer elseif (l:answer =~# "^a$") let l:stored_answer = "y" elseif (l:answer =~# "^A$") let l:stored_answer = "Y" endif " check the answer if (l:answer =~? '^[ya]$') let l:rcfile_load = "yes" elseif (l:answer =~? "^q$") call s:LocalVimRCDebug(1, "ended processing files") break endif endif endif " load unconditionally if in non-interactive mode if (l:rcfile_load == "unknown") if (s:localvimrc_ask == 0) let l:rcfile_load = "yes" endif endif " should this rc file be loaded? if (l:rcfile_load == "yes") " store name and directory of file let g:localvimrc_file = resolve(expand(":p")) let g:localvimrc_file_dir = fnamemodify(g:localvimrc_file, ":h") call s:LocalVimRCDebug(3, "g:localvimrc_file = " . g:localvimrc_file . ", g:localvimrc_file_dir = " . g:localvimrc_file_dir) " store name and directory of script let g:localvimrc_script = l:rcfile let g:localvimrc_script_dir = fnamemodify(g:localvimrc_script, ":h") call s:LocalVimRCDebug(3, "g:localvimrc_script = " . g:localvimrc_script . ", g:localvimrc_script_dir = " . g:localvimrc_script_dir) " store name and directory of unresolved script let g:localvimrc_script_unresolved = l:rcfile_unresolved let g:localvimrc_script_dir_unresolved = fnamemodify(g:localvimrc_script_unresolved, ":h") call s:LocalVimRCDebug(3, "g:localvimrc_script_unresolved = " . g:localvimrc_script_unresolved . ", g:localvimrc_script_dir_unresolved = " . g:localvimrc_script_dir_unresolved) " reset if checksum changed if (!l:checksum_is_same) if has_key(s:localvimrc_sourced, l:rcfile) unlet s:localvimrc_sourced[l:rcfile] call s:LocalVimRCDebug(2, "resetting 'sourced' information") endif endif " detect if this local vimrc file had been loaded let g:localvimrc_sourced_once = 0 let g:localvimrc_sourced_once_for_file = 0 if has_key(s:localvimrc_sourced, l:rcfile) let g:localvimrc_sourced_once = 1 if index(s:localvimrc_sourced[l:rcfile], g:localvimrc_file) >= 0 let g:localvimrc_sourced_once_for_file = 1 else call add(s:localvimrc_sourced[l:rcfile], g:localvimrc_file) endif else let s:localvimrc_sourced[l:rcfile] = [ g:localvimrc_file ] endif call s:LocalVimRCDebug(3, "g:localvimrc_sourced_once = " . g:localvimrc_sourced_once . ", g:localvimrc_sourced_once_for_file = " . g:localvimrc_sourced_once_for_file) " emit an autocommand before sourcing if (s:localvimrc_autocmd == 1) call s:LocalVimRCUserAutocommand('LocalVimRCPre') endif " add 'sandbox' if requested if (s:localvimrc_sandbox != 0) call s:LocalVimRCDebug(2, "using sandbox") try " execute the command call s:LocalVimRCSourceScript(l:rcfile, 1) catch /^sandbox$/ let l:message = "localvimrc: unable to use sandbox for \"" . l:rcfile . "\"." call s:LocalVimRCDebug(1, l:message) if (s:localvimrc_ask == 1) if (l:sandbox_answer !~? "^a$") if l:stored_sandbox_answer != "" let l:sandbox_answer = l:stored_sandbox_answer call s:LocalVimRCDebug(2, "reuse previous sandbox answer \"" . l:stored_sandbox_answer . "\"") else call s:LocalVimRCDebug(2, "need to ask") let l:sandbox_answer = "" while (l:sandbox_answer !~? '^[ynaq]$') if (s:localvimrc_persistent == 0) let l:message .= "\nlocalvimrc: Source it anyway? ([y]es/[n]o/[a]ll/[q]uit) " elseif (s:localvimrc_persistent == 1) let l:message .= "\nlocalvimrc: Source it anyway? ([y]es/[n]o/[a]ll/[q]uit ; persistent [Y]es/[N]o/[A]ll) " else let l:message .= "\nlocalvimrc: Source it anyway? ([y]es/[n]o/[a]ll/[q]uit) " endif " turn off possible previous :silent command to force this " message to be printed unsilent let l:sandbox_answer = inputdialog("\n" . l:message) call s:LocalVimRCDebug(2, "sandbox answer is \"" . l:sandbox_answer . "\"") if empty(l:sandbox_answer) call s:LocalVimRCDebug(2, "aborting on empty sandbox answer") let l:sandbox_answer = "q" endif endwhile endif endif " make sandbox_answer upper case if persistence is 2 ("force") if (s:localvimrc_persistent == 2) let l:sandbox_answer = toupper(l:sandbox_answer) endif " store y/n answers if (l:sandbox_answer =~? "^y$") let l:stored_sandbox_answer = l:sandbox_answer elseif (l:sandbox_answer =~? "^n$") let l:stored_sandbox_answer = l:sandbox_answer elseif (l:sandbox_answer =~# "^a$") let l:stored_sandbox_answer = "y" elseif (l:sandbox_answer =~# "^A$") let l:stored_sandbox_answer = "Y" endif " check the sandbox_answer if (l:sandbox_answer =~? '^[ya]$') " execute the command call s:LocalVimRCSourceScript(l:rcfile, 0) elseif (l:sandbox_answer =~? "^q$") call s:LocalVimRCDebug(1, "ended processing files") break endif endif endtry else " execute the command call s:LocalVimRCSourceScript(l:rcfile, 0) endif " emit an autocommands after sourcing if (s:localvimrc_autocmd == 1) call s:LocalVimRCUserAutocommand('LocalVimRCPost') endif call add(l:sourced_files, l:rcfile) " remove global variables again unlet g:localvimrc_file unlet g:localvimrc_file_dir unlet g:localvimrc_script unlet g:localvimrc_script_dir unlet g:localvimrc_script_unresolved unlet g:localvimrc_script_dir_unresolved unlet g:localvimrc_sourced_once unlet g:localvimrc_sourced_once_for_file else call s:LocalVimRCDebug(1, "skipping " . l:rcfile) endif " calculate checksum for each processed file let l:stored_checksum = s:LocalVimRCCalcChecksum(l:rcfile) " store information again let s:localvimrc_data[l:rcfile] = [ l:stored_answer, l:stored_sandbox_answer, l:stored_checksum ] " check if sourcing of files should be ended by variable set by " local vimrc file if (s:localvimrc_finish != 0) break endif endif 2 0.000006 endfor " store information about source local vimrc files in buffer local variable 2 0.000002 if exists("b:localvimrc_sourced_files") call extend(l:sourced_files, b:localvimrc_sourced_files) 2 0.000000 endif 2 0.000002 if exists("*uniq") 2 0.000002 call uniq(sort(l:sourced_files)) else let l:sourced_files_uniq = {} for l:file in l:sourced_files let l:sourced_files_uniq[l:file] = 1 endfor let l:sourced_files = sort(keys(l:sourced_files_uniq)) 2 0.000000 endif 2 0.000002 let b:localvimrc_sourced_files = l:sourced_files " make information persistent 2 0.000100 0.000010 call s:LocalVimRCWritePersistent() " end marker 2 0.000015 0.000007 call s:LocalVimRCDebug(1, "== END LocalVimRC() ==============================") FUNCTION go#util#env() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:73 Called 276 times Total time: 0.001186 Self time: 0.001186 count total (s) self (s) 276 0.000399 let l:key = tolower(a:key) 276 0.000452 if has_key(s:env_cache, l:key) 276 0.000240 return s:env_cache[l:key] endif if executable('go') let l:var = call('go#util#'.l:key, []) if go#util#ShellError() != 0 call go#util#EchoError(printf("'go env %s' failed", toupper(l:key))) return '' endif else let l:var = eval("$".toupper(a:key)) endif let s:env_cache[l:key] = l:var return l:var FUNCTION coc#string#character_index() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/string.vim:8 Called 16 times Total time: 0.001627 Self time: 0.001627 count total (s) self (s) 16 0.000045 if a:byteIdx <= 0 2 0.000001 return 0 14 0.000014 endif 14 0.000021 let i = 0 312 0.000641 for char in split(strpart(a:line, 0, a:byteIdx), '\zs') 298 0.000578 let i += char2nr(char) > 65535 ? 2 : 1 312 0.000185 endfor 14 0.000015 return i FUNCTION 148_flush_exe() Defined: ~/.vim/plugged/vim-css-color/autoload/css_color.vim:84 Called 10 times Total time: 0.000043 Self time: 0.000043 count total (s) self (s) 10 0.000038 if len(s:exe) | exe join( remove( s:exe, 0, -1 ), ' | ' ) | endif FUNCTION 208_get_newline_character() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/get_buffer.vim:53 Called 2 times Total time: 0.000006 Self time: 0.000006 count total (s) self (s) 2 0.000006 return has('win32') || has('win64') ? "\r": "\n" FUNCTION 79_Init() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:586 Called 4 times Total time: 0.001680 Self time: 0.000150 count total (s) self (s) 4 0.000005 if !a:redetect && exists('b:sleuth.defaults') 2 0.000001 let detected = b:sleuth 4 0.000001 endif 4 0.000002 unlet! b:sleuth 4 0.000014 if &l:buftype !~# '^\%(nowrite\|nofile\|acwrite\)\=$' return s:Warn(':Sleuth disabled for buftype=' . &l:buftype, a:silent) 4 0.000001 endif 4 0.000003 if &l:filetype ==# 'netrw' return s:Warn(':Sleuth disabled for filetype=' . &l:filetype, a:silent) 4 0.000001 endif 4 0.000001 if &l:binary return s:Warn(':Sleuth disabled for binary files', a:silent) 4 0.000001 endif 4 0.000003 if !exists('detected') 2 0.000794 0.000008 let detected = s:DetectDeclared() 4 0.000001 endif 4 0.000002 let setfiletype = '' 4 0.000005 if a:do_filetype && has_key(detected.declared, 'filetype') let filetype = detected.declared.filetype[0] if filetype !=# &l:filetype || empty(filetype) let setfiletype = 'setlocal filetype=' . filetype else let setfiletype = 'setfiletype ' . filetype endif 4 0.000001 endif 4 0.000003 exe setfiletype 4 0.000487 0.000017 call s:DetectHeuristics(detected) 4 0.000300 0.000026 let cmd = s:Apply(detected, (a:do_filetype ? ['filetype'] : []) + (a:unsafe ? s:all_options : s:safe_options), a:silent) 4 0.000003 let b:sleuth = detected 4 0.000004 if exists('s:polyglot') && !a:silent call s:Warn('Charlatan :Sleuth implementation in vim-polyglot has been found and disabled.') call s:Warn('To get rid of this message, uninstall vim-polyglot, or disable the') call s:Warn('corresponding feature in your vimrc:') call s:Warn(' let g:polyglot_disabled = ["autoindent"]') 4 0.000001 endif 4 0.000002 return cmd FUNCTION 181_TagbarBufName() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:3687 Called 32 times Total time: 0.000279 Self time: 0.000279 count total (s) self (s) 32 0.000099 if !exists('t:tagbar_buf_name') let s:buffer_seqno += 1 let t:tagbar_buf_name = '__Tagbar__.' . s:buffer_seqno 32 0.000014 endif 32 0.000039 return t:tagbar_buf_name FUNCTION go#lsp#message#DidChange() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp/message.vim:177 Called 3 times Total time: 0.000359 Self time: 0.000078 count total (s) self (s) 3 0.000356 0.000075 return { 'notification': 1, 'method': 'textDocument/didChange', 'params': { 'textDocument': { 'uri': go#path#ToURI(a:file), 'version': a:version, }, 'contentChanges': [ { 'text': a:content, } ] } } FUNCTION go#util#ClearHighlights() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:606 Called 6 times Total time: 0.001079 Self time: 0.000154 count total (s) self (s) 6 0.000008 if has('textprop') " the property type may not exist when syntax highlighting is not enabled. if empty(prop_type_get(a:group)) return endif if !has('patch-8.1.1035') return prop_remove({'type': a:group, 'all': 1}, 1, line('$')) endif return prop_remove({'type': a:group, 'all': 1}) 6 0.000001 endif 6 0.000006 if exists("*matchaddpos") 6 0.001028 0.000103 return s:clear_group_from_matches(a:group) endif FUNCTION go#util#Exec() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:223 Called 276 times Total time: 15.430301 Self time: 0.006237 count total (s) self (s) 276 0.000303 if len(a:cmd) == 0 call go#util#EchoError("go#util#Exec() called with empty a:cmd") return ['', 1] 276 0.000052 endif 276 0.000242 let l:bin = a:cmd[0] " Lookup the full path, respecting settings such as 'go_bin_path'. On errors, " CheckBinPath will show a warning for us. 276 0.057691 0.002411 let l:bin = go#path#CheckBinPath(l:bin) 276 0.000160 if empty(l:bin) return ['', 1] 276 0.000046 endif " Finally execute the command using the full, resolved path. Do not pass the " unmodified command as the correct program might not exist in $PATH. 276 15.370837 0.002053 return call('s:exec', [[l:bin] + a:cmd[1:]] + a:000) FUNCTION airline#extensions#default#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/default.vim:79 Called 22 times Total time: 0.010474 Self time: 0.001036 count total (s) self (s) 22 0.000026 let winnr = a:context.winnr 22 0.000019 let active = a:context.active 22 0.000200 0.000153 if airline#util#getwinvar(winnr, 'airline_render_left', active || (!active && !g:airline_inactive_collapse)) 14 0.002353 0.000089 call s:build_sections(a:builder, a:context, s:layout[0]) 8 0.000003 else 8 0.000492 0.000111 let text = !empty(s:get_section(winnr, 'c')) ? s:get_section(winnr, 'c') : ' %f%m ' 8 0.000056 0.000033 call a:builder.add_section('airline_c'.(a:context.bufnr), text) 22 0.000006 endif 22 0.000679 0.000184 call a:builder.split(s:get_section(winnr, 'gutter', '', '')) 22 0.000161 0.000125 if airline#util#getwinvar(winnr, 'airline_render_right', 1) 22 0.006331 0.000140 call s:build_sections(a:builder, a:context, s:layout[1]) 22 0.000006 endif 22 0.000011 return 1 FUNCTION 97_not_git_dir() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:58 Called 18 times Total time: 0.012824 Self time: 0.000490 count total (s) self (s) 18 0.012810 0.000475 return s:dir(a:bufnr) !~ '[/\\]\.git\($\|[/\\]\)' FUNCTION coc#util#bufsize() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:498 Called 2 times Total time: 0.000007 Self time: 0.000007 count total (s) self (s) 2 0.000002 if bufnr('%') == a:bufnr 2 0.000004 return line2byte(line("$") + 1) endif let bufname = bufname(a:bufnr) if !getbufvar(a:bufnr, '&modified') && filereadable(bufname) return getfsize(bufname) endif return strlen(join(getbufline(a:bufnr, 1, '$'), '\n')) FUNCTION 106_clear_group_from_matches() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:623 Called 6 times Total time: 0.000925 Self time: 0.000925 count total (s) self (s) 6 0.000004 let l:cleared = 0 6 0.000162 let m = getmatches() 396 0.000094 for item in m 390 0.000211 if item['group'] == a:group call matchdelete(item['id']) let l:cleared = 1 390 0.000058 endif 396 0.000065 endfor 6 0.000003 return l:cleared FUNCTION spelunker#get_current_spell_setting() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker.vim:163 Called 2 times Total time: 0.000022 Self time: 0.000022 count total (s) self (s) 2 0.000003 redir => spell_setting_capture 2 0.000006 silent execute "setlocal spell?" 2 0.000002 redir END " ex) ' spell' -> 'spell' 2 0.000009 return substitute(l:spell_setting_capture, '\v(\n|\s)\C', '', 'g') FUNCTION 192_noop() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:524 Called 1 time Total time: 0.000000 Self time: 0.000000 count total (s) self (s) FUNCTION airline#extensions#tabline#formatters#unique_tail_improved#format() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim:8 Called 40 times Total time: 0.010033 Self time: 0.000793 count total (s) self (s) 40 0.000107 if len(a:buffers) <= 1 " don't need to compare bufnames if has less than one buffer opened 40 0.009897 0.000656 return airline#extensions#tabline#formatters#default#format(a:bufnr, a:buffers) endif let curbuf_tail = fnamemodify(bufname(a:bufnr), ':t') let do_deduplicate = 0 let path_tokens = {} for nr in a:buffers let name = bufname(nr) if !empty(name) && nr != a:bufnr && fnamemodify(name, ':t') == curbuf_tail " only perform actions if curbuf_tail isn't unique let do_deduplicate = 1 let tokens = reverse(split(substitute(fnamemodify(name, ':p:h'), '\\', '/', 'g'), '/')) let token_index = 0 for token in tokens if token == '' | continue | endif if token == '.' | break | endif if !has_key(path_tokens, token_index) let path_tokens[token_index] = {} endif let path_tokens[token_index][token] = 1 let token_index += 1 endfor endif endfor if do_deduplicate == 1 let path = [] let token_index = 0 for token in reverse(split(substitute(fnamemodify(bufname(a:bufnr), ':p:h'), '\\', '/', 'g'), '/')) if token == '.' | break | endif let duplicated = 0 let uniq = 1 let single = 1 if has_key(path_tokens, token_index) let duplicated = 1 if len(keys(path_tokens[token_index])) > 1 | let single = 0 | endif if has_key(path_tokens[token_index], token) | let uniq = 0 | endif endif call insert(path, {'token': token, 'duplicated': duplicated, 'uniq': uniq, 'single': single}) let token_index += 1 endfor let buf_name = [curbuf_tail] let has_uniq = 0 let has_skipped = 0 for token1 in reverse(path) if !token1['duplicated'] && len(buf_name) > 1 call insert(buf_name, s:skip_symbol) let has_skipped = 0 break endif if has_uniq == 1 call insert(buf_name, s:skip_symbol) let has_skipped = 0 break endif if token1['uniq'] == 0 && token1['single'] == 1 let has_skipped = 1 else if has_skipped == 1 call insert(buf_name, s:skip_symbol) let has_skipped = 0 endif call insert(buf_name, token1['token']) endif if token1['uniq'] == 1 let has_uniq = 1 endif endfor if has_skipped == 1 call insert(buf_name, s:skip_symbol) endif return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, join(buf_name, '/')) else return airline#extensions#tabline#formatters#default#format(a:bufnr, a:buffers) endif FUNCTION CocActionAsync() Defined: ~/.vim/plugged/coc.nvim/plugin/coc.vim:106 Called 16 times Total time: 0.005441 Self time: 0.000648 count total (s) self (s) 16 0.005374 0.000581 return s:AsyncRequest(a:name, a:000) FUNCTION 155_get_array() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:60 Called 2185 times Total time: 0.007241 Self time: 0.007241 count total (s) self (s) 2185 0.006766 return [ a:guifg, a:guibg, a:ctermfg, a:ctermbg, empty(a:opts) ? '' : join(a:opts, ',') ] FUNCTION airline#extensions#tagbar#inactive_apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tagbar.vim:23 Called 8 times Total time: 0.000022 Self time: 0.000022 count total (s) self (s) 8 0.000013 if getwinvar(a:2.winnr, '&filetype') == 'tagbar' return -1 8 0.000002 endif FUNCTION 194_position() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp/message.vim:425 Called 9 times Total time: 0.000039 Self time: 0.000039 count total (s) self (s) 9 0.000030 return {'line': a:line, 'character': a:col} FUNCTION airline#util#wrap() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:44 Called 248 times Total time: 0.001856 Self time: 0.001281 count total (s) self (s) 248 0.001471 0.000896 if a:minwidth > 0 && airline#util#winwidth() < a:minwidth return '' 248 0.000061 endif 248 0.000141 return a:text FUNCTION gitgutter#debug#log() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/debug.vim:70 Called 12 times Total time: 0.000307 Self time: 0.000307 count total (s) self (s) 12 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('')[:-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 12 0.000004 endif FUNCTION 50_option_init() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:31 Called 92 times Total time: 0.001704 Self time: 0.000745 count total (s) self (s) 92 0.000072 let opt_name = "delimitMate_" . a:name " Find value to use. 92 0.000126 if !has_key(b:, opt_name) && !has_key(g:, opt_name) 92 0.000048 let value = a:default elseif has_key(b:, opt_name) let value = b:[opt_name] else let value = g:[opt_name] 92 0.000015 endif 92 0.001261 0.000302 call s:set(a:name, value) FUNCTION 312() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:133 Called 47 times Total time: 0.012476 Self time: 0.000977 count total (s) self (s) 47 0.000090 let self.buf .= a:data 47 0.003108 0.000242 let [self.buf, l:messages] = self.readMessage(self.buf) 62 0.000056 for l:message in l:messages 15 0.000021 if has_key(l:message, 'method') 6 0.000004 if has_key(l:message, 'id') call self.handleRequest(l:message) 6 0.000002 else 6 0.002154 0.000012 call self.handleNotification(l:message) 6 0.000001 endif 9 0.000020 elseif has_key(l:message, 'result') || has_key(l:message, 'error') 9 0.006527 0.000035 call self.handleResponse(l:message) 15 0.000004 endif 62 0.000041 endfor FUNCTION 24_SynSet() Defined: /opt/homebrew/Cellar/neovim/0.9.0/share/nvim/runtime/syntax/synload.vim:26 Called 2 times Total time: 0.001907 Self time: 0.001859 count total (s) self (s) " clear syntax for :set syntax=OFF and any syntax name that doesn't exist 2 0.000004 syn clear 2 0.000002 if exists("b:current_syntax") unlet b:current_syntax 2 0.000000 endif 2 0.000002 0verbose let s = expand("") 2 0.000001 if s == "ON" " :set syntax=ON if &filetype == "" echohl ErrorMsg echo "filetype unknown" echohl None endif let s = &filetype 2 0.000001 elseif s == "OFF" let s = "" 2 0.000000 endif 2 0.000001 if s != "" " Load the syntax file(s). When there are several, separated by dots, " load each in sequence. Skip empty entries. 4 0.000004 for name in split(s, '\.') 2 0.000001 if !empty(name) 2 0.001056 0.001009 exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim" 2 0.000816 exe "runtime! syntax/" . name . ".lua syntax/" . name . "/*.lua" 2 0.000000 endif 4 0.000001 endfor 2 0.000000 endif FUNCTION airline#util#getwinvar() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:84 Called 318 times Total time: 0.000576 Self time: 0.000576 count total (s) self (s) 318 0.000524 return getwinvar(a:winnr, a:key, a:def) FUNCTION spelunker#words#check() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/words.vim:139 Called 2 times Total time: 0.002249 Self time: 0.000038 count total (s) self (s) 2 0.000014 0.000009 call spelunker#cases#reset_case_counter() 2 0.000124 0.000009 let l:window_text_list = spelunker#get_buffer#all() 2 0.002027 0.000011 let l:spell_bad_list = spelunker#spellbad#get_spell_bad_list(l:window_text_list) 2 0.000084 0.000008 call spelunker#words#highlight(l:spell_bad_list) FUNCTION 79_DetectHeuristics() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:506 Called 4 times Total time: 0.000470 Self time: 0.000290 count total (s) self (s) 4 0.000003 let detected = a:into 4 0.000008 let filetype = split(&l:filetype, '\.', 1)[0] 4 0.000005 if get(detected, 'filetype', '*') ==# filetype return detected 4 0.000001 endif 4 0.000003 let detected.filetype = filetype 4 0.000004 let options = copy(detected.declared) 4 0.000003 let detected.options = options 4 0.000003 let detected.heuristics = {} 4 0.000003 if has_key(detected, 'patterns') call remove(detected, 'patterns') 4 0.000001 endif 4 0.000046 0.000016 let detected.defaults = s:UserOptions(filetype, 'defaults') 4 0.000018 if empty(filetype) || !get(b:, 'sleuth_automatic', 1) || empty(get(b:, 'sleuth_heuristics', get(g:, 'sleuth_' . filetype . '_heuristics', get(g:, 'sleuth_heuristics', 1)))) 2 0.000001 return detected 2 0.000000 endif 2 0.000009 0.000005 if s:Ready(detected) return detected 2 0.000000 endif 2 0.000002 let lines = getline(1, 1024) 2 0.000150 0.000008 call s:Guess(detected.bufname, detected, lines) 2 0.000008 0.000005 if s:Ready(detected) return detected 2 0.000004 elseif get(options, 'shiftwidth', [4])[0] < 4 && stridx(join(lines, "\n"), "\t") == -1 let options.expandtab = [1, detected.bufname] return detected 2 0.000000 endif 2 0.000004 let dir = len(detected.path) ? fnamemodify(detected.path, ':h') : '' 2 0.000046 0.000044 let root = len(detected.root) ? fnamemodify(detected.root, ':h') : dir ==# s:Slash(expand('~')) ? dir : fnamemodify(dir, ':h') 2 0.000019 if detected.bufname =~# '^\a\a\+:' || root ==# '.' || !isdirectory(root) let dir = '' 2 0.000000 endif 2 0.000004 let c = get(b:, 'sleuth_neighbor_limit', get(g:, 'sleuth_neighbor_limit', 8)) 2 0.000002 if c <= 0 || empty(dir) let detected.patterns = [] 2 0.000003 elseif type(get(b:, 'sleuth_globs')) == type([]) let detected.patterns = b:sleuth_globs 2 0.000004 elseif type(get(g:, 'sleuth_' . detected.filetype . '_globs')) == type([]) let detected.patterns = get(g:, 'sleuth_' . detected.filetype . '_globs') 2 0.000000 else 2 0.000025 let detected.patterns = ['*' . matchstr(detected.bufname, '/\@ 0 && dir !~# '^$\|^//[^/]*$' && dir !=# fnamemodify(dir, ':h') 2 0.000001 for pattern in detected.patterns for neighbor in split(glob(dir.'/'.pattern), "\n")[0:7] if neighbor !=# detected.path && filereadable(neighbor) call s:Guess(neighbor, detected, readfile(neighbor, '', 256)) let c -= 1 endif if s:Ready(detected) return detected endif if c <= 0 break endif endfor if c <= 0 break endif 2 0.000000 endfor 2 0.000002 if len(dir) <= len(root) 2 0.000000 break endif let dir = fnamemodify(dir, ':h') 2 0.000001 endwhile 2 0.000002 if !has_key(options, 'shiftwidth') 2 0.000002 let detected.options = copy(detected.declared) 2 0.000000 endif 2 0.000001 return detected FUNCTION 222_save_last_seen_change() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/diff.vim:439 Called 6 times Total time: 0.000075 Self time: 0.000033 count total (s) self (s) 6 0.000074 0.000031 call gitgutter#utility#setbufvar(a:bufnr, 'tick', getbufvar(a:bufnr, 'changedtick')) FUNCTION 220_on_stdout_nvim() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/async.vim:56 Called 6 times Total time: 0.000067 Self time: 0.000067 count total (s) self (s) 6 0.000024 if empty(self.stdoutbuffer) 6 0.000011 let self.stdoutbuffer = a:data else let self.stdoutbuffer = self.stdoutbuffer[:-2] + [self.stdoutbuffer[-1] . a:data[0]] + a:data[1:] 6 0.000002 endif FUNCTION spelunker#get_buffer#filter_acronym() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/get_buffer.vim:86 Called 2 times Total time: 0.000002 Self time: 0.000002 count total (s) self (s) 2 0.000002 if g:spelunker_disable_acronym_checking == 0 2 0.000001 return a:text endif return substitute(a:text, '\v[A-Z]+[a-z]@!\C', '', 'g') FUNCTION 180_valid_dir() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:50 Called 4 times Total time: 0.000027 Self time: 0.000027 count total (s) self (s) 4 0.000021 if empty(a:dir) || !isdirectory(a:dir) return getcwd() 4 0.000001 endif 4 0.000002 return a:dir FUNCTION 163_ws_refresh() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/whitespace.vim:186 Called 16 times Total time: 0.037321 Self time: 0.000302 count total (s) self (s) 16 0.000058 if !exists('#airline') " airline disabled return 16 0.000009 endif 16 0.000067 if get(b:, 'airline_ws_changedtick', 0) == b:changedtick 12 0.000009 return 4 0.000002 endif 4 0.000010 unlet! b:airline_whitespace_check 4 0.000009 if get(g:, 'airline_skip_empty_sections', 0) 4 0.037095 0.000077 exe ':AirlineRefresh!' 4 0.000001 endif 4 0.000005 let b:airline_ws_changedtick = b:changedtick FUNCTION 192_highlightMatches() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1522 Called 3 times Total time: 0.001359 Self time: 0.000255 count total (s) self (s) " set buffer variables for errors and warnings to zero values 3 0.000017 let b:go_diagnostic_matches = {'errors': [], 'warnings': []} 3 0.000010 if hlexists('goDiagnosticError') " clear the old matches just before adding the new ones to keep flicker " to a minimum and clear before checking the level so that if the user " changed the level since the last highlighting, the highlighting will be " be properly cleared. 3 0.000617 0.000030 call go#util#ClearHighlights('goDiagnosticError') 3 0.000023 0.000009 if go#config#DiagnosticsLevel() >= 2 let b:go_diagnostic_matches.errors = copy(a:errorMatches) if go#config#HighlightDiagnosticErrors() call go#util#HighlightPositions('goDiagnosticError', a:errorMatches) endif 3 0.000001 endif 3 0.000001 endif 3 0.000004 if hlexists('goDiagnosticWarning') " clear the old matches just before adding the new ones to keep flicker " to a minimum and clear before checking the level so that if the user " changed the level since the last highlighting, the highlighting will be " be properly cleared. 3 0.000513 0.000021 call go#util#ClearHighlights('goDiagnosticWarning') 3 0.000019 0.000008 if go#config#DiagnosticsLevel() >= 2 let b:go_diagnostic_matches.warnings = copy(a:warningMatches) if go#config#HighlightDiagnosticWarnings() call go#util#HighlightPositions('goDiagnosticWarning', a:warningMatches) endif 3 0.000001 endif 3 0.000001 endif " re-apply matches at the time the buffer is displayed in a new window or " redisplayed in an existing window: e.g. :edit, 3 0.000005 augroup vim-go-diagnostics 3 0.000093 autocmd! * 3 0.000007 autocmd BufDelete autocmd! vim-go-diagnostics * 3 0.000003 if has('textprop') autocmd BufReadPost nested call s:highlightMatches(b:go_diagnostic_matches.errors, b:go_diagnostic_matches.warnings) 3 0.000001 else 3 0.000005 autocmd BufWinEnter nested call s:highlightMatches(b:go_diagnostic_matches.errors, b:go_diagnostic_matches.warnings) 3 0.000001 endif 3 0.000001 augroup end FUNCTION 181_ShrinkIfExpanded() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:1136 Called 2 times Total time: 0.000005 Self time: 0.000005 count total (s) self (s) 2 0.000003 if !s:window_expanded || &filetype ==# 'tagbar' || s:expand_bufnr == -1 2 0.000001 return endif let tablist = [] for i in range(tabpagenr('$')) call extend(tablist, tabpagebuflist(i + 1)) endfor if index(tablist, s:expand_bufnr) == -1 let &columns -= g:tagbar_width + 1 let s:window_expanded = 0 let s:expand_bufnr = -1 " Only restore window position if it is available and if the " window hasn't been moved manually after the expanding if getwinposx() != -1 && getwinposx() == s:window_pos.post.x && getwinposy() == s:window_pos.post.y execute 'winpos ' . s:window_pos.pre.x . ' ' . s:window_pos.pre.y endif endif " The window sizes may have changed due to the shrinking happening after " the window closing, so equalize them again. if &equalalways wincmd = endif FUNCTION coc#highlight#clear_match_group() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/highlight.vim:609 Called 21 times Total time: 0.007414 Self time: 0.007414 count total (s) self (s) 21 0.000154 let winid = a:winid == 0 ? win_getid() : a:winid 21 0.000219 if empty(getwininfo(winid)) " not valid return 21 0.000015 endif 21 0.000044 if s:clear_match_by_window 21 0.005590 let arr = filter(getmatches(winid), 'v:val["group"] =~# "'.a:match.'"') 236 0.000163 for item in arr 215 0.000413 call matchdelete(item['id'], winid) 236 0.000100 endfor else let curr = win_getid() let switch = exists('*nvim_set_current_win') && curr != winid if switch noa call nvim_set_current_win(a:winid) endif if win_getid() == winid let arr = filter(getmatches(), 'v:val["group"] =~# "'.a:match.'"') for item in arr call matchdelete(item['id']) endfor endif if switch noa call nvim_set_current_win(curr) endif 21 0.000008 endif FUNCTION gitgutter#all() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter.vim:3 Called 4 times Total time: 0.016573 Self time: 0.000866 count total (s) self (s) 4 0.000015 let visible = tabpagebuflist() 16 0.000035 for bufnr in range(1, bufnr('$') + 1) 12 0.000025 if buflisted(bufnr) 4 0.000600 let file = expand('#'.bufnr.':p') 4 0.000010 if !empty(file) 4 0.000012 if index(visible, bufnr) != -1 4 0.015750 0.000043 call gitgutter#process_buffer(bufnr, a:force) elseif a:force call s:reset_tick(bufnr) 4 0.000002 endif 4 0.000001 endif 12 0.000006 endif 16 0.000009 endfor FUNCTION go#lsp#message#Definition() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp/message.vim:135 Called 4 times Total time: 0.000790 Self time: 0.000168 count total (s) self (s) 4 0.000770 0.000148 let l:params = s:textDocumentPositionParams(a:file, a:line, a:col) 4 0.000016 return { 'notification': 0, 'method': 'textDocument/definition', 'params': l:params, } FUNCTION airline#async#vcs_clean() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:95 Called 2 times Total time: 0.000323 Self time: 0.000041 count total (s) self (s) 2 0.000001 if g:airline#init#vim_async " Vim 8 with async support noa call airline#async#vim_vcs_clean(a:cmd, a:file, a:vcs) 2 0.000002 elseif has("nvim") " nvim async 2 0.000310 0.000028 noa call airline#async#nvim_vcs_clean(a:cmd, a:file, a:vcs) else " Vim pre 8 using system() call airline#async#vim7_vcs_clean(a:cmd, a:file, a:vcs) 2 0.000000 endif FUNCTION go#config#GoplsEnabled() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:576 Called 4 times Total time: 0.000030 Self time: 0.000030 count total (s) self (s) 4 0.000025 return get(g:, 'go_gopls_enabled', 1) FUNCTION coc#float#get_float_win_list() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/float.vim:572 Called 16 times Total time: 0.001810 Self time: 0.001810 count total (s) self (s) 16 0.000038 let res = [] 16 0.000103 let list_all = get(a:, 1, 0) 16 0.000126 if s:is_vim if s:popup_list_api return filter(popup_list(), 'popup_getpos(v:val)["visible"]'.(list_all ? '' : '&& getwinvar(v:val, "float", 0)')) endif return filter(s:popup_list, 's:popup_visible(v:val)') 16 0.000016 else 16 0.000041 let res = [] 34 0.000199 for i in range(1, winnr('$')) 18 0.000090 let id = win_getid(i) 18 0.000307 let config = nvim_win_get_config(id) 18 0.000102 if empty(config) || empty(config['relative']) 18 0.000037 continue endif " ignore border & button window & others if list_all == 0 && !getwinvar(id, 'float', 0) continue endif call add(res, id) 16 0.000039 endfor 16 0.000028 return res endif return [] FUNCTION coc#ui#update_signs() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/ui.vim:413 Called 8 times Total time: 0.000183 Self time: 0.000183 count total (s) self (s) 8 0.000032 if !s:sign_api || !bufloaded(a:bufnr) return 8 0.000003 endif 8 0.000040 call sign_unplace(a:group, {'buffer': a:bufnr}) 12 0.000013 for def in a:signs 4 0.000006 let opts = {'lnum': def['lnum']} 4 0.000005 if has_key(def, 'priority') 4 0.000006 let opts['priority'] = def['priority'] 4 0.000001 endif 4 0.000015 call sign_place(0, a:group, def['name'], a:bufnr, opts) 12 0.000006 endfor FUNCTION 80_LocalVimRCDebug() Defined: ~/.vim/plugged/vim-localvimrc/plugin/localvimrc.vim:1003 Called 16 times Total time: 0.000061 Self time: 0.000061 count total (s) self (s) 16 0.000012 if (g:localvimrc_debug >= a:level) call add(s:localvimrc_debug_message, a:text) " if the list is too long remove the first element if len(s:localvimrc_debug_message) > s:localvimrc_debug_lines call remove(s:localvimrc_debug_message, 0) endif 16 0.000003 endif FUNCTION go#config#DocMaxHeight() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:341 Called 2 times Total time: 0.000003 Self time: 0.000003 count total (s) self (s) 2 0.000002 return get(g:, "go_doc_max_height", 20) FUNCTION FugitiveHead() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:236 Called 62 times Total time: 0.011738 Self time: 0.001494 count total (s) self (s) 62 0.000263 if a:0 && (type(a:1) ==# type({}) || type(a:1) ==# type('') && a:1 !~# '^\d\+$') let dir = FugitiveGitDir(a:1) let arg = get(a:, 2, 0) 62 0.000044 elseif a:0 > 1 let dir = FugitiveGitDir(a:2) let arg = a:1 62 0.000016 else 62 0.002770 0.000307 let dir = FugitiveGitDir() 62 0.000097 let arg = get(a:, 1, 0) 62 0.000019 endif 62 0.000057 if empty(dir) return '' 62 0.000015 endif 62 0.008127 0.000347 return fugitive#Head(arg, dir) FUNCTION airline#highlighter#highlight() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:255 Called 32 times Total time: 0.330127 Self time: 0.046126 count total (s) self (s) 32 0.000062 let bufnr = a:0 ? a:1 : '' 32 0.000110 let p = g:airline#themes#{g:airline_theme}#palette " draw the base mode, followed by any overrides 32 0.000212 let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val') 32 0.000067 let suffix = a:modes[0] == 'inactive' ? '_inactive' : '' 32 0.000046 let airline_grouplist = [] 32 0.000187 let buffers_in_tabpage = sort(tabpagebuflist()) 32 0.000054 if exists("*uniq") 32 0.000068 let buffers_in_tabpage = uniq(buffers_in_tabpage) 32 0.000012 endif " mapped might be something like ['normal', 'normal_modified'] " if a group is in both modes available, only define the second " that is how this was done previously overwrite the previous definition 70 0.000111 for mode in reverse(mapped) 38 0.000168 if exists('g:airline#themes#{g:airline_theme}#palette[mode]') 34 0.000092 let dict = g:airline#themes#{g:airline_theme}#palette[mode] 678 0.000852 for kvp in items(dict) 644 0.000755 let mode_colors = kvp[1] 644 0.000662 let name = kvp[0] 644 0.001613 if name is# 'airline_c' && !empty(bufnr) && suffix is# '_inactive' 2 0.000001 let name = 'airline_c'.bufnr 644 0.000223 endif " do not re-create highlighting for buffers that are no longer visible " in the current tabpage 644 0.002715 if name =~# 'airline_c\d\+' 35 0.000249 let bnr = matchstr(name, 'airline_c\zs\d\+') + 0 35 0.000086 if bnr > 0 && index(buffers_in_tabpage, bnr) == -1 continue 35 0.000012 endif 609 0.002096 elseif (name =~# '_to_') || (name[0:10] is# 'airline_tab' && !empty(suffix)) " group will be redefined below at exec_separator " or is not needed for tabline with '_inactive' suffix " since active flag is 1 for builder) 315 0.000208 continue 329 0.000103 endif 329 0.004502 0.002906 if s:group_not_done(airline_grouplist, name.suffix) 320 0.070001 0.002762 call airline#highlighter#exec(name.suffix, mode_colors) 329 0.000123 endif 329 0.000474 if !has_key(p, 'accents') " work around a broken installation " shouldn't actually happen, p should always contain accents continue 329 0.000121 endif 658 0.000793 for accent in keys(s:accents) 329 0.000485 if !has_key(p.accents, accent) continue 329 0.000121 endif 329 0.000656 let colors = copy(mode_colors) 329 0.000479 if p.accents[accent][0] != '' let colors[0] = p.accents[accent][0] 329 0.000110 endif 329 0.000399 if p.accents[accent][2] != '' let colors[2] = p.accents[accent][2] 329 0.000103 endif 329 0.000380 if len(colors) >= 5 329 0.000760 let colors[4] = get(p.accents[accent], 4, '') else call add(colors, get(p.accents[accent], 4, '')) 329 0.000107 endif 329 0.004150 0.002729 if s:group_not_done(airline_grouplist, name.suffix.'_'.accent) 320 0.068481 0.002739 call airline#highlighter#exec(name.suffix.'_'.accent, colors) 329 0.000123 endif 658 0.000279 endfor 363 0.000146 endfor 34 0.000049 if empty(s:separators) " nothing to be done continue 34 0.000012 endif " TODO: optimize this 397 0.000461 for sep in items(s:separators) " we cannot check, that the group already exists, else the separators " might not be correctly defined. But perhaps we can skip above groups " that match the '_to_' name, because they would be redefined here... 363 0.151443 0.003439 call exec_separator(dict, sep[1][0], sep[1][1], sep[1][2], suffix) 397 0.000159 endfor 38 0.000013 endif 70 0.000067 endfor FUNCTION coc#rpc#ready() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/rpc.vim:79 Called 626 times Total time: 0.002506 Self time: 0.002506 count total (s) self (s) 626 0.001477 if empty(s:client) || s:client['running'] == 0 return 0 626 0.000138 endif 626 0.000266 return 1 FUNCTION tagbar#state#set_current_file() Defined: ~/.vim/plugged/tagbar/autoload/tagbar/state.vim:5 Called 14 times Total time: 0.000331 Self time: 0.000190 count total (s) self (s) 14 0.000325 0.000183 call s:get().setCurrentFile(a:fileinfo) FUNCTION 159_update_untracked() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:202 Called 62 times Total time: 0.007022 Self time: 0.005839 count total (s) self (s) 62 0.003065 let file = expand("%:p") 62 0.000453 if empty(file) || isdirectory(file) || !empty(&buftype) 8 0.000004 return 54 0.000016 endif 54 0.000054 let needs_update = 1 54 0.000163 let vcs_checks = get(g:, "airline#extensions#branch#vcs_checks", ["untracked", "dirty"]) 162 0.000141 for vcs in keys(s:vcs_config) 108 0.000271 if file =~ s:vcs_config[vcs].exclude " Skip check for files that live in the exclude directory let needs_update = 0 108 0.000030 endif 108 0.000227 if has_key(s:vcs_config[vcs].untracked, file) 52 0.000041 let needs_update = 0 52 0.001013 0.000579 call airline#extensions#branch#update_untracked_config(file, vcs) 108 0.000027 endif 162 0.000054 endfor 54 0.000038 if !needs_update 52 0.000023 return 2 0.000000 endif 6 0.000003 for vcs in keys(s:vcs_config) " only check, for git, if fugitive is installed " and for 'hg' if lawrencium is installed, else skip 4 0.000018 0.000013 if vcs is# 'git' && (!airline#util#has_fugitive() && !airline#util#has_gina()) continue 4 0.000017 0.000012 elseif vcs is# 'mercurial' && !airline#util#has_lawrencium() 2 0.000000 continue 2 0.000000 endif 2 0.000002 let config = s:vcs_config[vcs] " Note that asynchronous update updates s:vcs_config only, and only " s:update_untracked updates b:buffer_vcs_config. If s:vcs_config is " invalidated again before s:update_untracked is called, then we lose the " result of the previous call, i.e. the head string is not updated. It " doesn't happen often in practice, so we let it be. 2 0.000002 if index(vcs_checks, 'untracked') > -1 2 0.000427 0.000011 call airline#async#vcs_untracked(config, file, vcs) 2 0.000000 endif " Check clean state of repo 2 0.000002 if index(vcs_checks, 'dirty') > -1 2 0.000334 0.000010 call airline#async#vcs_clean(config.dirty, file, vcs) 2 0.000001 endif 4 0.000002 endfor FUNCTION 225_handle_double_hunk() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/sign.vim:212 Called 6 times Total time: 0.000038 Self time: 0.000038 count total (s) self (s) 6 0.000019 if a:modified_lines[0:1] == [[1, 'removed_first_line'], [1, 'removed']] return [[1, 'removed_above_and_below']] + a:modified_lines[2:] 6 0.000002 endif 6 0.000004 return a:modified_lines FUNCTION gitgutter#utility#shellescape() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:72 Called 36 times Total time: 0.000987 Self time: 0.000945 count total (s) self (s) 36 0.000778 if a:arg =~ '^[A-Za-z0-9_/.-]\+$' 30 0.000048 return a:arg 6 0.000076 0.000034 elseif s:winshell() return '"' . substitute(substitute(a:arg, '"', '""', 'g'), '%', '"%"', 'g') . '"' 6 0.000003 else 6 0.000016 return shellescape(a:arg) endif FUNCTION tagbar#debug#log() Defined: ~/.vim/plugged/tagbar/autoload/tagbar/debug.vim:30 Called 114 times Total time: 0.000715 Self time: 0.000715 count total (s) self (s) 114 0.000137 if s:debug_enabled execute 'redir >> ' . s:debug_file silent echon s:gettime() . ': ' . a:msg . "\n" redir END 114 0.000046 endif FUNCTION tagbar#currenttag() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:3935 Called 28 times Total time: 0.008156 Self time: 0.001341 count total (s) self (s) " Indicate that the statusline functionality is being used. This prevents " the CloseWindow() function from removing the autocommands. 28 0.000071 let s:statusline_in_use = 1 28 0.000020 if a:0 >= 1 " also test for non-zero value for backwards compatibility 28 0.000130 let longsig = a:1 =~# 's' || (type(a:1) == type(0) && a:1 != 0) 28 0.000047 let fullpath = a:1 =~# 'f' 28 0.000040 let prototype = a:1 =~# 'p' 28 0.000020 if a:0 >= 2 28 0.000035 let search_method = a:2 else let search_method = g:tagbar_highlight_method 28 0.000010 endif else let longsig = 0 let fullpath = 0 let prototype = 0 let search_method = g:tagbar_highlight_method 28 0.000009 endif 28 0.000607 0.000148 if !s:Init(1) return a:default 28 0.000007 endif 28 0.006236 0.000199 let tag = s:GetNearbyTag(search_method, 1) 28 0.000028 if !empty(tag) 26 0.000018 if prototype return tag.getPrototype(1) 26 0.000010 else 26 0.000550 0.000231 return printf(a:fmt, tag.str(longsig, fullpath)) endif 2 0.000001 else 2 0.000002 return a:default endif FUNCTION go#uri#EncodePath() Defined: ~/.vim/plugged/vim-go/autoload/go/uri.vim:9 Called 12 times Total time: 0.000666 Self time: 0.000367 count total (s) self (s) 12 0.000020 let l:separator = '/' 12 0.000249 0.000188 if go#util#IsWin() let l:separator = '\\' 12 0.000007 endif 12 0.000360 0.000122 return s:encode(a:value, '[^' . l:separator . 'A-Za-z0-9_.~-]') FUNCTION 130_Disable() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:314 Called 2 times Total time: 0.000030 Self time: 0.000009 count total (s) self (s) 2 0.000027 0.000005 if s:Filter() == 0 call s:IndentLinesDisable() call s:LeadingSpaceDisable() 2 0.000000 endif FUNCTION go#promise#New() Defined: ~/.vim/plugged/vim-go/autoload/go/promise.vim:16 Called 2 times Total time: 0.000015 Self time: 0.000015 count total (s) self (s) 2 0.000001 let l:state = {} " explicitly bind to state so that within l:promise's methods, self will " always refer to state. See :help Partial for more information. 2 0.000011 return { 'wrapper': function('s:wrapper', [a:fn, a:default], l:state), 'await': function('s:await', [a:timeout, a:default], l:state), } FUNCTION 177_build_sections() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/default.vim:35 Called 36 times Total time: 0.008455 Self time: 0.001331 count total (s) self (s) 188 0.000104 for key in a:keys 152 0.000213 if (key == 'warning' || key == 'error') && !a:context.active 16 0.000006 continue 136 0.000028 endif 136 0.007839 0.000715 call s:add_section(a:builder, a:context, key) 172 0.000088 endfor FUNCTION 97_dir() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:231 Called 24 times Total time: 0.012927 Self time: 0.009064 count total (s) self (s) 24 0.012910 0.009047 return gitgutter#utility#shellescape(fnamemodify(s:abs_path(a:bufnr, 0), ':h')) FUNCTION airline#update_tabline() Defined: ~/.vim/plugged/vim-airline/autoload/airline.vim:301 Called 78 times Total time: 0.001172 Self time: 0.001172 count total (s) self (s) 78 0.000703 if get(g:, 'airline_statusline_ontop', 0) call airline#extensions#tabline#redraw() 78 0.000092 endif FUNCTION coc#util#check_refresh() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:86 Called 6 times Total time: 0.000056 Self time: 0.000056 count total (s) self (s) 6 0.000017 if !bufloaded(a:bufnr) return 0 6 0.000004 endif 6 0.000015 if getbufvar(a:bufnr, 'coc_diagnostic_disable', 0) return 0 6 0.000001 endif 6 0.000003 return 1 FUNCTION gitgutter#sign#update_signs() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/sign.vim:57 Called 6 times Total time: 0.000172 Self time: 0.000134 count total (s) self (s) 6 0.000011 if exists('*sign_unplace') " Vim is (hopefully) now quick enough to remove all signs then place new ones. 6 0.000018 call sign_unplace('gitgutter', {'buffer': a:bufnr}) 6 0.000071 0.000033 let modified_lines = s:handle_double_hunk(a:modified_lines) 6 0.000039 let signs = map(copy(modified_lines), '{'. '"buffer": a:bufnr,'. '"group": "gitgutter",'. '"name": s:highlight_name_for_change(v:val[1]),'. '"lnum": v:val[0],'. '"priority": g:gitgutter_sign_priority'. '}') 6 0.000010 if exists('*sign_placelist') 6 0.000008 call sign_placelist(signs) 6 0.000003 return endif for sign in signs call sign_place(0, sign.group, sign.name, sign.buffer, {'lnum': sign.lnum, 'priority': sign.priority}) endfor return endif " Derive a delta between the current signs and the ones we want. " Remove signs from lines that no longer need a sign. " Upsert the remaining signs. call s:find_current_signs(a:bufnr) let new_gitgutter_signs_line_numbers = map(copy(a:modified_lines), 'v:val[0]') let obsolete_signs = s:obsolete_gitgutter_signs_to_remove(a:bufnr, new_gitgutter_signs_line_numbers) call s:remove_signs(a:bufnr, obsolete_signs, s:remove_all_old_signs) call s:upsert_new_gitgutter_signs(a:bufnr, a:modified_lines) FUNCTION airline#update_statusline_focuslost() Defined: ~/.vim/plugged/vim-airline/autoload/airline.vim:169 Called 4 times Total time: 0.000090 Self time: 0.000090 count total (s) self (s) 4 0.000043 if get(g:, 'airline_focuslost_inactive', 0) let bufnr=bufnr('%') call airline#highlighter#highlight_modified_inactive(bufnr) call airline#highlighter#highlight(['inactive'], bufnr) call airline#update_statusline_inactive(range(1, winnr('$'))) 4 0.000004 endif FUNCTION go#lsp#message#Hover() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp/message.vim:260 Called 5 times Total time: 0.000541 Self time: 0.000068 count total (s) self (s) 5 0.000525 0.000051 let l:params = s:textDocumentPositionParams(a:file, a:line, a:col) 5 0.000014 return { 'notification': 0, 'method': 'textDocument/hover', 'params': l:params, } FUNCTION fugitive#Head() Defined: ~/.vim/plugged/vim-fugitive/autoload/fugitive.vim:1025 Called 62 times Total time: 0.007780 Self time: 0.004887 count total (s) self (s) 62 0.000136 let dir = a:0 > 1 ? a:2 : s:Dir() 62 0.000044 if empty(dir) return '' 62 0.000015 endif 62 0.003197 0.000305 let file = FugitiveActualDir(dir) . '/HEAD' 62 0.002580 let ftime = getftime(file) 62 0.000060 if ftime == -1 return '' 62 0.000204 elseif ftime != get(s:head_cache, file, [-1])[0] 4 0.000133 let s:head_cache[file] = [ftime, readfile(file)[0]] 62 0.000017 endif 62 0.000093 let head = s:head_cache[file][1] 62 0.000075 let len = a:0 ? a:1 : 0 62 0.000237 if head =~# '^ref: ' 62 0.000051 if len < 0 return strpart(head, 5) 62 0.000020 else 62 0.000593 return substitute(head, '\C^ref: \%(refs/\%(heads/\|remotes/\|tags/\)\=\)\=', '', '') endif elseif head =~# '^\x\{40,\}$' return len < 0 ? head : strpart(head, 0, len) else return '' endif FUNCTION go#lsp#lsp#Position() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp/lsp.vim:8 Called 6 times Total time: 0.000734 Self time: 0.000271 count total (s) self (s) 6 0.000012 if a:0 < 2 6 0.000050 let [l:line, l:col] = getpos('.')[1:2] else let l:line = a:1 let l:col = a:2 6 0.000004 endif 6 0.000033 let l:content = getline(l:line) " LSP uses 0-based lines. 6 0.000588 0.000125 return [l:line - 1, s:character(l:line, l:col-1)] FUNCTION 181_IsValidFile() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:3415 Called 20 times Total time: 0.002024 Self time: 0.001919 count total (s) self (s) 20 0.000227 0.000136 call tagbar#debug#log('Checking if file is valid [' . a:fname . ']') 20 0.000038 if a:fname ==# '' || a:ftype ==# '' 2 0.000010 0.000006 call tagbar#debug#log('Empty filename or type') 2 0.000001 return 0 18 0.000007 endif 18 0.000628 if !filereadable(a:fname) && getbufvar(a:fname, 'netrw_tmpfile') ==# '' 4 0.000023 0.000013 call tagbar#debug#log('File not readable') 4 0.000002 return 0 14 0.000007 endif 14 0.000150 if getbufvar(a:fname, 'tagbar_ignore') == 1 call tagbar#debug#log('File is marked as ignored') return 0 14 0.000006 endif 14 0.000275 let winnr = bufwinnr(a:fname) 14 0.000076 if winnr != -1 && getwinvar(winnr, '&diff') call tagbar#debug#log('Window is in diff mode') return 0 14 0.000006 endif 14 0.000026 if &previewwindow call tagbar#debug#log('In preview window') return 0 14 0.000006 endif 14 0.000059 if !has_key(s:known_types, a:ftype) if exists('g:tagbar_type_' . a:ftype) " Filetype definition must have been specified in an 'ftplugin' " file, so load it now call s:LoadUserTypeDefs(a:ftype) else call tagbar#debug#log('Unsupported filetype: ' . a:ftype) return 0 endif 14 0.000008 endif 14 0.000013 return 1 FUNCTION airline#builder#should_change_group() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:130 Called 68 times Total time: 0.012091 Self time: 0.001357 count total (s) self (s) 68 0.000076 if a:group1 == a:group2 return 0 68 0.000017 endif 68 0.006028 0.000508 let color1 = airline#highlighter#get_highlight(a:group1) 68 0.005689 0.000476 let color2 = airline#highlighter#get_highlight(a:group2) 68 0.000212 return color1[1] != color2[1] || color1[0] != color2[0] || color1[2] != color2[2] || color1[3] != color2[3] FUNCTION go#tool#Info() Defined: ~/.vim/plugged/vim-go/autoload/go/tool.vim:83 Called 4 times Total time: 0.009321 Self time: 0.000569 count total (s) self (s) 4 0.000089 0.000061 let l:mode = go#config#InfoMode() 4 0.000013 if l:mode == 'guru' call go#guru#DescribeInfo(a:showstatus) 4 0.000011 elseif l:mode == 'gopls' 4 0.000384 0.000354 if !go#config#GoplsEnabled() call go#util#EchoError("go_info_mode is 'gopls', but gopls is disabled") return 4 0.000010 endif 4 0.008751 0.000057 call go#lsp#Info(a:showstatus) else call go#util#EchoError('go_info_mode value: '. l:mode .' is not valid. Valid values are: [guru, gopls]') 4 0.000002 endif FUNCTION 43_on_focus_gained() Defined: ~/.vim/plugged/vim-airline/plugin/airline.vim:77 Called 4 times Total time: 0.027580 Self time: 0.000096 count total (s) self (s) 4 0.000024 if &eventignore =~? 'focusgained' return 4 0.000002 endif 4 0.000059 0.000023 if airline#util#try_focusgained() 4 0.027484 0.000036 unlet! w:airline_lastmode | :call airline_refresh(1) 4 0.000001 endif FUNCTION gitgutter#utility#getbufvar() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:21 Called 170 times Total time: 0.002026 Self time: 0.002026 count total (s) self (s) 170 0.000656 let ggvars = getbufvar(a:buffer, 'gitgutter') 170 0.000881 if type(ggvars) == type({}) && has_key(ggvars, a:varname) 154 0.000273 return ggvars[a:varname] 16 0.000003 endif 16 0.000007 if a:0 16 0.000008 return a:1 endif FUNCTION go#config#InfoMode() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:140 Called 4 times Total time: 0.000029 Self time: 0.000029 count total (s) self (s) 4 0.000020 return get(g:, 'go_info_mode', 'gopls') FUNCTION go#util#ShellError() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:277 Called 276 times Total time: 0.000325 Self time: 0.000325 count total (s) self (s) 276 0.000222 return v:shell_error FUNCTION 163_check_mixed_indent() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/whitespace.vim:17 Called 4 times Total time: 0.006916 Self time: 0.006916 count total (s) self (s) 4 0.000006 let indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0) 4 0.000002 if indent_algo == 1 " [] " spaces before or between tabs are not allowed let t_s_t = '(^\t* +\t\s*\S)' " ( x count) " count of spaces at the end of tabs should be less than tabstop value let t_l_s = '(^\t+ {' . &ts . ',}' . '\S)' return search('\v' . t_s_t . '|' . t_l_s, 'nw') 4 0.000002 elseif indent_algo == 2 return search('\v(^\t* +\t\s*\S)', 'nw', 0, 500) 4 0.000001 else 4 0.006882 return search('\v(^\t+ +)|(^ +\t+)', 'nw', 0, 500) endif FUNCTION gitgutter#utility#repo_path() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:112 Called 42 times Total time: 0.001410 Self time: 0.000814 count total (s) self (s) 42 0.001173 0.000656 let p = gitgutter#utility#getbufvar(a:bufnr, 'path', '') 42 0.000209 0.000131 return a:shellesc ? gitgutter#utility#shellescape(p) : p FUNCTION 159_update_hg_branch() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:148 Called 62 times Total time: 0.002394 Self time: 0.002159 count total (s) self (s) 62 0.000634 0.000399 if airline#util#has_lawrencium() let cmd='LC_ALL=C hg qtop' let stl=lawrencium#statusline() let file=expand('%:p') if !empty(stl) && get(b:, 'airline_do_mq_check', 1) if g:airline#init#vim_async noa call airline#async#get_mq_async(cmd, file) elseif has("nvim") noa call airline#async#nvim_get_mq_async(cmd, file) else " remove \n at the end of the command let output=system(cmd)[0:-2] noa call airline#async#mq_output(output, file) endif endif " do not do mq check anymore let b:airline_do_mq_check = 0 if exists("b:mq") && !empty(b:mq) if stl is# 'default' " Shorten default a bit let stl='def' endif let stl.=' ['.b:mq.']' endif let s:vcs_config['mercurial'].branch = stl 62 0.000017 else 62 0.000087 let s:vcs_config['mercurial'].branch = '' 62 0.000017 endif FUNCTION 43_airline_refresh() Defined: ~/.vim/plugged/vim-airline/plugin/airline.vim:226 Called 8 times Total time: 0.064466 Self time: 0.000339 count total (s) self (s) " a:1, fast refresh, do not reload the theme 8 0.000027 let fast=!empty(get(a:000, 0, 0)) 8 0.000018 if !exists("#airline") " disabled return 8 0.000003 endif 8 0.000772 0.000072 call airline#util#doautocmd('AirlineBeforeRefresh') 8 0.000395 0.000077 call airline#highlighter#reset_hlcache() 8 0.000006 if !fast call airline#load_theme() 8 0.000003 endif 8 0.063136 0.000051 call airline#update_statusline() 8 0.000072 0.000048 call airline#update_tabline() FUNCTION go#config#AutoTypeInfo() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:345 Called 18 times Total time: 0.000153 Self time: 0.000153 count total (s) self (s) 18 0.000124 return get(g:, "go_auto_type_info", 0) FUNCTION 92_ResolveGitDir() Defined: ~/.vim/plugged/vim-fugitive/plugin/fugitive.vim:405 Called 2 times Total time: 0.000108 Self time: 0.000045 count total (s) self (s) 2 0.000023 let type = getftype(a:git_dir) 2 0.000083 0.000020 if type ==# 'dir' && FugitiveIsGitDir(a:git_dir) 2 0.000001 return a:git_dir elseif type ==# 'link' && FugitiveIsGitDir(a:git_dir) return resolve(a:git_dir) elseif type !=# '' let line = get(s:ReadFile(a:git_dir, 1), 0, '') let file_dir = s:Slash(FugitiveVimPath(matchstr(line, '^gitdir: \zs.*'))) if file_dir !~# '^/\|^\a:\|^$' && a:git_dir =~# '/\.git$' && FugitiveIsGitDir(a:git_dir[0:-5] . file_dir) return simplify(a:git_dir[0:-5] . file_dir) elseif file_dir =~# '^/\|^\a:' && FugitiveIsGitDir(file_dir) return file_dir endif endif return '' FUNCTION gitgutter#hunk#summary() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/hunk.vim:20 Called 62 times Total time: 0.001151 Self time: 0.000608 count total (s) self (s) 62 0.001121 0.000578 return gitgutter#utility#getbufvar(a:bufnr, 'summary', [0,0,0]) FUNCTION go#config#DocPopupWindow() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:184 Called 2 times Total time: 0.000006 Self time: 0.000006 count total (s) self (s) 2 0.000003 return get(g:, 'go_doc_popup_window', 0) FUNCTION coc#util#tabnr_id() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:413 Called 16 times Total time: 0.000141 Self time: 0.000141 count total (s) self (s) 16 0.000130 return s:is_vim ? coc#api#get_tabid(a:tabnr) : nvim_list_tabpages()[a:tabnr - 1] FUNCTION 159_update_branch() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:183 Called 62 times Total time: 0.019102 Self time: 0.002263 count total (s) self (s) 186 0.000215 for vcs in keys(s:vcs_config) 124 0.017886 0.001047 call {s:vcs_config[vcs].update_branch}() 124 0.000313 if b:buffer_vcs_config[vcs].branch != s:vcs_config[vcs].branch 2 0.000003 let b:buffer_vcs_config[vcs].branch = s:vcs_config[vcs].branch 2 0.000001 unlet! b:airline_head 124 0.000053 endif 186 0.000073 endfor FUNCTION 159_sh_autocmd_handler() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim:356 Called 8 times Total time: 0.000210 Self time: 0.000210 count total (s) self (s) 8 0.000013 if exists('#airline') 8 0.000059 unlet! b:airline_head b:airline_do_mq_check 8 0.000131 endif FUNCTION spelunker#get_buffer#all() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/get_buffer.vim:6 Called 2 times Total time: 0.000115 Self time: 0.000094 count total (s) self (s) 2 0.000003 let l:window_text_list = getline(1, '$') 2 0.000020 0.000014 let l:newline_character = s:get_newline_character() 2 0.000004 let l:window_text = join(l:window_text_list, l:newline_character) 2 0.000013 0.000010 let l:window_text = spelunker#get_buffer#filter_uri(l:window_text) 2 0.000025 0.000022 let l:window_text = spelunker#get_buffer#filter_email(l:window_text) 2 0.000013 0.000010 let l:window_text = spelunker#get_buffer#filter_account_name(l:window_text) 2 0.000015 0.000013 let l:window_text = spelunker#get_buffer#filter_acronym(l:window_text) 2 0.000016 0.000013 let l:window_text = spelunker#get_buffer#filter_backquoted_words(l:window_text, l:newline_character) 2 0.000004 return split(l:window_text, l:newline_character) FUNCTION ConflictedVersion() Defined: ~/.vim/plugged/vim-conflicted/plugin/conflicted.vim:79 Called 68 times Total time: 0.000278 Self time: 0.000278 count total (s) self (s) 68 0.000119 if exists('b:conflicted_version') return b:conflicted_version . ' ' 68 0.000021 else 68 0.000032 return '' end FUNCTION 181_AutoUpdate() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:2841 Called 20 times Total time: 0.016092 Self time: 0.005602 count total (s) self (s) 20 0.000464 0.000258 call tagbar#debug#log('AutoUpdate called [' . a:fname . ']') " Whether we want to skip actually displaying the tags in Tagbar and only " update the fileinfo 20 0.000053 let no_display = a:0 > 0 ? a:1 : 0 " This file is being loaded due to a quickfix command like vimgrep, so " don't process it 20 0.000038 if exists('s:tagbar_qf_active') return 20 0.000033 elseif exists('s:window_opening') " This can happen if another plugin causes the active window to change " with an autocmd during the initial Tagbar window creation. In that " case InitWindow() hasn't had a chance to run yet and things can " break. MiniBufExplorer does this, for example. Completely disabling " autocmds at that point is also not ideal since for example " statusline plugins won't be able to update. call tagbar#debug#log('Still opening window, stopping processing') return 20 0.000008 endif " Get the filetype of the file we're about to process 20 0.000543 let bufnr = bufnr(a:fname) 20 0.000085 let ftype = getbufvar(bufnr, '&filetype') " Don't do anything if we're in the tagbar window 20 0.000025 if ftype ==# 'tagbar' call tagbar#debug#log('In Tagbar window, stopping processing') return 20 0.000008 endif " Only consider the main filetype in cases like 'python.django' 20 0.000119 let sftype = get(split(ftype, '\.'), 0, '') 20 0.000357 0.000246 call tagbar#debug#log("Vim filetype: '" . ftype . "', " . "sanitized filetype: '" . sftype . "'") " Don't do anything if the file isn't supported 20 0.002216 0.000192 if !s:IsValidFile(a:fname, sftype) 6 0.000040 0.000028 call tagbar#debug#log('Not a valid file, stopping processing') 6 0.000005 let s:nearby_disabled = 1 6 0.000002 return 14 0.000006 endif 14 0.000019 let updated = 0 " Process the file if it's unknown or the information is outdated. " Testing the mtime of the file is necessary in case it got changed " outside of Vim, for example by checking out a different version from a " VCS. 14 0.000169 0.000104 if s:known_files.has(a:fname) 14 0.000204 0.000131 let curfile = s:known_files.get(a:fname) " if a:force || getbufvar(curfile.bufnr, '&modified') || 14 0.000658 if a:force || empty(curfile) || curfile.ftype != sftype || (filereadable(a:fname) && getftime(a:fname) > curfile.mtime) call tagbar#debug#log('File data outdated, updating [' . a:fname . ']') call s:ProcessFile(a:fname, sftype) let updated = 1 14 0.000010 else 14 0.000266 0.000170 call tagbar#debug#log('File data seems up to date [' . a:fname . ']') 14 0.000008 endif elseif !s:known_files.has(a:fname) call tagbar#debug#log('New file, processing [' . a:fname . ']') call s:ProcessFile(a:fname, sftype) let updated = 1 14 0.000008 endif 14 0.000014 if no_display return 14 0.000006 endif 14 0.000149 0.000089 let fileinfo = s:known_files.get(a:fname) " If we don't have an entry for the file by now something must have gone " wrong, so don't change the tagbar content 14 0.000023 if empty(fileinfo) call tagbar#debug#log('fileinfo empty after processing [' . a:fname . ']') return 14 0.000006 endif " Display the tagbar content if the tags have been updated or a different " file is being displayed 14 0.001271 0.001129 if bufwinnr(s:TagbarBufName()) != -1 && !s:paused && (s:new_window || updated || (!empty(tagbar#state#get_current_file(0)) && a:fname != tagbar#state#get_current_file(0).fpath)) call s:RenderContent(fileinfo) 14 0.000008 endif " Call setCurrent after rendering so RenderContent can check whether the " same file is being redisplayed 14 0.000025 if !empty(fileinfo) 14 0.000204 0.000120 call tagbar#debug#log('Setting current file [' . a:fname . ']') 14 0.000507 0.000175 call tagbar#state#set_current_file(fileinfo) 14 0.000027 let s:nearby_disabled = 0 14 0.000008 endif 14 0.006121 0.000140 call s:HighlightTag(0, 1) 14 0.001357 0.000154 call s:SetStatusLine() 14 0.000204 0.000103 call tagbar#debug#log('AutoUpdate finished successfully') FUNCTION 181_SetStatusLine() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:3459 Called 14 times Total time: 0.001203 Self time: 0.001082 count total (s) self (s) 14 0.001129 0.001008 let tagbarwinnr = bufwinnr(s:TagbarBufName()) 14 0.000044 if tagbarwinnr == -1 || exists('g:tagbar_no_status_line') 14 0.000010 return endif " Make sure we're actually in the Tagbar window if tagbarwinnr != winnr() let in_tagbar = 0 let prevwinnr = winnr() call s:goto_win('p', 1) let pprevwinnr = winnr() call s:goto_win(tagbarwinnr, 1) else let in_tagbar = 1 endif if !empty(tagbar#state#get_current_file(0)) let fileinfo = tagbar#state#get_current_file(0) let fname = fnamemodify(fileinfo.fpath, ':t') let sorted = get(fileinfo.typeinfo, 'sort', g:tagbar_sort) else let fname = '' let sorted = g:tagbar_sort endif let sortstr = sorted ? 'Name' : 'Order' let flags = [] let flags += exists('w:autoclose') && w:autoclose ? ['c'] : [] let flags += g:tagbar_autoclose ? ['C'] : [] let flags += (sorted && g:tagbar_case_insensitive) ? ['i'] : [] let flags += g:tagbar_hide_nonpublic ? ['v'] : [] if exists('g:tagbar_status_func') let args = [in_tagbar, sortstr, fname, flags] let &l:statusline = call(g:tagbar_status_func, args) else let colour = in_tagbar ? '%#StatusLine#' : '%#StatusLineNC#' let flagstr = join(flags, '') if flagstr !=# '' let flagstr = '[' . flagstr . '] ' endif let text = colour . '[' . sortstr . '] ' . flagstr . fname let &l:statusline = text endif if !in_tagbar call s:goto_win(pprevwinnr, 1) call s:goto_win(prevwinnr, 1) endif FUNCTION 215_timer_start() Defined: ~/.vim/plugged/vim-go/autoload/go/auto.vim:125 Called 10 times Total time: 0.000154 Self time: 0.000109 count total (s) self (s) 10 0.000150 0.000105 let s:timer_id = timer_start(go#config#Updatetime(), function('s:handler')) FUNCTION airline#extensions#tabline#formatters#default#wrap_name() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/default.vim:34 Called 40 times Total time: 0.000950 Self time: 0.000950 count total (s) self (s) 40 0.000152 let buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ') 40 0.000113 let buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0) 40 0.000099 let _ = buf_nr_show ? printf(buf_nr_format, a:bufnr) : '' 40 0.000266 let _ .= substitute(a:buffer_name, '\\', '/', 'g') 40 0.000128 if getbufvar(a:bufnr, '&modified') == 1 8 0.000017 let _ .= g:airline_symbols.modified 40 0.000016 endif 40 0.000037 return _ FUNCTION 130_ResetConcealOption() Defined: ~/.vim/plugged/indentline/after/plugin/indentLine.vim:115 Called 2 times Total time: 0.000011 Self time: 0.000011 count total (s) self (s) 2 0.000003 if exists("b:indentLine_ConcealOptionSet") && b:indentLine_ConcealOptionSet if exists("b:indentLine_original_concealcursor") let &l:concealcursor = b:indentLine_original_concealcursor endif if exists("b:indentLine_original_conceallevel") let &l:conceallevel = b:indentLine_original_conceallevel endif let b:indentLine_ConcealOptionSet = 0 2 0.000000 endif FUNCTION 176_section_is_empty() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:182 Called 232 times Total time: 0.040250 Self time: 0.011631 count total (s) self (s) 232 0.000153 let start=1 " do not check for inactive windows or the tabline 232 0.000183 if a:self._context.active == 0 40 0.000013 return 0 192 0.000232 elseif get(a:self._context, 'tabline', 0) 66 0.000029 return 0 126 0.000027 endif " only check, if airline#skip_empty_sections == 1 126 0.000153 if get(g:, 'airline_skip_empty_sections', 0) == 0 return 0 126 0.000024 endif " only check, if airline#skip_empty_sections == 1 126 0.000149 if get(w:, 'airline_skip_empty_sections', -1) == 0 return 0 126 0.000023 endif " special case: When the content is %=, that is the " separation marker, which switches between left- and " right-aligned content. " Consider that to be empty, so that the previous previous " group is correctly remembered in the builder() function 126 0.000167 if empty(a:content) || a:content is# '%=' 28 0.000010 return 1 98 0.000019 endif 98 0.004088 let stripped = substitute(a:content, '\(%{.*}\|%#__accent_[^#]*#\|%#__restore__#\|%( \| %)\)', '', 'g') 98 0.000114 if !empty(stripped) 14 0.000008 return 0 " There is content in the statusline 84 0.000022 endif 84 0.000063 let exprlist = [] 84 0.002378 call substitute(a:content, '%{\([^}]*\)}', '\=add(exprlist, submatch(1))', 'g') 210 0.000161 for expr in exprlist 168 0.000058 try " catch all exceptions, just in case 168 0.030806 0.002187 if !empty(eval(expr)) 42 0.000022 return 0 126 0.000030 endif catch return 0 168 0.000056 endtry 168 0.000068 endfor 42 0.000016 return 1 FUNCTION 79_Guess() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:38 Called 2 times Total time: 0.000142 Self time: 0.000142 count total (s) self (s) 2 0.000008 let has_heredocs = a:detected.filetype =~# '^\%(perl\|php\|ruby\|[cz]\=sh\|bash\)$' 2 0.000001 let options = {} 2 0.000004 let heuristics = {'spaces': 0, 'hard': 0, 'soft': 0, 'checked': 0, 'indents': {}} 2 0.000004 let tabstop = get(a:detected.options, 'tabstop', get(a:detected.defaults, 'tabstop', [8]))[0] 2 0.000002 let softtab = repeat(' ', tabstop) 2 0.000001 let waiting_on = '' 2 0.000001 let prev_indent = -1 2 0.000001 let prev_line = '' 4 0.000002 for line in a:lines 2 0.000002 if len(waiting_on) if line =~# waiting_on let waiting_on = '' let prev_indent = -1 let prev_line = '' endif continue 2 0.000003 elseif line =~# '^\s*$' 2 0.000001 continue elseif a:detected.filetype ==# 'python' && prev_line[-1:-1] =~# '[[\({]' let prev_indent = -1 let prev_line = '' continue elseif line =~# '^=\w' && line !~# '^=\%(end\|cut\)\>' let waiting_on = '^=\%(end\|cut\)\>' elseif line =~# '^@@\+ -\d\+,\d\+ ' let waiting_on = '^$' elseif line !~# '[/<"`]' " No need to do other checks elseif line =~# '^\s*/\*' && line !~# '\*/' let waiting_on = '\*/' elseif line =~# '^\s*<\!--' && line !~# '-->' let waiting_on = '-->' elseif line =~# '^[^"]*"""[^"]*$' let waiting_on = '^[^"]*"""[^"]*$' elseif a:detected.filetype ==# 'go' && line =~# '^[^`]*`[^`]*$' let waiting_on = '^[^`]*`[^`]*$' elseif has_heredocs let waiting_on = matchstr(line, '<<\s*\([''"]\=\)\zs\w\+\ze\1[^''"`<>]*$') if len(waiting_on) let waiting_on = '^' . waiting_on . '$' endif endif let indent = len(matchstr(substitute(line, '\t', softtab, 'g'), '^ *')) if line =~# '^\t' let heuristics.hard += 1 elseif line =~# '^' . softtab let heuristics.soft += 1 endif if line =~# '^ ' let heuristics.spaces += 1 endif let increment = prev_indent < 0 ? 0 : indent - prev_indent let prev_indent = indent let prev_line = line if increment > 1 && (increment < 4 || increment % 4 == 0) if has_key(heuristics.indents, increment) let heuristics.indents[increment] += 1 else let heuristics.indents[increment] = 1 endif let heuristics.checked += 1 endif if heuristics.checked >= 32 && (heuristics.hard > 3 || heuristics.soft > 3) && get(heuristics.indents, increment) * 2 > heuristics.checked if heuristics.spaces break elseif !exists('no_space_indent') let no_space_indent = stridx("\n" . join(a:lines, "\n"), "\n ") < 0 if no_space_indent break endif endif break endif 2 0.000002 endfor 2 0.000003 let a:detected.heuristics[a:source] = heuristics 2 0.000001 let max_frequency = 0 2 0.000002 for [shiftwidth, frequency] in items(heuristics.indents) if frequency > max_frequency || frequency == max_frequency && +shiftwidth < get(options, 'shiftwidth') let options.shiftwidth = +shiftwidth let max_frequency = frequency endif 2 0.000001 endfor 2 0.000003 if heuristics.hard && !heuristics.spaces && !has_key(a:detected.options, 'tabstop') let options = {'expandtab': 0, 'shiftwidth': 0} 2 0.000001 elseif heuristics.hard > heuristics.soft let options.expandtab = 0 let options.tabstop = tabstop 2 0.000000 else 2 0.000001 if heuristics.soft let options.expandtab = 1 2 0.000000 endif 2 0.000005 if heuristics.hard || has_key(a:detected.options, 'tabstop') || stridx(join(a:lines, "\n"), "\t") >= 0 let options.tabstop = tabstop 2 0.000003 elseif !&g:shiftwidth && has_key(options, 'shiftwidth') && !has_key(a:detected.options, 'shiftwidth') let options.tabstop = options.shiftwidth let options.shiftwidth = 0 2 0.000000 endif 2 0.000000 endif 2 0.000002 call map(options, '[v:val, a:source]') 2 0.000003 call extend(a:detected.options, options, 'keep') FUNCTION GitGutterGetHunkSummary() Defined: ~/.vim/plugged/vim-gitgutter/plugin/gitgutter.vim:204 Called 62 times Total time: 0.001636 Self time: 0.000485 count total (s) self (s) 62 0.001608 0.000457 return gitgutter#hunk#summary(winbufnr(0)) FUNCTION airline#extensions#quickfix#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim:14 Called 14 times Total time: 0.000073 Self time: 0.000073 count total (s) self (s) 14 0.000022 if &buftype == 'quickfix' let w:airline_section_a = airline#extensions#quickfix#get_type() let w:airline_section_b = '%{get(w:, "quickfix_title", "")}' let w:airline_section_c = '' let w:airline_section_x = '' 14 0.000004 endif FUNCTION 234_await() Defined: ~/.vim/plugged/vim-go/autoload/go/promise.vim:37 Called 2 times Total time: 0.104170 Self time: 0.099662 count total (s) self (s) 2 0.000007 let l:timer = timer_start(a:timeout, function('s:setretval', [a:default], self)) 4 0.000035 while !has_key(self, 'retval') 2 0.104060 0.099552 sleep 50m 4 0.000017 endwhile 2 0.000013 call timer_stop(l:timer) 2 0.000009 if get(self, 'exception', 0) throw self.retval 2 0.000001 endif 2 0.000004 return self.retval FUNCTION 198_evaluate_tabline() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim:209 Called 30 times Total time: 0.002222 Self time: 0.000989 count total (s) self (s) 30 0.000033 let tabline = a:tabline 30 0.001467 0.000234 let tabline = substitute(tabline, '%{\([^}]\+\)}', '\=eval(submatch(1))', 'g') 30 0.000233 let tabline = substitute(tabline, '%#[^#]\+#', '', 'g') 30 0.000116 let tabline = substitute(tabline, '%(\([^)]\+\)%)', '\1', 'g') 30 0.000078 let tabline = substitute(tabline, '%\d\+[TX]', '', 'g') 30 0.000064 let tabline = substitute(tabline, '%=', '', 'g') 30 0.000061 let tabline = substitute(tabline, '%\d*\*', '', 'g') 30 0.000042 if has('tablineat') 30 0.000067 let tabline = substitute(tabline, '%@[^@]\+@', '', 'g') 30 0.000010 endif 30 0.000019 return tabline FUNCTION gitgutter#async#execute() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/async.vim:16 Called 6 times Total time: 0.007587 Self time: 0.007393 count total (s) self (s) 6 0.000211 0.000038 call gitgutter#debug#log('[async] '.a:cmd) 6 0.000024 let options = { 'stdoutbuffer': [], 'buffer': a:bufnr, 'handler': a:handler } 6 0.000056 0.000034 let command = s:build_command(a:cmd) 6 0.000010 if has('nvim') 6 0.007210 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') })) else let job = 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) }) let s:jobs[s:job_id(job)] = 1 6 0.000002 endif FUNCTION spelunker#get_buffer#filter_uri() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/get_buffer.vim:57 Called 2 times Total time: 0.000003 Self time: 0.000003 count total (s) self (s) 2 0.000001 if g:spelunker_disable_uri_checking == 0 2 0.000001 return a:text endif " FYI: https://vi.stackexchange.com/questions/3990/ignore-urls-and-email-addresses-in-spell-file/24534#24534 return substitute(a:text, '\w\+:\/\/[^[:space:]]\+', '', 'g') FUNCTION coc#window#visible_range() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/window.vim:191 Called 14 times Total time: 0.000493 Self time: 0.000493 count total (s) self (s) 14 0.000193 let winid = bufwinid(a:bufnr) 14 0.000036 if winid == -1 return v:null 14 0.000016 endif 14 0.000146 let info = getwininfo(winid)[0] 14 0.000041 return [info['topline'], info['botline']] FUNCTION 50_init() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:44 Called 4 times Total time: 0.003029 Self time: 0.000838 count total (s) self (s) " Initialize variables: " autoclose 4 0.000117 0.000029 call s:option_init("autoclose", 1) " matchpairs 4 0.000104 0.000020 call s:option_init("matchpairs", string(&matchpairs)[1:-2]) 4 0.000226 0.000092 call s:option_init("matchpairs_list", map(split(s:get('matchpairs', ''), '.:.\zs,\ze.:.'), 'split(v:val, ''^.\zs:\ze.$'')')) 4 0.000079 0.000017 let pairs = s:get('matchpairs_list', []) 4 0.000015 if len(filter(pairs, 'v:val[0] ==# v:val[1]')) echohl ErrorMsg echom 'delimitMate: each member of a pair in delimitMate_matchpairs must be different from each other.' echom 'delimitMate: invalid pairs: ' . join(map(pairs, 'join(v:val, ":")'), ', ') echohl Normal return 0 4 0.000001 endif 4 0.000186 0.000048 call s:option_init("left_delims", map(copy(s:get('matchpairs_list', [])), 'v:val[0]')) 4 0.000153 0.000045 call s:option_init("right_delims", map(copy(s:get('matchpairs_list', [])), 'v:val[1]')) " quotes 4 0.000088 0.000013 call s:option_init("quotes", "\" ' `") 4 0.000181 0.000048 call s:option_init("quotes_list",split(s:get('quotes', ''), '\s\+')) " nesting_quotes 4 0.000087 0.000013 call s:option_init("nesting_quotes", []) " excluded_regions 4 0.000087 0.000013 call s:option_init("excluded_regions", "Comment") 4 0.000151 0.000031 call s:option_init("excluded_regions_list", split(s:get('excluded_regions', ''), ',\s*')) 4 0.000062 0.000018 let enabled = len(s:get('excluded_regions_list', [])) > 0 4 0.000112 0.000025 call s:option_init("excluded_regions_enabled", enabled) " expand_space 4 0.000008 if exists("b:delimitMate_expand_space") && type(b:delimitMate_expand_space) == type("") echom "b:delimitMate_expand_space is '".b:delimitMate_expand_space."' but it must be either 1 or 0!" echom "Read :help 'delimitMate_expand_space' for more details." unlet b:delimitMate_expand_space let b:delimitMate_expand_space = 1 4 0.000001 endif 4 0.000006 if exists("g:delimitMate_expand_space") && type(g:delimitMate_expand_space) == type("") echom "delimitMate_expand_space is '".g:delimitMate_expand_space."' but it must be either 1 or 0!" echom "Read :help 'delimitMate_expand_space' for more details." unlet g:delimitMate_expand_space let g:delimitMate_expand_space = 1 4 0.000001 endif 4 0.000088 0.000013 call s:option_init("expand_space", 0) " expand_cr 4 0.000006 if exists("b:delimitMate_expand_cr") && type(b:delimitMate_expand_cr) == type("") echom "b:delimitMate_expand_cr is '".b:delimitMate_expand_cr."' but it must be either 1 or 0!" echom "Read :help 'delimitMate_expand_cr' for more details." unlet b:delimitMate_expand_cr let b:delimitMate_expand_cr = 1 4 0.000001 endif 4 0.000006 if exists("g:delimitMate_expand_cr") && type(g:delimitMate_expand_cr) == type("") echom "delimitMate_expand_cr is '".g:delimitMate_expand_cr."' but it must be either 1 or 0!" echom "Read :help 'delimitMate_expand_cr' for more details." unlet g:delimitMate_expand_cr let g:delimitMate_expand_cr = 1 4 0.000001 endif 4 0.000022 if ((&backspace !~ 'eol' || &backspace !~ 'start') && &backspace != 2) && ((exists('b:delimitMate_expand_cr') && b:delimitMate_expand_cr == 1) || (exists('g:delimitMate_expand_cr') && g:delimitMate_expand_cr == 1)) echom "delimitMate: There seems to be some incompatibility with your settings that may interfer with the expansion of . See :help 'delimitMate_expand_cr' for details." 4 0.000001 endif 4 0.000087 0.000012 call s:option_init("expand_cr", 0) " expand_in_quotes 4 0.000074 0.000012 call s:option_init('expand_inside_quotes', 0) " jump_expansion 4 0.000086 0.000024 call s:option_init("jump_expansion", 0) " smart_matchpairs 4 0.000089 0.000014 call s:option_init("smart_matchpairs", '^\%(\w\|\!\|[£$]\|[^[:punct:][:space:]]\)') " smart_quotes " XXX: backward compatibility. Ugly, should go the way of the dodo soon. 4 0.000093 0.000023 let quotes = escape(join(s:get('quotes_list', []), ''), '\-^[]') 4 0.000011 let default_smart_quotes = '\%(\w\|[^[:punct:][:space:]' . quotes . ']\|\%(\\\\\)*\\\)\%#\|\%#\%(\w\|[^[:space:][:punct:]' . quotes . ']\)' 4 0.000007 if exists('g:delimitMate_smart_quotes') && type(g:delimitMate_smart_quotes) == type(0) if g:delimitMate_smart_quotes unlet g:delimitMate_smart_quotes else unlet g:delimitMate_smart_quotes let g:delimitMate_smart_quotes = '' endif 4 0.000001 endif 4 0.000006 if exists('b:delimitMate_smart_quotes') && type(b:delimitMate_smart_quotes) == type(0) if b:delimitMate_smart_quotes unlet b:delimitMate_smart_quotes if exists('g:delimitMate_smart_quotes') && type(g:delimitMate_smart_quotes) && g:delimitMate_smart_quotes let b:delimitMate_smart_quotes = default_smart_quotes endif else unlet b:delimitMate_smart_quotes let b:delimitMate_smart_quotes = '' endif 4 0.000001 endif 4 0.000090 0.000014 call s:option_init("smart_quotes", default_smart_quotes) " apostrophes 4 0.000087 0.000013 call s:option_init("apostrophes", "") 4 0.000149 0.000030 call s:option_init("apostrophes_list", split(s:get('apostrophes', ''), ":\s*")) " tab2exit 4 0.000086 0.000012 call s:option_init("tab2exit", 1) " balance_matchpairs 4 0.000098 0.000024 call s:option_init("balance_matchpairs", 0) " eol marker 4 0.000085 0.000024 call s:option_init("insert_eol_marker", 1) 4 0.000086 0.000012 call s:option_init("eol_marker", "") " Everything is fine. 4 0.000002 return 1 FUNCTION 50_Map() Defined: ~/.vim/plugged/delimitmate/plugin/delimitMate.vim:157 Called 4 times Total time: 0.002693 Self time: 0.000163 count total (s) self (s) " Set mappings: 4 0.000002 try 4 0.000003 let save_keymap = &keymap 4 0.000003 let save_iminsert = &iminsert 4 0.000003 let save_imsearch = &imsearch 4 0.000008 let save_cpo = &cpo 4 0.000016 set keymap= 4 0.000010 set cpo&vim 4 0.000020 0.000007 silent! doautocmd User delimitMate_map 4 0.000062 0.000016 if s:get('autoclose', 1) 4 0.001859 0.000024 call s:AutoClose() else call s:NoAutoClose() 4 0.000001 endif 4 0.000650 0.000014 call s:ExtraMappings() 4 0.000002 finally 4 0.000014 let &cpo = save_cpo 4 0.000008 let &keymap = save_keymap 4 0.000013 let &iminsert = save_iminsert 4 0.000005 let &imsearch = save_imsearch 4 0.000001 endtry 4 0.000003 let b:delimitMate_enabled = 1 FUNCTION 222_write_buffer() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/diff.vim:399 Called 6 times Total time: 0.004211 Self time: 0.004211 count total (s) self (s) 6 0.000772 let bufcontents = getbufline(a:bufnr, 1, '$') 6 0.000016 if bufcontents == [''] && line2byte(1) == -1 " Special case: completely empty buffer. " A nearly empty buffer of only a newline has line2byte(1) == 1. call writefile([], a:file) return 6 0.000003 endif 6 0.000022 if getbufvar(a:bufnr, '&fileformat') ==# 'dos' call map(bufcontents, 'v:val."\r"') 6 0.000002 endif 6 0.000011 if getbufvar(a:bufnr, '&endofline') 6 0.000013 call add(bufcontents, '') 6 0.000002 endif 6 0.000012 let fenc = getbufvar(a:bufnr, '&fileencoding') 6 0.000008 if fenc !=# &encoding call map(bufcontents, 'iconv(v:val, &encoding, "'.fenc.'")') 6 0.000002 endif 6 0.000009 if getbufvar(a:bufnr, '&bomb') let bufcontents[0]=''.bufcontents[0] 6 0.000002 endif " The file we are writing to is a temporary file. Sometimes the parent " directory is deleted outside Vim but, because Vim caches the directory " name at startup and does not check for its existence subsequently, Vim " does not realise. This causes E482 errors. 6 0.000004 try 6 0.003207 call writefile(bufcontents, a:file, 'b') catch /E482/ call mkdir(fnamemodify(a:file, ':h'), '', '0700') call writefile(bufcontents, a:file, 'b') 6 0.000006 endtry FUNCTION airline#extensions#tabline#builder#new() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim:227 Called 6 times Total time: 0.000275 Self time: 0.000114 count total (s) self (s) 6 0.000222 0.000060 let builder = airline#builder#new(a:context) 6 0.000012 let builder._build = builder.build 6 0.000032 call extend(builder, s:prototype, 'force') 6 0.000005 return builder FUNCTION airline#extensions#tabline#get_buffer_name() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim:231 Called 40 times Total time: 0.011800 Self time: 0.001563 count total (s) self (s) 40 0.000708 0.000504 let buffers = a:0 ? a:1 : airline#extensions#tabline#buflist#list() 40 0.000133 let formatter = get(g:, 'airline#extensions#tabline#formatter', 'default') 40 0.010934 0.000901 return airline#extensions#tabline#formatters#{formatter}#format(a:nr, buffers) FUNCTION spelunker#get_buffer#filter_account_name() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker/get_buffer.vim:76 Called 2 times Total time: 0.000003 Self time: 0.000003 count total (s) self (s) 2 0.000002 if g:spelunker_disable_account_name_checking == 0 2 0.000001 return a:text endif " memo: single quote ' -> '' let l:text = substitute(a:text, '\%([a-zA-Z0-9.!#$%&''*+\/=?^_`{|}~-]\+\)\@90_notify() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/client.vim:212 Called 626 times Total time: 0.025533 Self time: 0.023912 count total (s) self (s) 626 0.005533 0.003912 let channel = coc#client#get_channel(self) 626 0.000464 if empty(channel) return '' 626 0.000122 endif 626 0.000317 try 626 0.000253 if s:is_vim call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n") 626 0.000204 else 626 0.006309 call call('rpcnotify', [channel, a:method] + a:args) 626 0.000204 endif catch /.*/ if v:exception =~# 'E475' if get(g:, 'coc_vim_leaving', 0) return endif echohl Error | echom '['.self.name.'] server connection lost' | echohl None let name = self.name call s:on_exit(name, 0) execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:] elseif v:exception =~# 'E12' " neovim's bug, ignore it else echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None endif 626 0.000281 endtry FUNCTION 204_is_runnable() Defined: ~/.vim/plugged/spelunker.vim/autoload/spelunker.vim:214 Called 18 times Total time: 0.001986 Self time: 0.001148 count total (s) self (s) 18 0.001777 0.000939 if spelunker#toggle#is_enabled() == 0 return 0 18 0.000012 endif 18 0.000086 if g:enable_spelunker_vim_on_readonly == 0 && &readonly return 0 18 0.000010 endif 18 0.000016 return 1 FUNCTION 149_is_excluded_window() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions.vim:112 Called 22 times Total time: 0.000531 Self time: 0.000531 count total (s) self (s) 22 0.000033 for matchft in g:airline_exclude_filetypes if matchft ==# &ft return 1 endif 22 0.000010 endfor 88 0.000056 for matchw in g:airline_exclude_filenames 66 0.000217 if matchstr(expand('%'), matchw) ==# matchw return 1 66 0.000014 endif 88 0.000023 endfor 22 0.000021 if g:airline_exclude_preview && &previewwindow return 1 22 0.000005 endif 22 0.000010 return 0 FUNCTION go#util#EchoSuccess() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:437 Called 2 times Total time: 0.000051 Self time: 0.000007 count total (s) self (s) 2 0.000051 0.000007 call s:echo(a:msg, 'Function') FUNCTION coc#highlight#buffer_update() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/highlight.vim:24 Called 4 times Total time: 0.000116 Self time: 0.000030 count total (s) self (s) 4 0.000003 if !bufloaded(a:bufnr) return 4 0.000001 endif 4 0.000004 if empty(a:highlights) 4 0.000104 0.000017 call coc#highlight#clear_highlight(a:bufnr, a:key, 0, -1) 4 0.000001 return endif let priority = get(a:, 1, v:null) let changedtick = getbufvar(a:bufnr, 'changedtick', 0) if type(get(a:, 2, v:null)) == 0 && changedtick > a:2 return endif let hls = map(copy(a:highlights), "{'hlGroup':v:val[0],'lnum':v:val[1],'colStart':v:val[2],'colEnd':v:val[3],'combine':get(v:val,4,1),'start_incl':get(v:val,5,0),'end_incl':get(v:val,6,0)}") if len(hls) <= g:coc_highlight_maximum_count call coc#highlight#update_highlights(a:bufnr, a:key, hls, 0, -1, priority) return endif let linecount = coc#compat#buf_line_count(a:bufnr) let groups = s:group_hls(hls, linecount) call s:update_highlights_timer(a:bufnr, changedtick, a:key, priority, groups, 0) FUNCTION 184_getKind() Defined: ~/.vim/plugged/tagbar/autoload/tagbar/prototypes/typeinfo.vim:17 Called 40 times Total time: 0.000315 Self time: 0.000315 count total (s) self (s) "let idx = self.kinddict[a:kind] 40 0.000178 let idx = has_key(self.kinddict, a:kind) ? self.kinddict[a:kind] : -1 40 0.000079 return self.kinds[idx] FUNCTION 97_abs_path() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim:222 Called 56 times Total time: 0.009886 Self time: 0.009886 count total (s) self (s) 56 0.007758 let p = resolve(expand('#'.a:bufnr.':p')) " Remove extra parts from fugitive's filepaths 56 0.001643 let p = substitute(substitute(p, '^fugitive:', '', ''), '\v\.git/\x{40,}/', '', '') 56 0.000330 return a:shellesc ? gitgutter#utility#shellescape(p) : p FUNCTION airline#util#has_lawrencium() Defined: ~/.vim/plugged/vim-airline/autoload/airline/util.vim:160 Called 64 times Total time: 0.000240 Self time: 0.000240 count total (s) self (s) 64 0.000093 if !exists("s:has_lawrencium") let s:has_lawrencium = exists('*lawrencium#statusline') 64 0.000015 endif 64 0.000043 return s:has_lawrencium FUNCTION 180_nvim_untracked_job_handler() Defined: ~/.vim/plugged/vim-airline/autoload/airline/async.vim:238 Called 1 time Total time: 0.000031 Self time: 0.000023 count total (s) self (s) 1 0.000001 if a:event == 'exit' 1 0.000026 0.000018 call s:untracked_output(self, self.buf) 1 0.000001 if has_key(s:untracked_jobs, self.file) 1 0.000001 call remove(s:untracked_jobs, self.file) 1 0.000000 endif 1 0.000000 endif FUNCTION airline#extensions#coc#get_current_function() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/coc.vim:45 Called 68 times Total time: 0.000149 Self time: 0.000149 count total (s) self (s) 68 0.000115 return get(b:, 'coc_current_function', '') FUNCTION 231_GodocView() Defined: ~/.vim/plugged/vim-go/autoload/go/doc.vim:75 Called 2 times Total time: 0.081205 Self time: 0.002783 count total (s) self (s) " popup window 2 0.000019 0.000013 if go#config#DocPopupWindow() if exists('*popup_atcursor') && exists('*popup_clear') call popup_clear() let borderchars = ['-', '|', '-', '|', '+', '+', '+', '+'] if &encoding == "utf-8" let borderchars = ['─', '│', '─', '│', '┌', '┐', '┘', '└'] endif call popup_atcursor(split(a:content, '\n'), { 'padding': [1, 1, 1, 1], 'borderchars': borderchars, 'border': [1, 1, 1, 1], }) elseif has('nvim') && exists('*nvim_open_win') let lines = split(a:content, '\n') let height = 0 let width = 0 for line in lines let lw = strdisplaywidth(line) if lw > width let width = lw endif let height += 1 endfor let width += 1 " right margin let max_height = go#config#DocMaxHeight() if height > max_height let height = max_height endif let buf = nvim_create_buf(v:false, v:true) call nvim_buf_set_lines(buf, 0, -1, v:true, lines) let opts = { 'relative': 'cursor', 'row': 1, 'col': 0, 'width': width, 'height': height, 'style': 'minimal', } call nvim_open_win(buf, v:true, opts) setlocal nomodified nomodifiable filetype=godoc let b:go_package_name = a:package " close easily with CR, Esc and q noremap :close noremap :close noremap q :close endif return 2 0.000000 endif 2 0.000102 let l:wd = getcwd() " set the working directory to the directory of the current file when the " filetype is go so that getting doc in the doc window will work regardless " of what the the starting window's working directory is. 2 0.000081 if &filetype == 'go' && expand('%:p') isnot '' 2 0.000056 let l:wd = expand('%:p:h') 2 0.000001 endif " reuse existing buffer window if it exists otherwise create a new one 2 0.000006 let is_visible = bufexists(s:buf_nr) && bufwinnr(s:buf_nr) != -1 2 0.000002 if !bufexists(s:buf_nr) call execute(a:newposition) sil file `="[Godoc]"` let s:buf_nr = bufnr('%') 2 0.000002 elseif bufwinnr(s:buf_nr) == -1 2 0.015238 0.000153 call execute(a:position) 2 0.039687 0.001320 call execute(printf('%dbuffer', s:buf_nr)) elseif bufwinid(s:buf_nr) != bufwinid('%') call win_gotoid(bufwinid(s:buf_nr)) 2 0.000000 endif 2 0.000001 if &filetype == 'godoc' let l:wd = get(b:, 'go_godoc_wd', l:wd) 2 0.000000 endif " if window was not visible then resize it 2 0.000001 if !is_visible 2 0.000002 if a:position == "split" " cap window height to 20, but resize it for smaller contents 2 0.000010 0.000007 let max_height = go#config#DocMaxHeight() 2 0.000006 let content_height = len(split(a:content, "\n")) 2 0.000002 if content_height > max_height exe 'resize ' . max_height 2 0.000000 else 2 0.000029 exe 'resize ' . content_height 2 0.000000 endif else " set a sane maximum width for vertical splits. In this case the minimum " that fits the godoc for package http without extra linebreaks and line " numbers on exe 'vertical resize 84' 2 0.000000 endif 2 0.000000 endif 2 0.024950 0.000005 setlocal filetype=godoc 2 0.000002 let b:go_package_name = a:package 2 0.000002 let b:go_godoc_wd = l:wd 2 0.000004 0.000003 setlocal bufhidden=delete 2 0.000003 0.000002 setlocal buftype=nofile 2 0.000625 0.000623 setlocal noswapfile 2 0.000005 0.000003 setlocal nobuflisted 2 0.000004 0.000002 setlocal nocursorline 2 0.000003 0.000002 setlocal nocursorcolumn 2 0.000034 0.000032 setlocal iskeyword+=: 2 0.000030 0.000029 setlocal iskeyword-=- 2 0.000003 0.000002 setlocal modifiable 2 0.000006 %delete _ 2 0.000030 call append(0, split(a:content, "\n")) 2 0.000104 sil $delete _ 2 0.000008 0.000005 setlocal nomodifiable 2 0.000030 sil normal! gg " close easily with enter 2 0.000004 noremap :close 2 0.000002 noremap :close " make sure any key that sends an escape as a prefix (e.g. the arrow keys) " don't cause the window to close. 2 0.000002 nnoremap [ [ FUNCTION 215_timer_stop() Defined: ~/.vim/plugged/vim-go/autoload/go/auto.vim:118 Called 12 times Total time: 0.000057 Self time: 0.000057 count total (s) self (s) 12 0.000011 if s:timer_id 6 0.000013 call timer_stop(s:timer_id) 6 0.000006 let s:timer_id = 0 12 0.000004 endif FUNCTION airline#extensions#nvimlsp#get_error() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/nvimlsp.vim:62 Called 14 times Total time: 0.001080 Self time: 0.000107 count total (s) self (s) 14 0.001076 0.000102 return airline#extensions#nvimlsp#get('Error') FUNCTION airline#extensions#tabline#new_builder() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim:237 Called 6 times Total time: 0.000508 Self time: 0.000232 count total (s) self (s) 6 0.000074 let builder_context = { 'active' : 1, 'tabline' : 1, 'right_sep' : get(g:, 'airline#extensions#tabline#right_sep' , g:airline_right_sep), 'right_alt_sep' : get(g:, 'airline#extensions#tabline#right_alt_sep', g:airline_right_alt_sep), } 6 0.000011 if get(g:, 'airline_powerline_fonts', 0) let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , g:airline_left_sep) let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , g:airline_left_alt_sep) 6 0.000003 else 6 0.000021 let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , ' ') 6 0.000017 let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , '|') 6 0.000002 endif 6 0.000340 0.000064 return airline#extensions#tabline#builder#new(builder_context) FUNCTION airline#extensions#ctrlp#apply() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlp.vim:70 Called 14 times Total time: 0.000072 Self time: 0.000072 count total (s) self (s) " disable statusline overwrite if ctrlp already did it 14 0.000064 return match(&statusline, 'CtrlPwhite') >= 0 ? -1 : 0 FUNCTION airline#extensions#hunks#get_hunks() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/hunks.vim:109 Called 62 times Total time: 0.009304 Self time: 0.004354 count total (s) self (s) 62 0.000110 if !get(w:, 'airline_active', 0) return '' 62 0.000017 endif " Cache values, so that it isn't called too often 62 0.001580 0.001148 if exists("b:airline_hunks") && get(b:, 'airline_changenr', 0) == b:changedtick && airline#util#winwidth() == get(s:, 'airline_winwidth', 0) && get(b:, 'source_func', '') isnot# 's:get_hunks_signify' && get(b:, 'source_func', '') isnot# 's:get_hunks_gitgutter' && get(b:, 'source_func', '') isnot# 's:get_hunks_empty' && get(b:, 'source_func', '') isnot# 's:get_hunks_changes' && get(b:, 'source_func', '') isnot# 's:get_hunks_gitsigns' && get(b:, 'source_func', '') isnot# 's:get_hunks_coc' return b:airline_hunks 62 0.000016 endif 62 0.004380 0.000571 let hunks = airline#extensions#hunks#get_raw_hunks() 62 0.000044 let string = '' 62 0.000588 0.000371 let winwidth = get(airline#parts#get('hunks'), 'minwidth', 100) 62 0.000061 if !empty(hunks) " hunks should contain [added, changed, deleted] for i in [0, 1, 2] if (s:non_zero_only == 0 && airline#util#winwidth() > winwidth) || hunks[i] > 0 let string .= printf('%s%s ', s:hunk_symbols[i], hunks[i]) endif endfor 62 0.000017 endif 62 0.000793 0.000683 if index(airline#extensions#get_loaded_extensions(), 'branch') == -1 && string[-1:] == ' ' " branch extension not loaded, skip trailing whitespace let string = string[0:-2] 62 0.000016 endif 62 0.000077 let b:airline_hunks = string 62 0.000075 let b:airline_changenr = b:changedtick 62 0.000743 0.000363 let s:airline_winwidth = airline#util#winwidth() 62 0.000035 return string FUNCTION 51_set() Defined: ~/.vim/plugged/delimitmate/autoload/delimitMate.vim:15 Called 92 times Total time: 0.000297 Self time: 0.000297 count total (s) self (s) 92 0.000061 let bufnr = bufnr('%') 92 0.000066 if !has_key(s:options, bufnr) let s:options[bufnr] = {} 92 0.000015 endif 92 0.000097 let s:options[bufnr][a:name] = a:value FUNCTION 149_check_defined_section() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions.vim:48 Called 14 times Total time: 0.000085 Self time: 0.000085 count total (s) self (s) 14 0.000037 if !exists('w:airline_section_{a:name}') 14 0.000037 let w:airline_section_{a:name} = g:airline_section_{a:name} 14 0.000004 endif FUNCTION coc#util#get_loaded_bufs() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/util.vim:417 Called 16 times Total time: 0.000340 Self time: 0.000340 count total (s) self (s) 16 0.000320 return map(getbufinfo({'bufloaded': 1}),'v:val["bufnr"]') FUNCTION 293() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:8 Called 28 times Total time: 0.000068 Self time: 0.000068 count total (s) self (s) 28 0.000054 call add(self._sections, ['|', a:0 ? a:1 : '%=']) FUNCTION 294() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:12 Called 6 times Total time: 0.000071 Self time: 0.000055 count total (s) self (s) 6 0.000025 let spc = empty(a:contents) ? '' : g:airline_symbols.space 6 0.000044 0.000027 call self.add_section(a:group, spc.a:contents.spc) FUNCTION 295() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:17 Called 162 times Total time: 0.000354 Self time: 0.000354 count total (s) self (s) 162 0.000323 call add(self._sections, [a:group, a:contents]) FUNCTION 297() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:25 Called 6 times Total time: 0.000017 Self time: 0.000017 count total (s) self (s) 6 0.000015 call insert(self._sections, [a:group, a:contents], a:position) FUNCTION 298() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:29 Called 12 times Total time: 0.000031 Self time: 0.000031 count total (s) self (s) 12 0.000029 call insert(self._sections, ['', a:text], a:position) FUNCTION 299() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:33 Called 6 times Total time: 0.000012 Self time: 0.000012 count total (s) self (s) 6 0.000010 return len(self._sections) FUNCTION 79_ParseOptions() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:166 Called 2 times Total time: 0.000021 Self time: 0.000021 count total (s) self (s) 2 0.000002 for option in a:declarations if has_key(s:modeline_booleans, matchstr(option, '^\%(no\)\=\zs\w\+$')) let a:into[s:modeline_booleans[matchstr(option, '^\%(no\)\=\zs\w\+')]] = [option !~# '^no'] + a:000 elseif has_key(s:modeline_numbers, matchstr(option, '^\w\+\ze=[1-9]\d*$')) let a:into[s:modeline_numbers[matchstr(option, '^\w\+')]] = [str2nr(matchstr(option, '\d\+$'))] + a:000 elseif option =~# '^\%(ft\|filetype\)=[[:alnum:]._-]*$' let a:into.filetype = [matchstr(option, '=\zs.*')] + a:000 endif if option ==# 'nomodeline' || option ==# 'noml' return 1 endif 2 0.000001 endfor 2 0.000001 return 0 FUNCTION airline#highlighter#reset_hlcache() Defined: ~/.vim/plugged/vim-airline/autoload/airline/highlighter.vim:64 Called 8 times Total time: 0.000319 Self time: 0.000319 count total (s) self (s) 8 0.000316 let s:hl_groups = {} FUNCTION go#config#Updatetime() Defined: ~/.vim/plugged/vim-go/autoload/go/config.vim:520 Called 10 times Total time: 0.000045 Self time: 0.000045 count total (s) self (s) 10 0.000023 let go_updatetime = get(g:, 'go_updatetime', 800) 10 0.000015 return go_updatetime == 0 ? &updatetime : go_updatetime FUNCTION 202_clear() Defined: ~/.vim/plugged/vim-go/autoload/go/statusline.vim:100 Called 4 times Total time: 0.000094 Self time: 0.000091 count total (s) self (s) 8 0.000013 for [status_dir, status] in items(s:statuses) 4 0.000010 let elapsed_time = reltimestr(reltime(status.created_at)) " strip whitespace 4 0.000020 let elapsed_time = substitute(elapsed_time, '^\s*\(.\{-}\)\s*$', '\1', '') 4 0.000004 if str2nr(elapsed_time) > 10 call remove(s:statuses, status_dir) 4 0.000001 endif 8 0.000002 endfor 4 0.000003 if len(s:statuses) == 0 let s:statuses = {} 4 0.000001 endif " force to update the statusline, otherwise the user needs to move the " cursor 4 0.000013 0.000010 exe 'let &ro = &ro' FUNCTION 161_airline_nvimlsp_count() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/nvimlsp.vim:13 Called 16 times Total time: 0.000027 Self time: 0.000027 count total (s) self (s) 16 0.000022 return a:cnt ? a:symbol. a:cnt : '' FUNCTION go#util#IsWin() Defined: ~/.vim/plugged/vim-go/autoload/go/util.vim:40 Called 1700 times Total time: 0.002576 Self time: 0.002576 count total (s) self (s) 1700 0.002323 return has('win32') FUNCTION delimitMate#Set() Defined: ~/.vim/plugged/delimitmate/autoload/delimitMate.vim:258 Called 92 times Total time: 0.000597 Self time: 0.000300 count total (s) self (s) 92 0.000588 0.000291 return call('s:set', a:000) FUNCTION 231_godocWord() Defined: ~/.vim/plugged/vim-go/autoload/go/doc.vim:203 Called 2 times Total time: 15.517691 Self time: 0.000537 count total (s) self (s) 2 0.000005 let words = a:000 2 0.000002 if a:0 is 0 2 0.000012 let oldiskeyword = &iskeyword " TODO(bc): include / in iskeyword when filetype is godoc? 2 0.000151 0.000133 setlocal iskeyword+=. 2 0.000024 let word = expand('') 2 0.000113 0.000105 let &iskeyword = oldiskeyword 2 0.000095 let word = substitute(word, '[^a-zA-Z0-9\\/._~-]', '', 'g') 2 0.000043 let words = split(word, '\.\ze[^./]\+$') 2 0.000002 endif 2 0.000007 if !len(words) return [] 2 0.000001 endif 2 0.000009 let pkg = words[0] 2 0.000004 if len(words) == 1 let exported_name = '' if &filetype is 'godoc' if pkg =~ '^[A-Z]' let exported_name = pkg let pkg = b:go_package_name endif endif 2 0.000003 else 2 0.000005 let exported_name = words[1] 2 0.000001 endif 2 0.000009 if &filetype isnot 'godoc' 2 15.517152 0.000024 let packages = go#tool#Imports() 2 0.000003 if has_key(packages, pkg) let pkg = packages[pkg] 2 0.000000 endif 2 0.000000 endif 2 0.000002 return [pkg, exported_name] FUNCTION airline#extensions#get_loaded_extensions() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions.vim:521 Called 62 times Total time: 0.000110 Self time: 0.000110 count total (s) self (s) 62 0.000083 return s:loaded_ext FUNCTION 80_LocalVimRCReadPersistent() Defined: ~/.vim/plugged/vim-localvimrc/plugin/localvimrc.vim:723 Called 2 times Total time: 0.000079 Self time: 0.000071 count total (s) self (s) 2 0.000001 if (s:localvimrc_persistent >= 1) " check if persistence file is readable 2 0.000016 if filereadable(s:localvimrc_persistence_file) " check if reading is needed let l:checksum = s:LocalVimRCCalcChecksum(s:localvimrc_persistence_file) if l:checksum != s:localvimrc_persistence_file_checksum " read persistence file let l:serialized = readfile(s:localvimrc_persistence_file) call s:LocalVimRCDebug(3, "read persistent data: " . string(l:serialized)) " deserialize stored persistence information for l:line in l:serialized let l:columns = split(l:line, '[^\\]\zs|\|^|', 1) if len(l:columns) != 3 && len(l:columns) != 4 call s:LocalVimRCError("error in persistence file") else if len(l:columns) == 3 let [ l:key, l:answer, l:checksum ] = l:columns let l:sandbox = "" elseif len(l:columns) == 4 let [ l:key, l:answer, l:sandbox, l:checksum ] = l:columns endif let l:key = substitute(l:key, '\\|', '|', "g") let l:answer = substitute(l:answer, '\\|', '|', "g") let l:sandbox = substitute(l:sandbox, '\\|', '|', "g") let l:checksum = substitute(l:checksum, '\\|', '|', "g") let s:localvimrc_data[l:key] = [ l:answer, l:sandbox, l:checksum ] endif endfor else call s:LocalVimRCDebug(3, "persistence file did not change") endif 2 0.000000 else 2 0.000017 0.000009 call s:LocalVimRCDebug(1, "unable to read persistence file '" . s:localvimrc_persistence_file . "'") 2 0.000000 endif 2 0.000000 endif FUNCTION gitgutter#diff#process_hunks() Defined: ~/.vim/plugged/vim-gitgutter/autoload/gitgutter/diff.vim:249 Called 6 times Total time: 0.000033 Self time: 0.000033 count total (s) self (s) 6 0.000006 let modified_lines = [] 6 0.000005 for hunk in a:hunks call extend(modified_lines, s:process_hunk(a:bufnr, hunk)) 6 0.000002 endfor 6 0.000004 return modified_lines FUNCTION coc#string#byte_index() Defined: ~/.vim/plugged/coc.nvim/autoload/coc/string.vim:35 Called 428 times Total time: 0.074302 Self time: 0.074302 count total (s) self (s) 428 0.000362 if a:character <= 0 return 0 428 0.000146 endif " code unit index 428 0.000272 let i = 0 428 0.000279 let len = 0 11074 0.021949 for char in split(a:line, '\zs') 11074 0.014964 let i += char2nr(char) > 65535 ? 2 : 1 11074 0.012290 let len += strlen(char) 11074 0.007409 if i >= a:character 428 0.000162 break 10646 0.002971 endif 11074 0.006611 endfor 428 0.000257 return len FUNCTION 79_UserOptions() Defined: ~/.vim/plugged/vim-sleuth/plugin/sleuth.vim:453 Called 4 times Total time: 0.000030 Self time: 0.000030 count total (s) self (s) 4 0.000005 if exists('b:sleuth_' . a:name) let source = 'b:sleuth_' . a:name 4 0.000007 elseif exists('g:sleuth_' . a:ft . '_' . a:name) let source = 'g:sleuth_' . a:ft . '_' . a:name 4 0.000001 endif 4 0.000008 if !exists('l:source') || type(eval(source)) == type(function('tr')) 4 0.000002 return {} endif let val = eval(source) let options = {} if type(val) == type('') call s:ParseOptions(split(substitute(val, '\S\@= 0') return options FUNCTION 192_debug() Defined: ~/.vim/plugged/vim-go/autoload/go/lsp.vim:1365 Called 27 times Total time: 0.000333 Self time: 0.000333 count total (s) self (s) 27 0.000046 let l:shouldStart = s:logtimer is 0 27 0.000089 let s:log = add(s:log, [a:event, a:data]) 27 0.000020 if l:shouldStart 21 0.000121 let s:logtimer = timer_start(10, function('s:debugasync', [])) 27 0.000011 endif FUNCTION 181_HighlightTag() Defined: ~/.vim/plugged/tagbar/autoload/tagbar.vim:2246 Called 14 times Total time: 0.005981 Self time: 0.000560 count total (s) self (s) 14 0.000031 if g:tagbar_no_autocmds " If no autocmds are enabled, then it doesn't make sense to highlight " anything as the cursor can move around and any highlighting would be " inaccurate return 14 0.000006 endif 14 0.000035 let noauto = a:0 > 0 ? a:1 : 0 14 0.000018 let tagline = 0 14 0.000026 let force = a:0 > 1 ? a:2 : 0 14 0.000016 if a:0 > 2 let tag = s:GetNearbyTag(g:tagbar_highlight_method, 0, a:3) 14 0.000008 else 14 0.005582 0.000161 let tag = s:GetNearbyTag(g:tagbar_highlight_method, 0) 14 0.000008 endif 14 0.000022 if !empty(tag) 14 0.000024 let tagline = tag.tline 14 0.000006 endif " Don't highlight the tag again if it's the same one as last time. " This prevents the Tagbar window from jumping back after scrolling with " the mouse. 14 0.000038 if !force && tagline ==# s:last_highlight_tline 14 0.000010 return else let s:last_highlight_tline = tagline endif let tagbarwinnr = bufwinnr(s:TagbarBufName()) if tagbarwinnr == -1 return endif if tagbarwinnr == winnr() let in_tagbar = 1 else let in_tagbar = 0 let prevwinnr = winnr() call s:goto_win('p', 1) let pprevwinnr = winnr() call s:goto_win(tagbarwinnr, 1) endif try match none " No tag above cursor position so don't do anything if tagline == 0 return endif if g:tagbar_autoshowtag == 1 || a:openfolds call s:OpenParents(tag) endif " Check whether the tag is inside a closed fold and highlight the parent " instead in that case let tagline = tag.getClosedParentTline() " Parent tag line number is invalid, better don't do anything if tagline <= 0 return endif " Go to the line containing the tag execute tagline " Make sure the tag is visible in the window call winline() let foldpat = '[' . g:tagbar#icon_open . g:tagbar#icon_closed . ' ]' " If printing the line number of the tag to the left, and the tag is " visible (I.E. parent isn't folded) let identifier = '\zs\V' . escape(tag.name, '/\') . '\m\ze' if g:tagbar_show_tag_linenumbers == 2 && tagline == tag.tline let pattern = '/^\%' . tagline . 'l\s*' . foldpat . '[-+# ]\[[0-9]\+\] \?' . identifier . '/' else let pattern = '/^\%' . tagline . 'l\s*' . foldpat . '[-+# ]\?' . identifier . '/' endif call tagbar#debug#log("Highlight pattern: '" . pattern . "'") if hlexists('TagbarHighlight') " Safeguard in case syntax highlighting is disabled execute 'match TagbarHighlight ' . pattern else execute 'match Search ' . pattern endif finally if !in_tagbar call s:goto_win(pprevwinnr, 1) call s:goto_win(prevwinnr, noauto) endif redraw endtry FUNCTION airline#extensions#tabline#add_tab_label() Defined: ~/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim:37 Called 6 times Total time: 0.000080 Self time: 0.000080 count total (s) self (s) 6 0.000017 let show_tab_count = get(g:, 'airline#extensions#tabline#show_tab_count', 1) 6 0.000007 if show_tab_count == 2 call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$'))) 6 0.000012 elseif show_tab_count == 1 && tabpagenr('$') > 1 call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$'))) 6 0.000002 endif FUNCTION airline#builder#new() Defined: ~/.vim/plugged/vim-airline/autoload/airline/builder.vim:234 Called 28 times Total time: 0.000542 Self time: 0.000542 count total (s) self (s) 28 0.000153 let builder = copy(s:prototype) 28 0.000040 let builder._context = a:context 28 0.000028 let builder._sections = [] 28 0.000266 call extend(builder._context, { 'left_sep': g:airline_left_sep, 'left_alt_sep': g:airline_left_alt_sep, 'right_sep': g:airline_right_sep, 'right_alt_sep': g:airline_right_alt_sep, }, 'keep') 28 0.000019 return builder FUNCTIONS SORTED ON TOTAL TIME count total (s) self (s) function 2 15.704019 0.000194 go#doc#Open() 2 15.517691 0.000537 231_godocWord() 2 15.517129 0.006072 go#tool#Imports() 276 15.510566 0.009508 go#util#ExecInDir() 276 15.501058 0.005656 go#util#ExecInWorkDir() 276 15.430301 0.006237 go#util#Exec() 276 15.368784 0.007107 106_exec() 276 15.342938 0.014858 106_system() 54 0.351706 0.007506 airline#check_mode() 32 0.330127 0.046126 airline#highlighter#highlight() 1131 0.222263 0.077228 airline#highlighter#exec() 2185 0.201807 0.101248 airline#highlighter#get_highlight() 459 0.181610 0.015702 155_exec_separator() 34 0.106850 0.013174 300() 2 0.104928 0.000128 go#lsp#Doc() 2 0.104170 0.099662 234_await() 14 0.101823 0.000841 airline#update_statusline() 22 0.099263 0.000735 151_invoke_funcrefs() 8740 0.093318 155_get_syn() 14 0.090927 0.016625 coc#highlight#match_ranges() FUNCTIONS SORTED ON SELF TIME count total (s) self (s) function 2185 0.201807 0.101248 airline#highlighter#get_highlight() 2 0.104170 0.099662 234_await() 8740 0.093318 155_get_syn() 1131 0.222263 0.077228 airline#highlighter#exec() 428 0.074302 coc#string#byte_index() 32 0.330127 0.046126 airline#highlighter#highlight() 276 0.055280 0.044958 go#path#CheckBinPath() 552 0.065101 0.032568 go#util#Chdir() 626 0.025533 0.023912 90_notify() 14 0.090927 0.016625 coc#highlight#match_ranges() 459 0.181610 0.015702 155_exec_separator() 1131 0.015698 155_CheckDefined() 276 0.016733 0.015587 go#util#Shelljoin() 276 15.342938 0.014858 106_system() 34 0.106850 0.013174 300() 232 0.040250 0.011631 176_section_is_empty() 145 0.011068 155_GetHiCmd() 42 0.011458 0.010200 181_GetNearbyTag() 34 0.010042 169_map_keys() 56 0.009886 97_abs_path()