Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance is dramatically bad comparing to fzf.vim #343

Closed
alex-popov-tech opened this issue Mar 5, 2020 · 11 comments · Fixed by #383
Closed

Performance is dramatically bad comparing to fzf.vim #343

alex-popov-tech opened this issue Mar 5, 2020 · 11 comments · Fixed by #383

Comments

@alex-popov-tech
Copy link

alex-popov-tech commented Mar 5, 2020

Environment (please complete the following information):

  • OS: Macos catalina
  • (Neo)Vim version: nvim 0.4.3
  • vim-clap version: master 5b48e30
  • Have you reproduced with a minimal vimrc: No
  • Have you updated to the latest plugin version: yes
  • Have you upgraded to/compiled the latest Rust binary: yes

Describe the bug
I know that comparing this plugin to fzf.vim is not very relevant, but just to be more descriprive what would i expect from this plugin :) The problem is - when i typing some text in Clap fzf it loads very slowly and i can see several chars appear at the same time...long story short - here is the video https://share.getcloudapp.com/P8uRk8lB

Clap debug

            has cargo: 1
            has maple: /Users/alexanderpopov/.config/nvim/plugged/vim-clap/bin/maple
           maple info: version 0.1.8 (git v0.8), built for x86_64-apple-darwin by rustc 1.41.0 (5e1a79984 2020-01-27).

         has +python3: 1
has py dynamic module: 0
     Current FileType: vim
Third Party Providers: []
       Global Options:
    let g:clap#autoload_dir = '/Users/alexanderpopov/.config/nvim/plugged/vim-clap/autoload'
    let g:clap#provider_alias = {'gfiles': 'git_files', 'hist:': 'command_history', 'hist/': 'search_history'}
    let g:clap_disable_bottom_top = 0
    let g:clap_enable_icon = 0
    let g:clap_forerunner_status_sign = {'done': '•', 'running': '!'}
    let g:clap_insert_mode_only = v:false
    let g:clap_no_matches_msg = 'NO MATCHES FOUND'
    let g:clap_open_action = {'ctrl-v': 'vsplit', 'ctrl-x': 'split', 'ctrl-t': 'tab split'}
    let g:clap_search_box_border_style = 'curve'
    let g:clap_search_box_border_symbols = {'nil': ['', ''], 'curve': ['', ''], 'arrow': ['', '']}
  Provider Variables:
    let g:clap_providers_relaunch_code = '@@'

To Reproduce
Steps to reproduce the behavior:

  1. As a reference you can use my dotfiles - https://github.com/alex-popov-tech/.dotfiles/blob/master/nvim/plugins.vim#L154
  2. Try to use Clap files or Clap gfiles

Note - it seems like lags disappear after some quantity of chars

Expected behavior
Text should appear in search bar smoothly

Actual behavior
While typing text is lagging

Additional context
Video - https://share.getcloudapp.com/BluBYnLB

@alex-popov-tech alex-popov-tech added the bug Something isn't working label Mar 5, 2020
@liuchengxu
Copy link
Owner

liuchengxu commented Mar 5, 2020

Since you have merely 2k items, which is a small dataset, all fuzzy finder should be fast in this case, even ctrlp.vim, let alone clap is expected to handle 1M items with Rust extension easily, see #1 (comment).

I can't see the problem from the video, try using :h profile to find which part is slow for you, refer to https://codeinthehole.com/tips/debugging-vim-by-example/#why-is-action-slow for more info.

I'm unsure if it's related to the rust binary is not latest. Since you already installed cargo, you can try building the Rust binary yourself instead of using the prebuilt binary. Try running make in the plugin root directory.

The advantage of fzf.vim(or fzf) is the dynamic refresh, letting you feel more responsive. The good of clap is the ability to give the final determistic results much faster. You can try that, searching somthing in 1M items, clap will finish the job much faster than fzf.vim especially when the search string is very short, while fzf.vim is still freshing. The bad thing is the dynamic refresh is still missing in clap, see
#302.

If you do care about the performence(2k items is not deserved to talk about the perf), I would suggest you just using fzf.vim as I have to admit that fzf is more polished than clap's Rust binary, and fzf.vim now supports both floating_win of neovim and popup of vim too.

@liuchengxu liuchengxu added can-not-reproduce and removed bug Something isn't working labels Mar 5, 2020
@vn-ki
Copy link

vn-ki commented Apr 2, 2020

I would like to add there is a visible lag in opening Clap compared to fzf. Is it possible to minimize this lag?

@liuchengxu
Copy link
Owner

try using :h profile to find which part is slow for you, refer to https://codeinthehole.com/tips/debugging-vim-by-example/#why-is-action-slow for more info.

Not sure how big is your dataset, you can find what is slowing you down using the profile, see :h profile. Without the profile report, I don't know why you are meeting the slowness issue, thus can't give you more advices directly.

What's more, as I have said, the dynamic refreshing is missing at the moment, you have to wait for #353 and #364 for this feature.

If you are using vim, you can try decreasing g:clap_popup_input_delay whose default value is 100ms.

@vn-ki
Copy link

vn-ki commented Apr 2, 2020

The dataset is quite small, I am just using Clap files.

Also I'm using nvim. I'm attaching the profile below.

My main problem is that there is slight lag when opening Clap, but the same is not present when fzf is opened.

Profile
SCRIPT  /home/vn-ki/.config/nvim/plugged/vim-clap/ftplugin/clap_spinner.vim
Sourced 1 time
Total time:   0.000054
 Self time:   0.000054

count  total (s)   self (s)
    1              0.000027 if exists('b:clap_spinner_loaded')
    1              0.000009   finish
                            endif
                            
                            let b:clap_spinner_loaded = 1
                            
                            setlocal
                              \ nonumber
                              \ norelativenumber
                              \ nopaste
                              \ nomodeline
                              \ noswapfile
                              \ nocursorline
                              \ nocursorcolumn
                              \ colorcolumn=
                              \ nobuflisted
                              \ buftype=nofile
                              \ bufhidden=hide
                              \ textwidth=0
                              \ nolist
                              \ winfixwidth
                              \ winfixheight
                              \ nospell
                              \ nofoldenable
                              \ foldcolumn=0
                              \ nowrap

SCRIPT  /home/vn-ki/.config/nvim/plugged/vim-clap/ftplugin/clap_input.vim
Sourced 1 time
Total time:   0.000022
 Self time:   0.000022

count  total (s)   self (s)
    1              0.000012 if exists('b:clap_input_loaded') || !has('nvim')
    1              0.000003   finish
                            endif
                            
                            let b:clap_input_loaded = 1
                            
                            setlocal
                              \ nonumber
                              \ norelativenumber
                              \ nopaste
                              \ nomodeline
                              \ noswapfile
                              \ nocursorline
                              \ nocursorcolumn
                              \ colorcolumn=
                              \ nobuflisted
                              \ buftype=nofile
                              \ bufhidden=hide
                              \ signcolumn=no
                              \ textwidth=0
                              \ nolist
                              \ winfixwidth
                              \ winfixheight
                              \ nospell
                              \ nofoldenable
                              \ foldcolumn=0
                              \ nowrap
                            
                            augroup ClapOnTyped
                              autocmd!
                              autocmd CursorMoved,CursorMovedI <buffer> call clap#handler#on_typed()
                            augroup END
                            
                            " From vim-rsi
                            if !exists('g:loaded_rsi')
                              inoremap <silent> <buffer> <C-a>  <C-o>0
                              inoremap <silent> <buffer> <C-X><C-A> <C-A>
                            
                              inoremap <silent> <buffer> <expr> <C-B> getline('.')=~'^\s*$'&&col('.')>strlen(getline('.'))?"0\<Lt>C-D>\<Lt>Esc>kJs":"\<Lt>Left>"
                              inoremap <silent> <buffer> <expr> <C-F> col('.')>strlen(getline('.'))?"\<Lt>C-F>":"\<Lt>Right>"
                            
                              inoremap <silent> <buffer> <expr> <C-D> col('.')>strlen(getline('.'))?"\<Lt>C-D>":"\<Lt>Del>"
                            endif
                            
                            inoremap <silent> <buffer> <expr> <C-E> col('.')>strlen(getline('.'))<bar><bar>pumvisible()?"\<Lt>C-E>":"\<Lt>End>"
                            
                            inoremap <silent> <buffer> <C-l> <Esc>:call clap#handler#relaunch_providers()<CR>
                            
                            inoremap <silent> <buffer> <CR>  <Esc>:<c-u>call clap#handler#sink()<CR>
                            inoremap <silent> <buffer> <C-c> <Esc>:<c-u>call clap#handler#exit()<CR>
                            inoremap <silent> <buffer> <C-g> <Esc>:<c-u>call clap#handler#exit()<CR>
                            
                            inoremap <silent> <buffer> <Down> <C-R>=clap#navigation#linewise('down')<CR>
                            inoremap <silent> <buffer> <Up>   <C-R>=clap#navigation#linewise('up')<CR>
                            
                            inoremap <silent> <buffer> <PageDown> <C-R>=clap#navigation#scroll('down')<CR>
                            inoremap <silent> <buffer> <PageUp>   <C-R>=clap#navigation#scroll('up')<CR>
                            
                            inoremap <silent> <buffer> <Tab>       <C-R>=clap#handler#tab_action()<CR>
                            inoremap <silent> <buffer> <Backspace> <C-R>=clap#handler#bs_action()<CR>
                            
                            inoremap <silent> <buffer> <C-j> <C-R>=clap#navigation#linewise('down')<CR>
                            inoremap <silent> <buffer> <C-k> <C-R>=clap#navigation#linewise('up')<CR>
                            
                            call clap#util#define_open_action_mappings()
                            
                            if g:clap_insert_mode_only
                              inoremap <silent> <buffer> <Esc> <Esc>:<c-u>call clap#handler#exit()<CR>
                              finish
                            endif
                            
                            nnoremap <silent> <buffer> <CR>      :<c-u>call clap#handler#sink()<CR>
                            nnoremap <silent> <buffer> <C-c>     :<c-u>call clap#handler#exit()<CR>
                            nnoremap <silent> <buffer> <C-g>     :<c-u>call clap#handler#exit()<CR>
                            
                            nnoremap <silent> <buffer> <C-l>     :<c-u>call clap#handler#relaunch_providers()<CR>
                            
                            nnoremap <silent> <buffer> <Down> :<c-u>call clap#navigation#linewise('down')<CR>
                            nnoremap <silent> <buffer> <Up>   :<c-u>call clap#navigation#linewise('up')<CR>
                            
                            nnoremap <silent> <buffer> <PageDown> :<c-u>call clap#navigation#scroll('down')<CR>
                            nnoremap <silent> <buffer> <PageUp>   :<c-u>call clap#navigation#scroll('up')<CR>
                            
                            nnoremap <silent> <buffer> <C-d> :<c-u>call clap#navigation#scroll('down')<CR>
                            nnoremap <silent> <buffer> <C-u> :<c-u>call clap#navigation#scroll('up')<CR>
                            
                            nnoremap <silent> <buffer> <Tab> :<c-u>call clap#handler#tab_action()<CR>
                            
                            nnoremap <silent> <buffer> gg :<c-u>call clap#navigation#scroll('top')<CR>
                            nnoremap <silent> <buffer> G  :<c-u>call clap#navigation#scroll('bottom')<CR>
                            
                            nnoremap <silent> <buffer> j :<c-u>call clap#navigation#linewise('down')<CR>
                            nnoremap <silent> <buffer> k :<c-u>call clap#navigation#linewise('up')<CR>

SCRIPT  /home/vn-ki/.config/nvim/plugged/vim-clap/syntax/clap_files.vim
Sourced 1 time
Total time:   0.016353
 Self time:   0.001051

count  total (s)   self (s)
    1              0.000022 hi TNormal ctermfg=249 ctermbg=NONE guifg=#b2b2b2 guibg=NONE
    1   0.016305   0.001004 execute 'syntax match ClapFile' '/^.*/' 'contains='.join(clap#icon#add_head_hl_groups(), ',')
                            
    1              0.000014 hi default link ClapFile TNormal

FUNCTION  clap#icon#get_all()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/icon.vim:196
Called 1 time
Total time:   0.000035
 Self time:   0.000035

count  total (s)   self (s)
    1              0.000006   if !exists('s:icon_set')
                                let extensions = values(g:clap#icon#extensions)
                                let exact_matches = values(g:clap#icon#exact_matches)
                                let pattern_matches = values(g:clap#icon#pattern_matches)
                                let s:icon_set = [' ']
                                call extend(s:icon_set, extensions + exact_matches + pattern_matches)
                                call add(s:icon_set, g:clap#icon#default)
                                let s:icon_set = uniq(s:icon_set)
    1              0.000001   endif
    1              0.000002   return s:icon_set

FUNCTION  airline#extensions#quickfix#inactive_qf_window()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim:28
Called 17 times
Total time:   0.000401
 Self time:   0.000401

count  total (s)   self (s)
   17              0.000258   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')
   17              0.000025   endif

FUNCTION  airline#extensions#vista#currenttag()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/vista.vim:10
Called 16 times
Total time:   0.000383
 Self time:   0.000383

count  total (s)   self (s)
   16              0.000173   if get(w:, 'airline_active', 0)
    5              0.000057     return get(b:, 'vista_nearest_method_or_function', '')
   11              0.000027   endif

FUNCTION  <SNR>76_dopopd()
    Defined: ~/.fzf/plugin/fzf.vim:507
Called 3 times
Total time:   0.000035
 Self time:   0.000035

count  total (s)   self (s)
    3              0.000022   if !exists('w:fzf_pushd')
    3              0.000007     return
                              endif
                            
                              " FIXME: We temporarily change the working directory to 'dir' entry
                              " of options dictionary (set to the current working directory if not given)
                              " before running fzf.
                              "
                              " e.g. call fzf#run({'dir': '/tmp', 'source': 'ls', 'sink': 'e'})
                              "
                              " After processing the sink function, we have to restore the current working
                              " directory. But doing so may not be desirable if the function changed the
                              " working directory on purpose.
                              "
                              " So how can we tell if we should do it or not? A simple heuristic we use
                              " here is that we change directory only if the current working directory
                              " matches 'dir' entry. However, it is possible that the sink function did
                              " change the directory to 'dir'. In that case, the user will have an
                              " unexpected result.
                              if s:fzf_getcwd() ==# w:fzf_pushd.dir && (!&autochdir || w:fzf_pushd.bufname ==# bufname(''))
                                execute w:fzf_pushd.command s:escape(w:fzf_pushd.origin)
                              endif
                              unlet w:fzf_pushd

FUNCTION  coc#client#get_channel()
    Defined: ~/.config/nvim/plugged/coc.nvim/autoload/coc/client.vim:98
Called 18 times
Total time:   0.000398
 Self time:   0.000398

count  total (s)   self (s)
   18              0.000093   if s:is_vim
                                return a:client['channel']
   18              0.000035   endif
   18              0.000109   return a:client['chan_id']

FUNCTION  <SNR>143_open_win_border_right()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:231
Called 1 time
Total time:   0.000045
 Self time:   0.000045

count  total (s)   self (s)
    1              0.000004   if s:symbol_width > 0
                                let opts = nvim_win_get_config(s:indicator_winid)
                                let opts.col += opts.width
                                let opts.width = s:symbol_width
                                let opts.focusable = v:false
                            
                                if !nvim_buf_is_valid(s:symbol_right_bufnr)
                                  let s:symbol_right_bufnr = nvim_create_buf(v:false, v:true)
                                endif
                                silent let s:symbol_right_winid = nvim_open_win(s:symbol_right_bufnr, v:false, opts)
                            
                                call setwinvar(s:symbol_right_winid, '&winhl', 'Normal:ClapSymbol')
                                call s:set_minimal_buf_style(s:symbol_right_bufnr, 'clap_spinner')
                                call setbufline(s:symbol_right_bufnr, 1, s:symbol_right)
    1              0.000001   endif

FUNCTION  <SNR>170_padding()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/indicator.vim:7
Called 1 time
Total time:   0.000018
 Self time:   0.000018

count  total (s)   self (s)
    1              0.000006   let indicator_len = strlen(a:indicator)
    1              0.000004   if indicator_len < g:__clap_indicator_winwidth
    1              0.000007     return repeat(' ', g:__clap_indicator_winwidth - indicator_len).a:indicator
                              else
                                return a:indicator
                              endif

FUNCTION  <SNR>193_get_base_cmd()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:497
Called 7 times
Total time:   0.003064
 Self time:   0.001229

count  total (s)   self (s)
    7              0.000129   let cmd = a:vcs_cmds[a:vcs]
    7   0.001853   0.000551   let cmd = s:replace(cmd, '%f', s:get_vcs_path(a:bufnr, a:vcs))
    7   0.000535   0.000247   let cmd = s:replace(cmd, '%d', s:difftool)
    7   0.000458   0.000213   let cmd = s:replace(cmd, '%n', s:devnull)
    7              0.000036   return cmd

FUNCTION  <SNR>193_get_vcs_path()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:490
Called 7 times
Total time:   0.000771
 Self time:   0.000771

count  total (s)   self (s)
    7              0.000733   return (a:vcs =~# '\v(git|cvs|accurev|tfs|yadm)') ? getbufvar(a:bufnr, 'sy').info.file : getbufvar(a:bufnr, 'sy').info.path

FUNCTION  <SNR>50_DevIconsGetArtifactFix()
    Defined: ~/.config/nvim/plugged/vim-devicons/plugin/webdevicons.vim:520
Called 32 times
Total time:   0.001184
 Self time:   0.001184

count  total (s)   self (s)
   32              0.000259   if g:DevIconsAppendArtifactFix == 1
                                let artifactFix = g:DevIconsArtifactFixChar
   32              0.000080   else
   32              0.000209     let artifactFix = ''
   32              0.000079   endif
                            
   32              0.000176   return artifactFix

FUNCTION  clap#forerunner#start()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/forerunner.vim:139
Called 1 time
Total time:   0.002963
 Self time:   0.000041

count  total (s)   self (s)
    1   0.002959   0.000038     call s:run_maple_subcommand(clap#maple#forerunner_exec_subcommand(a:cmd))

FUNCTION  airline#util#exec_funcrefs()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:93
Called 24 times
Total time:   0.055752
 Self time:   0.005786

count  total (s)   self (s)
  138              0.000518     for Fn in a:list
  138   0.053912   0.003947       let code = call(Fn, a:000)
  138              0.000431       if code != 0
   24              0.000057         return code
  114              0.000167       endif
  114              0.000190     endfor
                                return 0

FUNCTION  airline#extensions#netrw#apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/netrw.vim:11
Called 7 times
Total time:   0.000454
 Self time:   0.000454

count  total (s)   self (s)
    7              0.000085   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
    7              0.000013   endif

FUNCTION  clap#maple#get_enable_icon_opt()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/maple.vim:176
Called 1 time
Total time:   0.000011
 Self time:   0.000011

count  total (s)   self (s)
    1              0.000008   if g:clap_enable_icon && index(s:can_enable_icon, g:clap.provider.id) > -1
    1              0.000002     return '--enable-icon'
                              else
                                return ''
                              endif

FUNCTION  <SNR>137_FindNearestMethodOrFunction()
    Defined: ~/.config/nvim/plugged/vista.vim/autoload/vista/cursor.vim:52
Called 1 time
Total time:   0.001051
 Self time:   0.000544

count  total (s)   self (s)
    1              0.000012   if !exists('t:vista') || !has_key(t:vista, 'functions') || !has_key(t:vista, 'source')
                                return
    1              0.000001   endif
    1   0.000667   0.000449   call sort(t:vista.functions, function('s:Compare'))
    1   0.000197   0.000021   let result = vista#util#BinarySearch(t:vista.functions, line('.'), 'lnum', 'text')
    1              0.000003   if empty(result)
    1              0.000002     let result = ''
    1              0.000001   endif
    1              0.000012   call setbufvar(t:vista.source.bufnr, 'vista_nearest_method_or_function', result)
                            
    1   0.000052   0.000015   call s:StopHighlightTimer()
                            
    1   0.000089   0.000011   if vista#sidebar#IsOpen()
                                let s:highlight_timer = timer_start(200, function('s:HighlightNearestTag'))
    1              0.000001   endif

FUNCTION  AirlineWebDevIcons()
    Defined: ~/.config/nvim/plugged/vim-devicons/plugin/webdevicons.vim:560
Called 7 times
Total time:   0.001158
 Self time:   0.000575

count  total (s)   self (s)
    7              0.000147   let w:airline_section_x = get(w:, 'airline_section_x', get(g:, 'airline_section_x', ''))
    7              0.000066   let w:airline_section_x .= ' %{WebDevIconsGetFileTypeSymbol()} '
    7   0.000771   0.000187   let hasFileFormatEncodingPart = airline#parts#ffenc() !=? ''
    7              0.000069   if g:webdevicons_enable_airline_statusline_fileformat_symbols && hasFileFormatEncodingPart
    7              0.000058     let w:airline_section_y = ' %{&fenc . " " . WebDevIconsGetFileFormatSymbol()} '
    7              0.000014   endif

FUNCTION  <SNR>145_get_color()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/icon.vim:209
Called 145 times
Total time:   0.003350
 Self time:   0.003350

count  total (s)   self (s)
  145              0.003262   return synIDattr(synIDtrans(hlID(a:group)), a:attr)

FUNCTION  airline#extensions#coc#get_error()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim:14
Called 5 times
Total time:   0.001117
 Self time:   0.000180

count  total (s)   self (s)
    5   0.001103   0.000166   return airline#extensions#coc#get('error')

FUNCTION  clap#filter#capacity()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/filter.vim:37
Called 1 time
Total time:   0.000004
 Self time:   0.000004

count  total (s)   self (s)
    1              0.000003   return s:builtin_filter_capacity

FUNCTION  <SNR>157_is_dir()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/path.vim:9
Called 4 times
Total time:   0.000020
 Self time:   0.000020

count  total (s)   self (s)
    4              0.000017   return a:pattern[-1:] ==# '/'

FUNCTION  airline#check_mode()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline.vim:199
Called 16 times
Total time:   0.167368
 Self time:   0.007916

count  total (s)   self (s)
   16              0.000248   if !has_key(s:contexts, a:winnr)
                                return ''
   16              0.000056   endif
   16              0.000225   let context = s:contexts[a:winnr]
                            
   16              0.000190   if get(w:, 'airline_active', 1)
    5              0.000062     let l:m = mode(1)
    5              0.000044     if l:m ==# "i"
                                  let l:mode = ['insert']
    5              0.000046     elseif l:m[0] ==# "i"
                                  let l:mode = ['insert']
    5              0.000029     elseif l:m ==# "Rv"
                                  let l:mode =['replace']
    5              0.000033     elseif l:m[0] ==# "R"
                                  let l:mode = ['replace']
    5              0.000228     elseif l:m[0] =~# '\v(v|V|�|s|S|�)'
                                  let l:mode = ['visual']
    5              0.000029     elseif l:m ==# "t"
                                  let l:mode = ['terminal']
    5              0.000031     elseif l:m[0] ==# "c"
    1              0.000009       let l:mode = ['commandline']
    4              0.000024     elseif l:m ==# "no"   " does not work, most likely, Vim does not refresh the statusline in OP mode
                                  let l:mode = ['normal']
    4              0.000032     elseif l:m[0:1] ==# 'ni'
                                  let l:mode = ['normal']
                                  let l:m = 'ni'
    4              0.000012     else
    4              0.000046       let l:mode = ['normal']
    5              0.000015     endif
    5              0.000096     if exists("*VMInfos") && !empty(VMInfos())
                                  " Vim plugin Multiple Cursors https://github.com/mg979/vim-visual-multi
                                  let l:m = 'multi'
    5              0.000015     endif
    5              0.000171     if index(['Rv', 'no', 'ni', 'ix', 'ic', 'multi'], l:m) == -1
    5              0.000048       let l:m = l:m[0]
    5              0.000014     endif
    5              0.000103     let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m)
   11              0.000029   else
   11              0.000107     let l:mode = ['inactive']
   11              0.000166     let w:airline_current_mode = get(g:airline_mode_map, '__')
   16              0.000044   endif
                            
   16              0.000202   if g:airline_detect_modified && &modified
                                call add(l:mode, 'modified')
   16              0.000040   endif
                            
   16              0.000118   if g:airline_detect_paste && &paste
                                call add(l:mode, 'paste')
   16              0.000035   endif
                            
   16              0.000465   if g:airline_detect_crypt && exists("+key") && !empty(&key)
                                call add(l:mode, 'crypt')
   16              0.000038   endif
                            
   16              0.000132   if g:airline_detect_spell && &spell
                                call add(l:mode, 'spell')
   16              0.000034   endif
                            
   16              0.000140   if &readonly || ! &modifiable
                                call add(l:mode, 'readonly')
   16              0.000034   endif
                            
   16              0.000260   let mode_string = join(l:mode)
   16              0.000234   if get(w:, 'airline_lastmode', '') != mode_string
    3   0.004013   0.000146     call airline#highlighter#highlight_modified_inactive(context.bufnr)
    3   0.155116   0.000198     call airline#highlighter#highlight(l:mode, context.bufnr)
    3   0.000808   0.000141     call airline#util#doautocmd('AirlineModeChanged')
    3              0.000027     let w:airline_lastmode = mode_string
   16              0.000035   endif
                            
   16              0.000067   return ''

FUNCTION  <SNR>193_check_diff_yadm()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:166
Called 3 times
Total time:   0.000038
 Self time:   0.000038

count  total (s)   self (s)
    3              0.000033   return a:exitval ? [0, []] : [1, a:diff]

FUNCTION  airline#util#append()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:49
Called 35 times
Total time:   0.001573
 Self time:   0.001573

count  total (s)   self (s)
   35              0.000394   if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
                                return ''
   35              0.000079   endif
   35              0.000446   let prefix = s:spc == "\ua0" ? s:spc : s:spc.s:spc
   35              0.000425   return empty(a:text) ? '' : prefix.g:airline_left_alt_sep.s:spc.a:text

FUNCTION  <SNR>155_on_complete_maple()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/forerunner.vim:44
Called 1 time
Total time:   0.001179
 Self time:   0.000222

count  total (s)   self (s)
    1              0.000004   if !empty(s:chunks)
    1              0.000178     let decoded = json_decode(s:chunks[0])
                            
    1   0.000975   0.000018     call s:on_complete_common(decoded.lines, decoded.total)
                            
    1              0.000004     if has_key(decoded, 'tempfile')
                                  let g:__clap_forerunner_tempfile = decoded.tempfile
    1              0.000001     else
    1              0.000007       let g:__clap_forerunner_result = decoded.lines
    1              0.000001     endif
    1              0.000001   endif

FUNCTION  <SNR>193_callback_nvim_stdout()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:15
Called 7 times
Total time:   0.000388
 Self time:   0.000388

count  total (s)   self (s)
    7              0.000222   let self.stdoutbuf[-1] .= a:data[0]
    7              0.000131   call extend(self.stdoutbuf, a:data[1:])

FUNCTION  <SNR>150_generate_prompt()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/spinner.vim:45
Called 3 times
Total time:   0.000344
 Self time:   0.000098

count  total (s)   self (s)
                              " Provider level prompt format has higher priority.
    3   0.000048   0.000032   if has_key(g:clap.provider._(), 'prompt_format')
                                return s:fill_in_placeholders(g:clap.provider._().prompt_format)
    3              0.000004   else
    3   0.000267   0.000036     return s:PromptFn()
                              endif

FUNCTION  <SNR>140_parse_opts()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:336
Called 1 time
Total time:   0.000165
 Self time:   0.000165

count  total (s)   self (s)
    1              0.000007   let idx = 0
    1              0.000008   for arg in a:args
                                if arg =~? '^++\w*=\w*'
                                  let matched = matchlist(arg, '^++\(\w*\)=\(\S*\)')
                                  let [k, v] = [matched[1], matched[2]]
                                  if has_key(g:clap.context, k)
                                    let g:clap.context[k] .= ' '.v
                                  else
                                    let g:clap.context[k] = v
                                  endif
                                elseif arg =~? '^+\w*'
                                  let opt = arg[1:]
                                  let g:clap.context[opt] = v:true
                                else
                                  break
                                endif
                                let idx += 1
    1              0.000005   endfor
    1              0.000015   if has_key(g:clap.context, 'query')
                                if g:clap.context.query ==# '@visual'
                                  let g:clap.context.query = clap#util#get_visual_selection()
                                else
                                  let g:clap.context.query = clap#util#expand(g:clap.context.query)
                                endif
    1              0.000002   endif
    1              0.000019   let g:clap.provider.args = a:args[idx :]

FUNCTION  airline#util#try_focusgained()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:203
Called 1 time
Total time:   0.000078
 Self time:   0.000078

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).
    1              0.000027   let dt = localtime() - s:focusgained_ignore_time
    1              0.000017   let s:focusgained_ignore_time = 0
    1              0.000013   return dt >= 1

FUNCTION  <SNR>108_Disable()
    Defined: ~/.config/nvim/plugged/indentLine/after/plugin/indentLine.vim:309
Called 3 times
Total time:   0.000255
 Self time:   0.000110

count  total (s)   self (s)
    3              0.000020     if exists("b:indentLine_enabled") && b:indentLine_enabled
                                    return
    3              0.000020     elseif exists("b:indentLine_leadingSpaceEnabled") && b:indentLine_leadingSpaceEnabled
                                    return
    3   0.000178   0.000032     elseif s:Filter() == 0
                                    call s:IndentLinesDisable()
                                    call s:LeadingSpaceDisable()
    3              0.000003     endif

FUNCTION  airline#themes#get_highlight()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/themes.vim:31
Called 270 times
Total time:   0.113175
 Self time:   0.007745

count  total (s)   self (s)
  270   0.112903   0.007473   return call('airline#highlighter#get_highlight', [a:group] + a:000)

FUNCTION  <SNR>171_unplace_all_signs()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/sign.vim:110
Called 1 time
Total time:   0.000068
 Self time:   0.000068

count  total (s)   self (s)
    1              0.000017     if nvim_buf_is_valid(g:clap.display.bufnr)
    1              0.000026       call sign_unplace(s:sign_group, {'buffer': g:clap.display.bufnr})
    1              0.000018       call sign_unplace(s:sign_cur_group, {'buffer': g:clap.display.bufnr})
    1              0.000003     endif

FUNCTION  clap#for()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:309
Called 1 time
Total time:   0.334298
 Self time:   0.000207

count  total (s)   self (s)
    1              0.000016   if has_key(s:provider_alias, a:provider_id_or_alias)
                                let provider_id = s:provider_alias[a:provider_id_or_alias]
    1              0.000003   else
    1              0.000010     let provider_id = a:provider_id_or_alias
    1              0.000003   endif
                            
    1              0.000009   let g:clap.provider.id = provider_id
    1              0.000012   let g:clap.display.cache = []
                            
                              " If the registrar is not aware of this provider, try registering it.
    1              0.000018   if !has_key(g:clap.registrar, provider_id) && !s:try_register_is_ok(provider_id)
                                return
    1              0.000002   endif
                            
    1   0.000213   0.000034   call s:clear_state()
                            
    1   0.000111   0.000031   call clap#handler#init()
                            
    1   0.333869   0.000038   call g:clap.open_win()

FUNCTION  <SNR>143_try_adjust_preview()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:249
Called 1 time
Total time:   0.000021
 Self time:   0.000021

count  total (s)   self (s)
    1              0.000005   if exists('s:preview_winid')
                                let preview_opts = nvim_win_get_config(s:preview_winid)
                                let opts = nvim_win_get_config(s:display_winid)
                                let preview_opts.row = opts.row + opts.height
                                call nvim_win_set_config(s:preview_winid, preview_opts)
    1              0.000001   endif

FUNCTION  coc#util#clearmatches()
    Defined: ~/.config/nvim/plugged/coc.nvim/autoload/coc/util.vim:679
Called 3 times
Total time:   0.000197
 Self time:   0.000197

count  total (s)   self (s)
    3              0.000031   let winid = get(a:, 1, 0)
    3              0.000021   if winid != 0 && win_getid() != winid
                                return
    3              0.000005   endif
    3              0.000016   for id in a:ids
                                try
                                  call matchdelete(id)
                                catch /.*/
                                  " matches have been cleared in other ways,
                                endtry
    3              0.000007   endfor
    3              0.000024   let exists = get(w:, 'coc_matchids', [])
    3              0.000015   if !empty(exists)
                                call filter(w:coc_matchids, 'index(a:ids, v:val) == -1')
    3              0.000004   endif

FUNCTION  <SNR>171_place_cur_sign_at()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/sign.vim:38
Called 1 time
Total time:   0.000014
 Self time:   0.000014

count  total (s)   self (s)
    1              0.000013   call sign_place(a:lnum, s:sign_cur_group, 'PopUpClapCurrentSelected', g:clap.display.bufnr, {'lnum': a:lnum})

FUNCTION  airline#extensions#coc#get_status()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim:45
Called 16 times
Total time:   0.002745
 Self time:   0.000668

count  total (s)   self (s)
                              " Shorten text for windows < 81 characters
   16   0.002674   0.000597   return airline#util#shorten(get(g:, 'coc_status', ''), 81, 9)

FUNCTION  clap#api#has_externalfilter()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:35
Called 1 time
Total time:   0.000008
 Self time:   0.000008

count  total (s)   self (s)
    1              0.000007   return has_key(g:clap.context, 'ef') || has_key(g:clap.context, 'externalfilter')

FUNCTION  coc#util#cursor()
    Defined: ~/.config/nvim/plugged/coc.nvim/autoload/coc/util.vim:90
Called 3 times
Total time:   0.000203
 Self time:   0.000203

count  total (s)   self (s)
    3              0.000064   let pos = getcurpos()
    3              0.000071   let content = pos[2] == 1 ? '' : getline('.')[0: pos[2] - 2]
    3              0.000051   return [pos[1] - 1, strchars(content)]

FUNCTION  <SNR>140_clear_state()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:294
Called 1 time
Total time:   0.000179
 Self time:   0.000085

count  total (s)   self (s)
    1   0.000137   0.000042   call s:unlet_vars([ 'g:__clap_provider_cwd', 'g:__clap_raw_source', 'g:__clap_initial_source_size', ])
                            
    1              0.000010   if exists('g:__clap_forerunner_tempfile')
                                if filereadable(g:__clap_forerunner_tempfile)
                                  call delete(g:__clap_forerunner_tempfile)
                                endif
                                unlet g:__clap_forerunner_tempfile
    1              0.000002   endif

FUNCTION  <SNR>142__setbufvar()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:21
Called 2 times
Total time:   0.065828
 Self time:   0.000043

count  total (s)   self (s)
    2   0.065826   0.000041   call setbufvar(self.bufnr, a:varname, a:val)

FUNCTION  clap#forerunner#stop()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/forerunner.vim:151
Called 1 time
Total time:   0.000085
 Self time:   0.000049

count  total (s)   self (s)
    1              0.000009   if s:job_id > 0
    1   0.000060   0.000024     call clap#job#stop(s:job_id)
    1              0.000009     let s:job_id = -1
    1              0.000003   endif

FUNCTION  airline#parts#filetype()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:102
Called 16 times
Total time:   0.001332
 Self time:   0.000721

count  total (s)   self (s)
   16   0.001288   0.000678   return (airline#util#winwidth() < 90 && strlen(&filetype) > 3) ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? '…' : '>') : &filetype

FUNCTION  <SNR>126_get_seperator()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:158
Called 67 times
Total time:   0.161340
 Self time:   0.003540

count  total (s)   self (s)
   67   0.054162   0.001565   if airline#builder#should_change_group(a:prev_group, a:group)
   67   0.107067   0.001863     return s:get_transitioned_seperator(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#parts#iminsert()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:82
Called 5 times
Total time:   0.000141
 Self time:   0.000141

count  total (s)   self (s)
    5              0.000059   if g:airline_detect_iminsert && &iminsert && exists('b:keymap_name')
                                return toupper(b:keymap_name)
    5              0.000011   endif
    5              0.000017   return ''

FUNCTION  clap#handler#on_typed()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/handler.vim:25
Called 1 time
Total time:   0.000696
 Self time:   0.000082

count  total (s)   self (s)
    1   0.000064   0.000012   if clap#handler#relaunch_is_ok()
                                return
    1              0.000001   endif
                            
    1   0.000034   0.000013   if g:clap.provider.is_rpc_type()
                                call g:clap.provider.on_typed()
                                return
    1              0.000001   endif
                            
    1   0.000033   0.000009   let l:cur_input = g:clap.input.get()
    1              0.000004   if s:old_input == l:cur_input
                                return
    1              0.000006   elseif strlen(s:old_input) > strlen(l:cur_input)
                                " If we should refilter?
    1              0.000006     let g:__clap_should_refilter = v:true
    1              0.000001   endif
    1              0.000003   let s:old_input = l:cur_input
    1   0.000531   0.000011   call g:clap.provider.on_typed()

FUNCTION  airline#extensions#term#apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/term.vim:10
Called 7 times
Total time:   0.000450
 Self time:   0.000450

count  total (s)   self (s)
    7              0.000093   if &buftype == 'terminal' || bufname('%')[0] == '!'
                                let spc = g:airline_symbols.space
                            
                                call a:1.add_section('airline_a', spc.s:section_a.spc)
                                call a:1.add_section('airline_b', '')
                                call a:1.add_section('airline_term', spc.s:termname())
                                call a:1.split()
                                call a:1.add_section('airline_y', '')
                                call a:1.add_section('airline_z', spc.airline#section#create_right(['linenr', 'maxlinenr']))
                                return 1
    7              0.000014   endif

FUNCTION  <SNR>51_invoke_funcrefs()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline.vim:177
Called 24 times
Total time:   0.316976
 Self time:   0.003063

count  total (s)   self (s)
   24   0.002046   0.000473   let builder = airline#builder#new(a:context)
   24   0.056565   0.000813   let err = airline#util#exec_funcrefs(a:funcrefs + s:core_funcrefs, builder, a:context)
   24              0.000065   if err == 1
   24   0.257083   0.000494     let a:context.line = builder.build()
   24              0.000346     let s:contexts[a:context.winnr] = a:context
   24              0.000227     let option = get(g:, 'airline_statusline_ontop', 0) ? '&tabline' : '&statusline'
   24              0.000511     call setwinvar(a:context.winnr, option, '%!airline#statusline('.a:context.winnr.')')
   24              0.000039   endif

FUNCTION  clap#sign#reset()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/sign.vim:124
Called 1 time
Total time:   0.000129
 Self time:   0.000060

count  total (s)   self (s)
    1   0.000110   0.000042   call s:unplace_all_signs()
    1              0.000008   let s:signed = []
    1              0.000007   let s:last_signed_id = -1

FUNCTION  <SNR>114_GetHiCmd()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:164
Called 1 time
Total time:   0.000140
 Self time:   0.000140

count  total (s)   self (s)
                              " a:list needs to have 5 items!
    1              0.000002   let res = ''
    1              0.000002   let i = -1
    6              0.000010   while i < 4
    5              0.000011     let i += 1
    5              0.000020     let item = get(a:list, i, '')
    5              0.000010     if item is ''
    3              0.000003       continue
    2              0.000002     endif
    2              0.000003     if i == 0
    1              0.000005       let res .= ' guifg='.item
    1              0.000002     elseif i == 1
    1              0.000004       let res .= ' guibg='.item
                                elseif i == 2
                                  let res .= ' ctermfg='.item
                                elseif i == 3
                                  let res .= ' ctermbg='.item
                                elseif i == 4
                                  let res .= printf(' gui=%s cterm=%s term=%s', item, item, item)
    2              0.000002     endif
    3              0.000004   endwhile
    1              0.000002   return res

FUNCTION  <SNR>127_get_section()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/default.vim:20
Called 153 times
Total time:   0.017769
 Self time:   0.014144

count  total (s)   self (s)
  153              0.001178   if has_key(s:section_truncate_width, a:key)
   98   0.004393   0.002057     if airline#util#winwidth(a:winnr) < s:section_truncate_width[a:key]
   27              0.000053       return ''
   71              0.000107     endif
  126              0.000196   endif
  126              0.000703   let spc = g:airline_symbols.space
  126              0.001262   if !exists('g:airline_section_{a:key}')
                                return ''
  126              0.000175   endif
  126   0.004614   0.003324   let text = airline#util#getwinvar(a:winnr, 'airline_section_'.a:key, g:airline_section_{a:key})
  126              0.002192   let [prefix, suffix] = [get(a:000, 0, '%('.spc), get(a:000, 1, spc.'%)')]
  126              0.001284   return empty(text) ? '' : prefix.text.suffix

FUNCTION  <SNR>108_Filter()
    Defined: ~/.config/nvim/plugged/indentLine/after/plugin/indentLine.vim:286
Called 3 times
Total time:   0.000146
 Self time:   0.000146

count  total (s)   self (s)
    3              0.000025     if index(g:indentLine_fileTypeExclude, &filetype) != -1
                                    return 0
    3              0.000004     endif
                            
    3              0.000016     if index(g:indentLine_bufTypeExclude, &buftype) != -1
                                    return 0
    3              0.000003     endif
                            
    3              0.000020     if len(g:indentLine_fileType) != 0 && index(g:indentLine_fileType, &filetype) == -1
                                    return 0
    3              0.000003     endif
                            
    3              0.000013     for name in g:indentLine_bufNameExclude
                                    if matchstr(bufname(''), name) == bufname('')
                                        return 0
                                    endif
    3              0.000005     endfor
                            
    3              0.000005     return 1

FUNCTION  sy#verbose()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy.vim:126
Called 40 times
Total time:   0.002567
 Self time:   0.002567

count  total (s)   self (s)
   40              0.000311   if &verbose
                                if type(a:msg) == type([])
                                  for msg in a:msg
                                    echomsg printf('[sy%s] %s', (a:0 ? ':'.a:1 : ''), msg)
                                  endfor
                                else
                                  echomsg printf('[sy%s] %s', (a:0 ? ':'.a:1 : ''), a:msg)
                                endif
   40              0.000098   endif

FUNCTION  clap#job#start_buffered()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/job.vim:12
Called 1 time
Total time:   0.001586
 Self time:   0.001586

count  total (s)   self (s)
    1              0.001569     let job_id = jobstart(a:cmd, { 'on_exit': a:OnEvent, 'on_stdout': a:OnEvent, 'on_stderr': a:OnEvent, 'stdout_buffered': v:true, })
    1              0.000009     return job_id

FUNCTION  <SNR>167_detect_should_switch_to_async()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/impl.vim:111
Called 1 time
Total time:   0.000042
 Self time:   0.000027

count  total (s)   self (s)
                              " Optimze for blines provider.
    1              0.000006   if g:clap.provider.id ==# 'blines' && g:clap.display.initial_size > 100000
                                return v:true
    1              0.000001   endif
                            
    1   0.000028   0.000014   if g:clap.provider.is_pure_async() || g:clap.provider.source_type == g:__t_string || g:clap.provider.source_type == g:__t_func_string
    1              0.000002     return v:true
                              endif
                            
                              let Source = g:clap.provider._().source
                            
                              if g:clap.provider.source_type == g:__t_list
                                let s:cur_source = Source
                              elseif g:clap.provider.source_type == g:__t_func_list
                                let s:cur_source = Source()
                              endif
                            
                              let g:__clap_raw_source = s:cur_source
                              let g:__clap_initial_source_size = len(g:__clap_raw_source)
                            
                              if clap#filter#beyond_capacity(g:__clap_initial_source_size)
                                return v:true
                              endif
                            
                              return v:false

FUNCTION  <SNR>115_get_hunks_signify()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/hunks.vim:14
Called 5 times
Total time:   0.000431
 Self time:   0.000228

count  total (s)   self (s)
    5   0.000343   0.000140   let hunks = sy#repo#get_stats()
    5              0.000045   if hunks[0] >= 0
    5              0.000024     return hunks
                              endif
                              return []

FUNCTION  airline#extensions#coc#get()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/coc.vim:18
Called 5 times
Total time:   0.000937
 Self time:   0.000937

count  total (s)   self (s)
    5              0.000083   if !exists(':CocCommand')
                                return ''
    5              0.000012   endif
    5              0.000069   let _backup = get(g:, 'coc_stl_format', '')
    5              0.000052   let is_err = (a:type  is# 'error')
    5              0.000022   if is_err
    5              0.000094     let g:coc_stl_format = get(g:, 'airline#extensions#coc#stl_format_err', '%E{[%e(#%fe)]}')
                              else
                                let g:coc_stl_format = get(g:, 'airline#extensions#coc#stl_format_warn', '%W{[%w(#%fw)]}')
    5              0.000012   endif
    5              0.000067   let info = get(b:, 'coc_diagnostic_info', {})
    5              0.000069   if empty(info) | return '' | endif
                            
                            
    5              0.000059   let cnt = get(info, a:type, 0)
    5              0.000037   if !empty(_backup)
    5              0.000056     let g:coc_stl_format = _backup
    5              0.000013   endif
                            
    5              0.000031   if empty(cnt)
                                return ''
    5              0.000011   else
    5              0.000066     return (is_err ? s:error_symbol : s:warning_symbol).cnt
                              endif

FUNCTION  <SNR>119_ws_refresh()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/whitespace.vim:183
Called 3 times
Total time:   0.000205
 Self time:   0.000205

count  total (s)   self (s)
    3              0.000094   if get(b:, 'airline_ws_changedtick', 0) == b:changedtick
    2              0.000010     return
    1              0.000005   endif
    1              0.000014   unlet! b:airline_whitespace_check
    1              0.000020   if get(g:, 'airline_skip_empty_sections', 0)
                                exe ':AirlineRefresh!'
    1              0.000005   endif
    1              0.000019   let b:airline_ws_changedtick = b:changedtick

FUNCTION  73()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:580
Called 1 time
Total time:   0.003148
 Self time:   0.000064

count  total (s)   self (s)
    1   0.000020   0.000007     if self.is_pure_async()
                                  return
    1              0.000004     elseif self.source_type == g:__t_string
                                  call clap#forerunner#start(self._().source)
                                  return
    1              0.000003     elseif self.source_type == g:__t_func_string
    1   0.003107   0.000036       call clap#forerunner#start(self._().source())
    1              0.000002       return
                                endif
                            
                                " Even for the syn providers that could have 10,000+ lines, it's ok to show it now.
                                if self.source_type == g:__t_list
                                  let lines = self._().source
                                elseif self.source_type == g:__t_func_list
                                  let lines = self._().source()
                                endif
                            
                                let initial_size = len(lines)
                                let g:clap.display.initial_size = initial_size
                                if initial_size > 0
                                  call g:clap.display.set_lines_lazy(lines)
                                  call g:clap#display_win.shrink_if_undersize()
                                  call clap#indicator#set_matches('['.initial_size.']')
                                  call clap#sign#toggle_cursorline()
                                endif

FUNCTION  airline#mode_changed()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline.vim:279
Called 3 times
Total time:   0.000279
 Self time:   0.000212

count  total (s)   self (s)
                              " airline#visual_active
                              " Boolean: for when to get visual wordcount
                              " needed for the wordcount extension
    3              0.000116   let g:airline#visual_active = (mode() =~? '[��vs]')
    3   0.000139   0.000071   call airline#update_tabline()

FUNCTION  13()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:17
Called 115 times
Total time:   0.001282
 Self time:   0.001282

count  total (s)   self (s)
  115              0.001170   call add(self._sections, [a:group, a:contents])

FUNCTION  <SNR>145_generic_hi_icons()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/icon.vim:265
Called 1 time
Total time:   0.015282
 Self time:   0.008010

count  total (s)   self (s)
    1              0.000006   let pat_prefix = a:head_only ? '/^\s*' : '/'
                            
    1              0.000003   let lk_idx = 0
    1              0.000002   let groups = []
    1   0.000048   0.000013   let icons = clap#icon#get_all()
  146              0.000227   for idx in range(len(icons))
  145              0.000436     let group = 'ClapIcon'.idx
  145              0.000549     call add(groups, group)
  145              0.002323     execute 'syntax match' group pat_prefix.icons[idx].'/' 'contained'
  145   0.010508   0.003271     execute 'hi!' group s:get_attrs(s:linked_groups[lk_idx])
  145              0.000396     let lk_idx += 1
  145              0.000459     let lk_idx = lk_idx % s:linked_groups_len
  146              0.000144   endfor
                            
    1              0.000002   return groups

FUNCTION  clap#path#find_project_root()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/path.vim:91
Called 1 time
Total time:   0.000743
 Self time:   0.000017

count  total (s)   self (s)
    1   0.000742   0.000016   return s:find_root_dir(a:bufnr, s:project_root_markers)

FUNCTION  <SNR>114_hl_group_exists()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:95
Called 209 times
Total time:   0.009424
 Self time:   0.009424

count  total (s)   self (s)
  209              0.003296   if !hlexists(a:group)
                                return 0
  209              0.003770   elseif empty(synIDattr(hlID(a:group), 'fg'))
                                return 0
  209              0.000301   endif
  209              0.000459   return 1

FUNCTION  airline#highlighter#add_separator()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:220
Called 91 times
Total time:   0.136662
 Self time:   0.003969

count  total (s)   self (s)
   91              0.001399   let s:separators[a:from.a:to] = [a:from, a:to, a:inverse]
   91   0.135155   0.002462   call <sid>exec_separator({}, a:from, a:to, a:inverse, '')

FUNCTION  clap#util#nvim_buf_set_lines()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/util.vim:72
Called 1 time
Total time:   0.000074
 Self time:   0.000074

count  total (s)   self (s)
    1              0.000073   call nvim_buf_set_lines(a:bufnr, 0, -1, 0, a:lines)

FUNCTION  <SNR>137_StopFindTimer()
    Defined: ~/.config/nvim/plugged/vista.vim/autoload/vista/cursor.vim:25
Called 1 time
Total time:   0.000106
 Self time:   0.000038

count  total (s)   self (s)
    1   0.000102   0.000033   call s:GenericStopTimer('s:find_timer')

FUNCTION  airline#extensions#po#apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/po.vim:51
Called 7 times
Total time:   0.000204
 Self time:   0.000204

count  total (s)   self (s)
    7              0.000083   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 * unlet! b:airline_po_stats
                                autocmd airline WinEnter * call airline#extensions#po#on_winenter()
    7              0.000014   endif

FUNCTION  clap#()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:365
Called 1 time
Total time:   0.334773
 Self time:   0.000310

count  total (s)   self (s)
    1              0.000017   if a:000 == ['install-binary']
                                call clap#installer#install(v:false)
                                return
    1              0.000008   elseif a:000 == ['install-binary!']
                                call clap#installer#install(v:true)
                                return
    1              0.000003   endif
                            
    1              0.000015   let g:clap.start.bufnr = bufnr('')
    1              0.000010   let g:clap.start.winid = win_getid()
    1              0.000023   let g:clap.start.old_pos = getpos('.')
                            
    1              0.000013   let g:clap.context = {}
    1              0.000006   let g:clap.tmps = []
                            
    1              0.000005   if a:bang
                                let g:clap.context.async = v:true
    1              0.000002   endif
                            
    1              0.000005   if a:0 == 0
                                let provider_id_or_alias = 'providers'
                                let g:clap.provider.args = []
    1              0.000002   else
    1              0.000007     if a:000 == ['debug']
                                  call clap#debugging#info()
                                  return
    1              0.000007     elseif a:000 == ['debug+']
                                  call clap#debugging#info_to_clipboard()
                                  return
    1              0.000002     endif
    1              0.000011     let provider_id_or_alias = a:1
    1   0.000215   0.000051     call s:parse_opts(a:000[1:])
    1              0.000003   endif
                            
    1   0.334335   0.000036   call clap#for(provider_id_or_alias)

FUNCTION  <SNR>62_Autocmd()
    Defined: ~/.config/nvim/plugged/coc.nvim/plugin/coc.vim:151
Called 13 times
Total time:   0.004684
 Self time:   0.000588

count  total (s)   self (s)
   13              0.000155   if !get(g:,'coc_workspace_initialized', 0)
                                return
   13              0.000029   endif
   13   0.004420   0.000324   call coc#rpc#notify('CocAutocmd', a:000)

FUNCTION  airline#util#winwidth()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:19
Called 166 times
Total time:   0.004997
 Self time:   0.004997

count  total (s)   self (s)
  166              0.001572   let nr = get(a:000, 0, 0)
  166              0.001187   if get(g:, 'airline_statusline_ontop', 0)
                                return &columns
  166              0.000333   else
  166              0.000959     return winwidth(nr)
                              endif

FUNCTION  <SNR>157_find_root_dir()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/path.vim:67
Called 1 time
Total time:   0.000726
 Self time:   0.000110

count  total (s)   self (s)
    1              0.000027   let start_dir = expand('#'.a:bufnr.':p')
                            
    3              0.000010   for pattern in a:root_markers
    3   0.000666   0.000050     let dir = s:find_upwards(start_dir, pattern)
    3              0.000009     if !empty(dir)
    1              0.000002       return dir
    2              0.000002     endif
    2              0.000003   endfor
                            
                              return ''

FUNCTION  <SNR>127_build_sections()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/default.vim:35
Called 31 times
Total time:   0.028497
 Self time:   0.005031

count  total (s)   self (s)
  172              0.000548   for key in a:keys
  141              0.000981     if (key == 'warning' || key == 'error') && !a:context.active
   34              0.000047       continue
  107              0.000147     endif
  107   0.025731   0.002266     call s:add_section(a:builder, a:context, key)
  138              0.000246   endfor

FUNCTION  sy#sign#get_current_signs()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/sign.vim:24
Called 7 times
Total time:   0.003672
 Self time:   0.002643

count  total (s)   self (s)
    7              0.000072   let a:sy.internal = {}
    7              0.000057   let a:sy.external = {}
                            
    7   0.001315   0.000286   let signlist = sy#util#execute('sign place buffer='. a:sy.buffer)
                            
   14              0.000309   for signline in split(signlist, '\n')[2:]
    7              0.000611     let tokens = matchlist(signline, '\v^\s+\S+\=(\d+)\s+\S+\=(\d+)\s+\S+\=(.*)$')
    7              0.000106     let line   = str2nr(tokens[1])
    7              0.000067     let id     = str2nr(tokens[2])
    7              0.000044     let type   = tokens[3]
                            
    7              0.000131     if type =~# '^Signify'
                                  " Handle ambiguous signs. Assume you have signs on line 3 and 4.
                                  " Removing line 3 would lead to the second sign to be shifted up
                                  " to line 3. Now there are still 2 signs, both one line 3.
                                  if has_key(a:sy.internal, line)
                                    execute 'sign unplace' a:sy.internal[line].id 'buffer='.a:sy.buffer
                                  endif
                                  let a:sy.internal[line] = { 'type': type, 'id': id }
    7              0.000017     else
    7              0.000097       let a:sy.external[line] = id
    7              0.000015     endif
   14              0.000053   endfor

FUNCTION  <SNR>193_callback_nvim_exit()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:21
Called 7 times
Total time:   0.014229
 Self time:   0.000336

count  total (s)   self (s)
    7   0.014205   0.000312   return s:handle_diff(self, a:exitval)

FUNCTION  sy#util#execute()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/util.vim:104
Called 7 times
Total time:   0.001028
 Self time:   0.001028

count  total (s)   self (s)
    7              0.000063   let lang = v:lang
    7              0.000095   redir => output
    7              0.000278     silent! execute a:cmd
    7              0.000094   redir END
    7              0.000403   silent! execute 'language message' lang
    7              0.000050   return output

FUNCTION  airline#util#doautocmd()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:176
Called 4 times
Total time:   0.000889
 Self time:   0.000283

count  total (s)   self (s)
    4   0.000875   0.000269   exe printf("silent doautocmd %s User %s", s:nomodeline, a:event)

FUNCTION  32()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:273
Called 4 times
Total time:   0.000108
 Self time:   0.000062

count  total (s)   self (s)
    4   0.000105   0.000058       return clap#util#nvim_buf_get_first_line(self.bufnr)

FUNCTION  34()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:281
Called 1 time
Total time:   0.000162
 Self time:   0.000037

count  total (s)   self (s)
    1   0.000160   0.000035       call clap#util#nvim_buf_clear(self.bufnr)

FUNCTION  35()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:88
Called 1 time
Total time:   0.000014
 Self time:   0.000014

count  total (s)   self (s)
    1              0.000014       call nvim_win_set_cursor(self.winid, [a:lnum, a:col])

FUNCTION  36()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:92
Called 1 time
Total time:   0.000093
 Self time:   0.000019

count  total (s)   self (s)
    1   0.000092   0.000018       call clap#util#nvim_buf_set_lines(self.bufnr, a:lines)

FUNCTION  37()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:96
Called 1 time
Total time:   0.000278
 Self time:   0.000043

count  total (s)   self (s)
    1   0.000277   0.000042       call clap#util#nvim_buf_clear(self.bufnr)

FUNCTION  clap#handler#init()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/handler.vim:99
Called 1 time
Total time:   0.000081
 Self time:   0.000037

count  total (s)   self (s)
    1   0.000079   0.000035   let s:support_multi_select = g:clap.provider.support_multi_select()

FUNCTION  clap#maple#stop()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/maple.vim:141
Called 1 time
Total time:   0.000025
 Self time:   0.000025

count  total (s)   self (s)
    1              0.000006   if s:job_id > 0
                                call clap#job#stop(s:job_id)
                                let s:job_id = -1
    1              0.000003   endif

FUNCTION  vista#cursor#FindNearestMethodOrFunction()
    Defined: ~/.config/nvim/plugged/vista.vim/autoload/vista/cursor.vim:141
Called 3 times
Total time:   0.000291
 Self time:   0.000185

count  total (s)   self (s)
    3              0.000059   if !exists('t:vista') || !has_key(t:vista, 'functions') || bufnr('') != t:vista.source.bufnr
    2              0.000003     return
    1              0.000002   endif
                            
    1   0.000143   0.000036   call s:StopFindTimer()
                            
    1              0.000012   if empty(t:vista.functions)
                                call setbufvar(t:vista.source.bufnr, 'vista_nearest_method_or_function', '')
                                return
    1              0.000002   endif
                            
    1              0.000038   let s:find_timer = timer_start( s:find_delay, function('s:FindNearestMethodOrFunction'), )

FUNCTION  <SNR>167_on_typed_async_impl()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/impl.vim:80
Called 1 time
Total time:   0.000270
 Self time:   0.000068

count  total (s)   self (s)
    1   0.000114   0.000010   call g:clap.display.clear_highlight()
    1   0.000036   0.000011   let l:cur_input = g:clap.input.get()
                            
    1              0.000004   if empty(l:cur_input)
    1              0.000004     if exists('g:__clap_raw_source')
                                  call g:clap.display.set_lines_lazy(g:__clap_raw_source)
                                  call clap#indicator#set_matches('['.g:__clap_initial_source_size.']')
                                  call clap#sign#toggle_cursorline()
                                  call g:clap#display_win.shrink_if_undersize()
                                  call g:clap.preview.hide()
    1              0.000001     endif
    1   0.000087   0.000013     call clap#highlight#clear()
    1              0.000002     return
                              endif
                            
                              " Do not clear the outdated content as it would cause the annoying flicker.
                              " call g:clap.display.clear()
                            
                              let cmd = g:clap.provider.source_async_or_default()
                            
                              if clap#filter#async#external#using_maple()
                                call clap#rooter#run(function('clap#maple#job_start'), cmd)
                              else
                                call clap#rooter#run(function('clap#dispatcher#job_start'), cmd)
                              endif
                            
                              call clap#spinner#set_busy()

FUNCTION  41()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:112
Called 1 time
Total time:   0.000103
 Self time:   0.000038

count  total (s)   self (s)
    1   0.000043   0.000012       call self.goto_win()
                                  " Clear all matches added in the display window
                                  "
                                  " We should not use clearmatches() as it will clear the
                                  " ClapNoMatchesFound highlight as well.
                                  "
                                  " call clearmatches()
    1   0.000022   0.000009       call self.matchdelete()
    1   0.000032   0.000011       call g:clap.input.goto_win()

FUNCTION  43()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:193
Called 1 time
Total time:   0.000174
 Self time:   0.000081

count  total (s)   self (s)
    1              0.000006     if len(a:raw_lines) >= g:clap.display.preload_capacity
    1              0.000029       let to_set = a:raw_lines[:g:clap.display.preload_capacity-1]
    1              0.000014       let to_cache = a:raw_lines[g:clap.display.preload_capacity : ]
    1   0.000104   0.000011       call self.set_lines(to_set)
    1              0.000006       let g:clap.display.cache = to_cache
                                else
                                  call self.set_lines(a:raw_lines)
                                  " b -> b0
                                  " Continuing to input more chars leads to the number of filtered result smaller,
                                  " in which case the get_lines() could overlap with current cache, thus
                                  " we should not use the cache next time.
                                  let g:__clap_do_not_use_cache = v:true
    1              0.000001     endif

FUNCTION  48()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:256
Called 2 times
Total time:   0.000025
 Self time:   0.000025

count  total (s)   self (s)
    2              0.000009     if exists('w:clap_match_ids')
                                  call map(w:clap_match_ids, 'matchdelete(v:val)')
                                  unlet w:clap_match_ids
    2              0.000002     endif

FUNCTION  49()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:309
Called 19 times
Total time:   0.000130
 Self time:   0.000130

count  total (s)   self (s)
   19              0.000114     return g:clap.registrar[self.id]

FUNCTION  <SNR>114_group_not_done()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:25
Called 72 times
Total time:   0.001752
 Self time:   0.001752

count  total (s)   self (s)
   72              0.000795   if index(a:list, a:name) == -1
   72              0.000584     call add(a:list, a:name)
   72              0.000205     return 1
                              else
                                if &vbs
                                  echomsg printf("airline: group: %s already done, skipping", a:name)
                                endif
                                return 0
                              endif

FUNCTION  <SNR>193_check_diff_git()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:161
Called 4 times
Total time:   0.000056
 Self time:   0.000056

count  total (s)   self (s)
    4              0.000045   return a:exitval ? [0, []] : [1, a:diff]

FUNCTION  52()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:329
Called 1 time
Total time:   0.000015
 Self time:   0.000010

count  total (s)   self (s)
    1   0.000014   0.000010     return get(self._(), 'enable_rooter', v:false)

FUNCTION  airline#extensions#keymap#status()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/keymap.vim:10
Called 5 times
Total time:   0.000228
 Self time:   0.000228

count  total (s)   self (s)
    5              0.000108   if (get(g:, 'airline#extensions#keymap#enabled', 1) && has('keymap'))
    5              0.000105     return printf('%s', (!empty(&keymap) ? (g:airline_symbols.keymap . ' '. &keymap) : ''))
                              else
                                return ''
                              endif

FUNCTION  58()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:372
Called 1 time
Total time:   0.000054
 Self time:   0.000040

count  total (s)   self (s)
    1   0.000039   0.000026     if has_key(self._(), 'on_exit')
                                  call self._().on_exit()
    1              0.000003     endif

FUNCTION  59()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:378
Called 1 time
Total time:   0.000076
 Self time:   0.000057

count  total (s)   self (s)
    1   0.000058   0.000038     if has_key(self._(), 'jobstop')
                                  call self._().jobstop()
    1              0.000005     endif

FUNCTION  11()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:8
Called 24 times
Total time:   0.000277
 Self time:   0.000277

count  total (s)   self (s)
   24              0.000251   call add(self._sections, ['|', a:0 ? a:1 : '%='])

FUNCTION  18()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:62
Called 24 times
Total time:   0.256589
 Self time:   0.035024

count  total (s)   self (s)
   24              0.000084   let side = 1
   24              0.000066   let line = ''
   24              0.000066   let i = 0
   24              0.000138   let length = len(self._sections)
   24              0.000067   let split = 0
   24              0.000082   let is_empty = 0
   24              0.000080   let prev_group = ''
                            
  163              0.000595   while i < length
  139              0.000808     let section = self._sections[i]
  139              0.000622     let group = section[0]
  139              0.000624     let contents = section[1]
  139              0.000497     let pgroup = prev_group
  139   0.007380   0.003227     let prev_group = airline#builder#get_prev_group(self._sections, i)
  139              0.000877     if group ==# 'airline_c' && &buftype ==# 'terminal' && self._context.active
                                  let group = 'airline_term'
  139              0.001108     elseif group ==# 'airline_c' && !self._context.active && has_key(self._context, 'bufnr')
                                  let group = 'airline_c'. self._context.bufnr
  139              0.001046     elseif prev_group ==# 'airline_c' && !self._context.active && has_key(self._context, 'bufnr')
                                  let prev_group = 'airline_c'. self._context.bufnr
  139              0.000175     endif
  139              0.000308     if is_empty
                                  let prev_group = pgroup
  139              0.000138     endif
  139   0.006268   0.002959     let is_empty = s:section_is_empty(self, contents)
                            
  139              0.000297     if is_empty
                                  " need to fix highlighting groups, since we
                                  " have skipped a section, we actually need
                                  " the previous previous group and so the
                                  " seperator goes from the previous previous group
                                  " to the current group
                                  let pgroup = group
  139              0.000143     endif
                            
  139              0.000398     if group == ''
                                  let line .= contents
  139              0.000394     elseif group == '|'
   24              0.000059       let side = 0
   24              0.000122       let line .= contents
   24              0.000058       let split = 1
  115              0.000145     else
  115              0.000343       if prev_group == ''
   24              0.000168         let line .= '%#'.group.'#'
   91              0.000194       elseif split
   24              0.000054         if !is_empty
   24   0.040266   0.000633           let line .= s:get_transitioned_seperator(self, prev_group, group, side)
   24              0.000037         endif
   24              0.000070         let split = 0
   67              0.000087       else
   67              0.000162         if !is_empty
   67   0.162982   0.001642           let line .= s:get_seperator(self, prev_group, group, side)
   67              0.000114         endif
  115              0.000168       endif
  115   0.016586   0.003456       let line .= is_empty ? '' : s:get_accented_line(self, group, contents)
  139              0.000183     endif
                            
  139              0.000534     let i = i + 1
  163              0.000335   endwhile
                            
   24              0.000086   if !self._context.active
                                "let line = substitute(line, '%#airline_c#', '%#airline_c'.self._context.bufnr.'#', '')
   17              0.001359     let line = substitute(line, '%#.\{-}\ze#', '\0_inactive', 'g')
   24              0.000037   endif
   24              0.000107   return line

FUNCTION  clap#util#nvim_buf_get_first_line()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/util.vim:64
Called 4 times
Total time:   0.000046
 Self time:   0.000046

count  total (s)   self (s)
    4              0.000044   return get(nvim_buf_get_lines(a:bufnr, 0, 1, 0), 0, '')

FUNCTION  clap#spinner#set()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/spinner.vim:55
Called 3 times
Total time:   0.000503
 Self time:   0.000124

count  total (s)   self (s)
    3   0.000177   0.000043     let s:current_prompt = s:fill_in_placeholders(a:text)
    3              0.000038     call setbufline(g:clap.spinner.bufnr, 1, s:current_prompt)
    3   0.000283   0.000039     call g:clap#floating_win#spinner.shrink()

FUNCTION  <SNR>150_set_spinner()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/spinner.vim:67
Called 3 times
Total time:   0.000933
 Self time:   0.000086

count  total (s)   self (s)
    3   0.000386   0.000042     let s:current_prompt = s:generate_prompt()
    3   0.000544   0.000042     call clap#spinner#set(s:current_prompt)

FUNCTION  <SNR>45_on_window_changed()
    Defined: ~/.config/nvim/plugged/vim-airline/plugin/airline.vim:59
Called 6 times
Total time:   0.278751
 Self time:   0.000820

count  total (s)   self (s)
                              " don't trigger for Vim popup windows
    6              0.000042   if &buftype is# 'popup'
                                return
    6              0.000009   endif
                            
    6              0.000044   if pumvisible() && (!&previewwindow || g:airline_exclude_preview)
                                " do not trigger for previewwindows
                                return
    6              0.000008   endif
    6              0.000048   let s:active_winnr = winnr()
                              " Handle each window only once, since we might come here several times for
                              " different autocommands.
    6              0.000131   let l:key = [bufnr('%'), s:active_winnr, winnr('$'), tabpagenr(), &ft]
    6              0.000091   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.000008   endif
    6              0.000086   let g:airline_last_window_changed = l:key
    6   0.000164   0.000108   call s:init()
    6   0.277994   0.000118   call airline#update_statusline()

FUNCTION  61()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:388
Called 1 time
Total time:   0.000044
 Self time:   0.000028

count  total (s)   self (s)
    1   0.000042   0.000026     return has_key(self._(), 'sink*')

FUNCTION  63()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:396
Called 1 time
Total time:   0.000021
 Self time:   0.000014

count  total (s)   self (s)
    1   0.000020   0.000013     return has_key(self._(), 'source_type') && self._().source_type == g:__t_rpc

FUNCTION  64()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:400
Called 1 time
Total time:   0.017794
 Self time:   0.000032

count  total (s)   self (s)
    1   0.000019   0.000011     if has_key(self._(), 'syntax')
    1   0.017772   0.000019       call g:clap.display.setbufvar('&syntax', self._().syntax)
    1              0.000001     endif

FUNCTION  65()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:406
Called 1 time
Total time:   0.000028
 Self time:   0.000028

count  total (s)   self (s)
    1              0.000005     if has_key(g:clap.context, 'query')
                                  if s:is_nvim
                                    call feedkeys(g:clap.context.query)
                                  else
                                    call g:clap.input.set(g:clap.context.query)
                                    " Move the cursor to the end.
                                    call feedkeys("\<C-E>", 'xt')
                                  endif
                                  call clap#indicator#set_none()
                                  call g:clap.provider.on_typed()
    1              0.000001     endif

FUNCTION  clap#path#project_root_or_default()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/path.vim:95
Called 1 time
Total time:   0.000764
 Self time:   0.000021

count  total (s)   self (s)
    1   0.000758   0.000015   let root = clap#path#find_project_root(a:bufnr)
    1              0.000005   return empty(root) ? getcwd() : root

FUNCTION  airline#extensions#default#apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/default.vim:79
Called 24 times
Total time:   0.037700
 Self time:   0.004277

count  total (s)   self (s)
   24              0.000153   let winnr = a:context.winnr
   24              0.000135   let active = a:context.active
                            
   24   0.000813   0.000565   if airline#util#getwinvar(winnr, 'airline_render_left', active || (!active && !g:airline_inactive_collapse))
    7   0.007509   0.000242     call s:build_sections(a:builder, a:context, s:layout[0])
   17              0.000027   else
   17   0.001890   0.000299     let text = s:get_section(winnr, 'c')
   17              0.000062     if empty(text)
                                  let text = ' %f%m '
   17              0.000024     endif
   17   0.000446   0.000278     call a:builder.add_section('airline_c'.(a:context.bufnr), text)
   24              0.000038   endif
                            
   24   0.003509   0.000797   call a:builder.split(s:get_section(winnr, 'gutter', '', ''))
                            
   24   0.000643   0.000437   if airline#util#getwinvar(winnr, 'airline_render_right', 1)
   24   0.021797   0.000567     call s:build_sections(a:builder, a:context, s:layout[1])
   24              0.000035   endif
                            
   24              0.000053   return 1

FUNCTION  airline#util#stl_disabled()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:185
Called 31 times
Total time:   0.003071
 Self time:   0.002245

count  total (s)   self (s)
                              " setting the statusline is disabled,
                              " either globally, per window, or per buffer
                              " w:airline_disabled is deprecated!
   31   0.002920   0.002094   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  71()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:557
Called 2 times
Total time:   0.000028
 Self time:   0.000019

count  total (s)   self (s)
    2   0.000027   0.000018     return !has_key(self._(), 'source')

FUNCTION  72()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:570
Called 1 time
Total time:   0.000035
 Self time:   0.000031

count  total (s)   self (s)
                                " The default async implementation is not doable and the provider does not
                                " provide a source_async implementation explicitly.
    1   0.000023   0.000018     if !clap#filter#async#external#has_default() && !has_key(self._(), 'source_async')
                                  return v:false
    1              0.000001     else
    1              0.000006       return !get(g:, 'clap_disable_optional_async', v:false)
                                endif

FUNCTION  74()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:608
Called 1 time
Total time:   0.003188
 Self time:   0.000036

count  total (s)   self (s)
    1   0.000014   0.000009     if has_key(self._(), 'init')
                                  call self._().init()
    1              0.000001     else
    1   0.003165   0.000016       call self.init_default_impl()
    1              0.000002     endif

FUNCTION  75()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:47
Called 1 time
Total time:   0.066941
 Self time:   0.000895

count  total (s)   self (s)
    1              0.000027   if exists('s:display_winid') && nvim_win_is_valid(s:display_winid)
                                return
    1              0.000002   endif
                              " Check if the buffer is still valid as when switching between the sessions, it could become invalid.
    1              0.000011   if !nvim_buf_is_valid(s:display_bufnr)
                                let s:display_bufnr = nvim_create_buf(v:false, v:true)
                                let g:clap.display.bufnr = s:display_bufnr
    1              0.000002   endif
                            
    1   0.000719   0.000042   let s:display_opts = clap#layout#calc()
    1   0.065381   0.000484   silent let s:display_winid = nvim_open_win(s:display_bufnr, v:true, s:display_opts)
                            
    1   0.000166   0.000106   call setwinvar(s:display_winid, '&winhl', s:display_winhl)
    1              0.000083   call matchadd('ClapNoMatchesFound', g:__clap_no_matches_pattern, 10, 1001, {'window': s:display_winid})
                              " call setwinvar(s:display_winid, '&winblend', 15)
                            
    1              0.000017   let g:clap.display.winid = s:display_winid
                            
                              " call setwinvar(s:display_winid, '&listchars', 'extends:•')
                              " \ '&listchars': 'extends:•'
                              " listchars would cause some troubles in some files using tab.
                              " Is there a better solution?
                            
    1   0.000480   0.000068   call g:clap.display.setbufvar_batch({ '&wrap': 0, '&number': 0, '&relativenumber': 0, '&cursorline': 0, '&signcolumn': 'yes', '&foldcolumn': 0, })

FUNCTION  76()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:81
Called 1 time
Total time:   0.000099
 Self time:   0.000071

count  total (s)   self (s)
    1              0.000014   let opts = nvim_win_get_config(s:display_winid)
    1   0.000022   0.000016   if g:clap.display.line_count() < s:display_opts.height
                                let opts.height = g:clap.display.line_count()
    1              0.000001   else
    1              0.000004     let opts.height = s:display_opts.height
    1              0.000001   endif
    1              0.000013   call nvim_win_set_config(s:display_winid, opts)
    1   0.000037   0.000016   call s:try_adjust_preview()

FUNCTION  78()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:127
Called 1 time
Total time:   0.071438
 Self time:   0.000644

count  total (s)   self (s)
    1              0.000026   if exists('s:spinner_winid') && nvim_win_is_valid(s:spinner_winid)
                                return
    1              0.000002   endif
    1              0.000026   let opts = nvim_win_get_config(s:display_winid)
    1              0.000008   let opts.col += s:symbol_width
    1              0.000005   let opts.row -= 1
    1   0.000078   0.000033   let opts.width = clap#spinner#width()
    1              0.000006   let opts.height = 1
    1              0.000007   let opts.focusable = v:false
                            
    1              0.000011   if !nvim_buf_is_valid(s:spinner_bufnr)
                                let s:spinner_bufnr = nvim_create_buf(v:false, v:true)
                                let g:clap.spinner.bufnr = s:spinner_bufnr
    1              0.000002   endif
    1              0.000364   silent let s:spinner_winid = nvim_open_win(s:spinner_bufnr, v:false, opts)
                            
    1              0.000053   call setwinvar(s:spinner_winid, '&winhl', 'Normal:ClapSpinner')
    1   0.070800   0.000050   call s:set_minimal_buf_style(s:spinner_bufnr, 'clap_spinner')
                            
    1              0.000012   let g:clap.spinner = get(g:clap, 'spinner', {})
    1              0.000005   let g:clap.spinner.winid = s:spinner_winid

FUNCTION  <SNR>45_on_focus_gained()
    Defined: ~/.config/nvim/plugged/vim-airline/plugin/airline.vim:85
Called 1 time
Total time:   0.048850
 Self time:   0.000254

count  total (s)   self (s)
    1   0.000196   0.000118   if airline#util#try_focusgained()
    1   0.048642   0.000125     unlet! w:airline_lastmode | :call <sid>airline_refresh(1)
    1              0.000003   endif

FUNCTION  CocActionAsync()
    Defined: ~/.config/nvim/plugged/coc.nvim/plugin/coc.vim:32
Called 3 times
Total time:   0.002373
 Self time:   0.000186

count  total (s)   self (s)
    3   0.002362   0.000174   return s:AsyncRequest('CocAction', a:000)

FUNCTION  82()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:307
Called 1 time
Total time:   0.000039
 Self time:   0.000039

count  total (s)   self (s)
    1              0.000016   if exists('s:preview_winid')
                                call clap#util#nvim_win_close_safe(s:preview_winid)
                                unlet s:preview_winid
    1              0.000003   endif

FUNCTION  <SNR>71_SetDefaultCompletionType()
    Defined: ~/.config/nvim/plugged/supertab/plugin/supertab.vim:380
Called 1 time
Total time:   0.000063
 Self time:   0.000063

count  total (s)   self (s)
    1              0.000036   if exists('b:SuperTabDefaultCompletionType') && (!exists('b:complCommandLine') || !b:complCommandLine)
                                call SuperTabSetCompletionType(b:SuperTabDefaultCompletionType)
    1              0.000004   endif

FUNCTION  86()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/provider/files.vim:31
Called 2 times
Total time:   0.000207
 Self time:   0.000106

count  total (s)   self (s)
    2   0.000126   0.000025   call clap#rooter#try_set_cwd()
                            
    2              0.000009   if has_key(g:clap.context, 'finder')
                                let finder = g:clap.context.finder
                                return finder.' '.join(g:clap.provider.args, ' ')
    2              0.000019   elseif g:clap.provider.args == ['--hidden']
                                if s:default_finder ==# 'fd' || s:default_finder ==# 'rg'
                                  return join([s:default_finder, s:default_opts[s:default_finder], '--hidden'], ' ')
                                else
                                  return s:default_source
                                endif
    2              0.000002   else
    2              0.000005     return s:default_source
                              endif

FUNCTION  clap#spinner#refresh()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/spinner.vim:90
Called 2 times
Total time:   0.000641
 Self time:   0.000022

count  total (s)   self (s)
    2   0.000639   0.000021   call s:set_spinner()

FUNCTION  airline#util#wrap()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:42
Called 79 times
Total time:   0.002278
 Self time:   0.002111

count  total (s)   self (s)
   79   0.001212   0.001045   if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
                                return ''
   79              0.000209   endif
   79              0.000364   return a:text

FUNCTION  <SNR>45_airline_refresh()
    Defined: ~/.config/nvim/plugged/vim-airline/plugin/airline.vim:225
Called 1 time
Total time:   0.048518
 Self time:   0.000690

count  total (s)   self (s)
                              " a:1, fast refresh, do not reload the theme
    1              0.000031   let fast=!empty(get(a:000, 0, 0))
    1              0.000020   if !exists("#airline")
                                " disabled
                                return
    1              0.000004   endif
    1   0.000275   0.000054   call airline#util#doautocmd('AirlineBeforeRefresh')
    1   0.001730   0.000076   call airline#highlighter#reset_hlcache()
    1              0.000016   if !fast
                                call airline#load_theme()
    1              0.000005   endif
    1   0.046328   0.000402   call airline#update_statusline()
    1   0.000072   0.000044   call airline#update_tabline()

FUNCTION  <SNR>126_get_transitioned_seperator()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:143
Called 91 times
Total time:   0.144837
 Self time:   0.008175

count  total (s)   self (s)
   91              0.000329   let line = ''
   91              0.001026   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.'#'
   91              0.000138   else
   91   0.138838   0.002175     call airline#highlighter#add_separator(a:prev_group, a:group, a:side)
   91              0.000925     let line .= '%#'.a:prev_group.'_to_'.a:group.'#'
   91              0.000905     let line .= a:side ? a:self._context.left_sep : a:self._context.right_sep
   91              0.000482     let line .= '%#'.a:group.'#'
   91              0.000133   endif
   91              0.000254   return line

FUNCTION  sy#start()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy.vim:7
Called 8 times
Total time:   0.040541
 Self time:   0.004758

count  total (s)   self (s)
    8              0.000073   if g:signify_locked
                                call sy#verbose('Locked.')
                                return
    8              0.000023   endif
                            
    8              0.000181   let bufnr = a:0 && has_key(a:1, 'bufnr') ? a:1.bufnr : bufnr('')
    8              0.000119   let sy = getbufvar(bufnr, 'sy')
                            
    8              0.000062   if empty(sy)
    4   0.000589   0.000130     let path = s:get_path(bufnr)
    4   0.000272   0.000124     if s:skip(bufnr, path)
    4   0.000341   0.000109       call sy#verbose('Skip file: '. path)
    4              0.000015       return
                                endif
                                call sy#verbose('Register new file: '. path)
                                let new_sy = { 'path':       path, 'buffer':     bufnr, 'active':     0, 'detecting':  0, 'vcs':        [], 'hunks':      [], 'signid':     0x100, 'updated_by': '', 'stats':      [-1, -1, -1], 'info':       {    'dir':  fnamemodify(path, ':p:h'),    'path': sy#util#escape(path),    'file': sy#util#escape(fnamemodify(path, ':t')) }}
                                call setbufvar(bufnr, 'sy', new_sy)
                                if get(g:, 'signify_disable_by_default')
                                  call sy#verbose('Disabled by default.')
                                  return
                                endif
                                let new_sy.active = 1
                                call setbufvar(bufnr, 'sy', new_sy)
                                call sy#repo#detect(bufnr)
    4              0.000085   elseif has('vim_starting')
                                call sy#verbose("Don't run Sy more than once during startup.")
                                return
    4              0.000030   elseif !sy.active
                                call sy#verbose('Inactive buffer.')
                                return
    4              0.000039   elseif empty(sy.vcs)
                                if get(sy, 'retry')
                                  let sy.retry = 0
                                  call sy#verbose('Redetecting VCS.')
                                  call sy#repo#detect(sy.buffer)
                                else
                                  if get(sy, 'detecting')
                                    call sy#verbose('Detection is already in progress.')
                                  else
                                    call sy#verbose('No VCS found. Disabling.')
                                    call sy#disable(sy.buffer)
                                  endif
                                endif
    4              0.000012   else
   12              0.000167     for vcs in sy.vcs
    8              0.000222       let job_id = getbufvar(sy.buffer, 'sy_job_id_'. vcs, 0)
    8              0.000129       if type(job_id) != type(0) || job_id > 0
    1   0.000190   0.000089         call sy#verbose('Update is already in progress.', vcs)
    7              0.000022       else
    7   0.001145   0.000500         call sy#verbose('Updating signs.', vcs)
    7   0.035023   0.000825         call sy#repo#get_diff(sy.buffer, vcs, function('sy#sign#set_signs'))
    8              0.000058       endif
   12              0.000171     endfor
    4              0.000014   endif

FUNCTION  <SNR>114_get_syn()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:37
Called 1228 times
Total time:   0.109643
 Self time:   0.109643

count  total (s)   self (s)
 1228              0.008915   if !exists("g:airline_gui_mode")
                                let g:airline_gui_mode = airline#init#gui_mode()
 1228              0.001790   endif
 1228              0.003957   let color = ''
 1228              0.019031   if hlexists(a:group)
 1138              0.024219     let color = synIDattr(synIDtrans(hlID(a:group)), a:what, g:airline_gui_mode)
 1228              0.002078   endif
 1228              0.007352   if empty(color) || color == -1
                                " should always exists
   90              0.003652     let color = synIDattr(synIDtrans(hlID('Normal')), a:what, g:airline_gui_mode)
                                " however, just in case
   90              0.000581     if empty(color) || color == -1
                                  let color = 'NONE'
   90              0.000150     endif
 1228              0.001652   endif
 1228              0.003546   return color

FUNCTION  <SNR>170_set_indicator()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/indicator.vim:17
Called 1 time
Total time:   0.000048
 Self time:   0.000030

count  total (s)   self (s)
    1              0.000005     if bufexists(g:__clap_indicator_bufnr)
    1   0.000041   0.000023       call setbufline(g:__clap_indicator_bufnr, 1, s:padding(a:indicator))
    1              0.000001     endif

FUNCTION  airline#extensions#term#inactive_apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/term.vim:24
Called 17 times
Total time:   0.000691
 Self time:   0.000691

count  total (s)   self (s)
   17              0.000148   if getbufvar(a:2.bufnr, '&buftype') == 'terminal'
                                let spc = g:airline_symbols.space
                                call a:1.add_section('airline_a', spc.'TERMINAL'.spc)
                                call a:1.add_section('airline_b', spc.'%f')
                                let neoterm_id = getbufvar(a:2.bufnr, 'neoterm_id')
                                if neoterm_id != ''
                                  call a:1.add_section('airline_c', spc.'neoterm_'.neoterm_id.spc)
                                endif
                                return 1
   17              0.000022   endif

FUNCTION  <SNR>65_notify()
    Defined: ~/.config/nvim/plugged/coc.nvim/autoload/coc/client.vim:137
Called 18 times
Total time:   0.004577
 Self time:   0.004178

count  total (s)   self (s)
   18   0.000935   0.000537   let channel = coc#client#get_channel(self)
   18              0.000113   if empty(channel)
                                return ''
   18              0.000034   endif
   18              0.000058   try
   18              0.000065     if s:is_vim
                                  call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n")
   18              0.000048     else
   18              0.001199       call call('rpcnotify', [channel, a:method] + a:args)
   18              0.000072     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
   18              0.000068   endtry

FUNCTION  airline#builder#get_prev_group()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:37
Called 139 times
Total time:   0.004153
 Self time:   0.004153

count  total (s)   self (s)
  139              0.000694   let x = a:i - 1
  163              0.000503   while x >= 0
  139              0.000821     let group = a:sections[x][0]
  139              0.000777     if group != '' && group != '|'
  115              0.000309       return group
   24              0.000030     endif
   24              0.000066     let x = x - 1
   48              0.000088   endwhile
   24              0.000051   return ''

FUNCTION  clap#rooter#try_set_cwd()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/rooter.vim:12
Called 2 times
Total time:   0.000100
 Self time:   0.000100

count  total (s)   self (s)
    2              0.000018   if !exists('g:__clap_provider_cwd') && !empty(g:clap.provider.args)
                                let dir = g:clap.provider.args[-1]
                                if isdirectory(expand(dir))
                            
                                  " dir could be a relative directory, e.g., ..
                                  " We must use the absolute directory for g:__clap_provider_cwd,
                                  " otherwise s:run_from_target_dir could `lcd ..` multiple times.
                                  let save_cwd = getcwd()
                                  noautocmd execute 'lcd' dir
                                  let g:__clap_provider_cwd = getcwd()
                                  noautocmd execute 'lcd' save_cwd
                            
                                  let g:clap.provider.args = g:clap.provider.args[:-2]
                                endif
    2              0.000002   endif

FUNCTION  <SNR>10_SynSet()
    Defined: /usr/local/share/nvim/runtime/syntax/synload.vim:33
Called 4 times
Total time:   0.021248
 Self time:   0.004875

count  total (s)   self (s)
                              " clear syntax for :set syntax=OFF  and any syntax name that doesn't exist
    4              0.000175   syn clear
    4              0.000028   if exists("b:current_syntax")
                                unlet b:current_syntax
    4              0.000007   endif
                            
    4              0.000030   let s = expand("<amatch>")
    4              0.000015   if s == "ON"
                                " :set syntax=ON
                                if &filetype == ""
                                  echohl ErrorMsg
                                  echo "filetype unknown"
                                  echohl None
                                endif
                                let s = &filetype
    4              0.000013   elseif s == "OFF"
                                let s = ""
    4              0.000006   endif
                            
    4              0.000011   if s != ""
                                " Load the syntax file(s).  When there are several, separated by dots,
                                " load each in sequence.
    6              0.000055     for name in split(s, '\.')
    3   0.020732   0.004359       exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim"
    6              0.000018     endfor
    4              0.000007   endif

FUNCTION  airline#util#getwinvar()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:82
Called 236 times
Total time:   0.002306
 Self time:   0.002306

count  total (s)   self (s)
  236              0.002085     return getwinvar(a:winnr, a:key, a:def)

FUNCTION  clap#exit()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:213
Called 1 time
Total time:   0.005266
 Self time:   0.000054

count  total (s)   self (s)
    1   0.005238   0.000025   call clap#_exit()
                            
                              " NOTE: Need to go back to the start window
    1              0.000012   if win_getid() != g:clap.start.winid
                                call g:clap.start.goto_win()
    1              0.000003   endif

FUNCTION  <SNR>137_GenericStopTimer()
    Defined: ~/.config/nvim/plugged/vista.vim/autoload/vista/cursor.vim:18
Called 2 times
Total time:   0.000091
 Self time:   0.000091

count  total (s)   self (s)
    2              0.000089   execute 'if '.a:timer.' != -1 |'. '  call timer_stop('.a:timer.') |'. '  let 'a:timer.' = -1 |'. 'endif'

FUNCTION  clap#should_use_raw_cwd()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:222
Called 1 time
Total time:   0.000038
 Self time:   0.000024

count  total (s)   self (s)
    1   0.000038   0.000023   return get(g:, 'clap_disable_run_rooter', v:false) || !g:clap.provider.has_enable_rooter() || getbufvar(g:clap.start.bufnr, '&bt') ==# 'terminal'

FUNCTION  <SNR>50_CursorHoldUpdate()
    Defined: ~/.config/nvim/plugged/vim-devicons/plugin/webdevicons.vim:375
Called 3 times
Total time:   0.000237
 Self time:   0.000237

count  total (s)   self (s)
    3              0.000075   if g:NERDTreeUpdateOnCursorHold != 1
                                return
    3              0.000014   endif
                            
    3              0.000082   if !exists('g:NERDTree') || !g:NERDTree.IsOpen()
    3              0.000014     return
                              endif
                            
                              " Do not update when a special buffer is selected
                              if !empty(&l:buftype)
                                return
                              endif
                            
                              " winnr need to make focus go to opened file
                              " CursorToTreeWin needed to avoid error on opening file
                              let l:winnr = winnr()
                              let l:altwinnr = winnr('#')
                            
                              call g:NERDTree.CursorToTreeWin()
                              call b:NERDTree.root.refreshFlags()
                              call NERDTreeRender()
                            
                              exec l:altwinnr . 'wincmd w'
                              exec l:winnr . 'wincmd w'

FUNCTION  <SNR>108_InitColor()
    Defined: ~/.config/nvim/plugged/indentLine/after/plugin/indentLine.vim:35
Called 4 times
Total time:   0.001200
 Self time:   0.001200

count  total (s)   self (s)
    4              0.000021     if !g:indentLine_setColors
                                    return
    4              0.000007     endif
                            
    4              0.000024     let default_term_bg = "NONE"
    4              0.000019     let default_gui_bg  = "NONE"
    4              0.000021     if &background ==# "light"
                                    let default_term_fg = 249
                                    let default_gui_fg = "Grey70"
    4              0.000007     else
    4              0.000018         let default_term_fg = 239
    4              0.000016         let default_gui_fg = "Grey30"
    4              0.000006     endif
                            
    4              0.000020     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")
    4              0.000006     endif
                            
    4              0.000029     if !exists("g:indentLine_color_term")
    4              0.000020         let term_color = default_term_fg
                                else
                                    let term_color = g:indentLine_color_term
    4              0.000005     endif
                            
    4              0.000023     if !exists("g:indentLine_bgcolor_term")
    4              0.000019         let term_bgcolor = default_term_bg
                                else
                                    let term_bgcolor = g:indentLine_bgcolor_term
    4              0.000005     endif
                            
    4              0.000023     if !exists("g:indentLine_color_gui")
                                    let gui_color = default_gui_fg
    4              0.000006     else
    4              0.000018         let gui_color = g:indentLine_color_gui
    4              0.000006     endif
                            
    4              0.000020     if !exists("g:indentLine_bgcolor_gui")
    4              0.000018         let gui_bgcolor = default_gui_bg
                                else
                                    let gui_bgcolor = g:indentLine_bgcolor_gui
    4              0.000005     endif
                            
    4              0.000236     execute "highlight Conceal cterm=NONE ctermfg=" . term_color . " ctermbg=" . term_bgcolor
    4              0.000155     execute "highlight Conceal gui=NONE guifg=" . gui_color .  " guibg=" . gui_bgcolor
                            
    4              0.000017     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"
    4              0.000006     endif

FUNCTION  airline#update_statusline()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline.vim:127
Called 7 times
Total time:   0.323801
 Self time:   0.001618

count  total (s)   self (s)
    7   0.001215   0.000198   if airline#util#stl_disabled(winnr())
                                return
    7              0.000014   endif
    7              0.000197   let range = filter(range(1, winnr('$')), 'v:val != winnr()')
                              " create inactive statusline
    7   0.162299   0.000228   call airline#update_statusline_inactive(range)
                            
    7              0.000053   unlet! w:airline_render_left w:airline_render_right
    7              0.000278   exe 'unlet! ' 'w:airline_section_'. join(s:sections, ' w:airline_section_')
                            
                              " Now create the active statusline
    7              0.000043   let w:airline_active = 1
    7              0.000117   let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) }
    7   0.159491   0.000395   call s:invoke_funcrefs(context, g:airline_statusline_funcrefs)

FUNCTION  clap#job#stop()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/job.vim:8
Called 1 time
Total time:   0.000036
 Self time:   0.000036

count  total (s)   self (s)
    1              0.000034     silent! call jobstop(a:job_id)

FUNCTION  <SNR>157_find_upwards()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/path.vim:14
Called 3 times
Total time:   0.000616
 Self time:   0.000574

count  total (s)   self (s)
    3              0.000040   let fd_dir = isdirectory(a:start_dir) ? a:start_dir : fnamemodify(a:start_dir, ':h')
    3              0.000022   let fd_dir_escaped = escape(fd_dir, ' ')
                            
    3   0.000049   0.000034   if s:is_dir(a:pattern)
    1              0.000070     let match = finddir(a:pattern, fd_dir_escaped.';')
    2              0.000002   else
    2   0.000038   0.000027     let [_suffixesadd, &suffixesadd] = [&suffixesadd, '']
    2              0.000254     let match = findfile(a:pattern, fd_dir_escaped.';')
    2   0.000026   0.000016     let &suffixesadd = _suffixesadd
    3              0.000004   endif
                            
    3              0.000010   if empty(match)
    2              0.000003     return ''
    1              0.000001   endif
                            
    1   0.000016   0.000011   if s:is_dir(a:pattern)
                                " If the directory we found (`match`) is part of the file's path
                                " it is the project root and we return it.
                                "
                                " Compare with trailing path separators to avoid false positives.
    1              0.000024     if stridx(fnamemodify(fd_dir, ':p'), fnamemodify(match, ':p')) == 0
                                  return fnamemodify(match, ':p:h')
                                " Else the directory we found (`match`) is a subdirectory of the
                                " project root, so return match's parent.
    1              0.000001     else
    1              0.000012       return fnamemodify(match, ':p:h:h')
                                endif
                              else
                                return fnamemodify(match, ':p:h')
                              endif

FUNCTION  airline#extensions#hunks#get_raw_hunks()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/hunks.vim:61
Called 5 times
Total time:   0.001118
 Self time:   0.000687

count  total (s)   self (s)
    5              0.000096   if !exists('b:source_func') || get(b:, 'source_func', '') is# 's:get_hunks_empty'
                                if get(g:, 'loaded_signify') && sy#buffer_is_active()
                                  let b:source_func = 's:get_hunks_signify'
                                elseif exists('*GitGutterGetHunkSummary')
                                  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("g:coc_git_status")
                                  let b:source_func = 's:get_hunks_coc'
                                else
                                  let b:source_func = 's:get_hunks_empty'
                                endif
    5              0.000011   endif
    5   0.000652   0.000221   return {b:source_func}()

FUNCTION  clap#state#refresh_matches_count()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/state.vim:9
Called 1 time
Total time:   0.000209
 Self time:   0.000054

count  total (s)   self (s)
    1              0.000004   let l:matches_cnt = a:cnt_str
                            
    1              0.000006   if get(g:clap.display, 'initial_size', -1) > 0
    1              0.000006     let l:matches_cnt .= '/'.g:clap.display.initial_size
    1              0.000001   endif
                            
    1   0.000088   0.000017   call clap#indicator#set_matches('['.l:matches_cnt.']')
    1   0.000100   0.000015   call clap#sign#reset_to_first_line()

FUNCTION  ObsessionStatus()
    Defined: ~/.config/nvim/plugged/vim-obsession/plugin/obsession.vim:102
Called 16 times
Total time:   0.002498
 Self time:   0.002498

count  total (s)   self (s)
   16              0.000287   let args = copy(a:000)
   16              0.000302   let numeric = !empty(v:this_session) + exists('g:this_obsession')
   16              0.000259   if type(get(args, 0, '')) == type(0)
                                if !remove(args, 0)
                                  return ''
                                endif
   16              0.000058   endif
   16              0.000120   if empty(args)
                                let args = ['[$]', '[S]']
   16              0.000034   endif
   16              0.000136   if len(args) == 1 && numeric == 1
                                let fmt = args[0]
   16              0.000038   else
   16              0.000185     let fmt = get(args, 2-numeric, '')
   16              0.000037   endif
   16              0.000510   return substitute(fmt, '%s', get(['', 'Session', 'Obsession'], numeric), 'g')

FUNCTION  <SNR>142__goto_win()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:13
Called 5 times
Total time:   0.000106
 Self time:   0.000106

count  total (s)   self (s)
    5              0.000101   noautocmd call win_gotoid(self.winid)

FUNCTION  airline#update_statusline_inactive()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline.vim:156
Called 7 times
Total time:   0.162071
 Self time:   0.002137

count  total (s)   self (s)
    7   0.000949   0.000157   if airline#util#stl_disabled(winnr())
                                return
    7              0.000013   endif
   24              0.000092   for nr in a:range
   17   0.001572   0.000310     if airline#util#stl_disabled(nr)
                                  continue
   17              0.000023     endif
   17              0.000115     call setwinvar(nr, 'airline_active', 0)
   17              0.000176     let context = { 'winnr': nr, 'active': 0, 'bufnr': winbufnr(nr) }
   17              0.000084     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')
   17              0.000018     endif
   17   0.158378   0.000498     call s:invoke_funcrefs(context, s:inactive_funcrefs)
   24              0.000056   endfor

FUNCTION  <SNR>114_CheckDefined()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:132
Called 210 times
Total time:   0.013473
 Self time:   0.013473

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
  210              0.001889   if !exists("g:airline#highlighter#normal_fg_hi")
                                let g:airline#highlighter#normal_fg_hi = synIDattr(synIDtrans(hlID('Normal')), 'fg', 'cterm')
  210              0.000332   endif
  210              0.002122   if empty(g:airline#highlighter#normal_fg_hi) || g:airline#highlighter#normal_fg_hi < 0
                                return a:colors
  210              0.000297   endif
                            
  210              0.001345   for val in a:colors
  210              0.001422     if !empty(val) && val !=# 'NONE'
  210              0.000649       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 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  clap#rooter#working_dir()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/rooter.vim:30
Called 1 time
Total time:   0.000844
 Self time:   0.000042

count  total (s)   self (s)
    1              0.000005   if exists('g:__clap_provider_cwd')
                                return g:__clap_provider_cwd
    1   0.000051   0.000012   elseif clap#should_use_raw_cwd()
                                return getcwd()
    1              0.000001   else
    1   0.000781   0.000017     return clap#path#project_root_or_default(g:clap.start.bufnr)
                              endif

FUNCTION  clap#handler#exit()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/handler.vim:87
Called 1 time
Total time:   0.005530
 Self time:   0.000116

count  total (s)   self (s)
    1   0.005389   0.000049   call clap#handler#internal_exit()
    1   0.000080   0.000026   call g:clap.provider.on_exit()
    1   0.000055   0.000035   silent doautocmd <nomodeline> User ClapOnExit

FUNCTION  clap#handler#internal_exit()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/handler.vim:93
Called 1 time
Total time:   0.005340
 Self time:   0.000074

count  total (s)   self (s)
    1              0.000030   let s:multi_select_enabled = v:false
    1              0.000010   let s:support_multi_select = v:false
    1   0.005295   0.000029   call clap#exit()

FUNCTION  airline#highlighter#highlight()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:243
Called 3 times
Total time:   0.154918
 Self time:   0.020937

count  total (s)   self (s)
    3              0.000035   let bufnr = a:0 ? a:1 : ''
    3              0.000042   let p = g:airline#themes#{g:airline_theme}#palette
                            
                              " draw the base mode, followed by any overrides
    3              0.000093   let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val')
    3              0.000031   let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
    3              0.000023   let airline_grouplist = []
    3              0.000056   let buffers_in_tabpage = sort(tabpagebuflist())
    3              0.000026   if exists("*uniq")
    3              0.000034     let buffers_in_tabpage = uniq(buffers_in_tabpage)
    3              0.000007   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
    6              0.000046   for mode in reverse(mapped)
    3              0.000059     if exists('g:airline#themes#{g:airline_theme}#palette[mode]')
    2              0.000021       let dict = g:airline#themes#{g:airline_theme}#palette[mode]
   63              0.000402       for kvp in items(dict)
   61              0.000372         let mode_colors = kvp[1]
   61              0.000294         let name = kvp[0]
   61              0.000491         if name is# 'airline_c' && !empty(bufnr) && suffix is# '_inactive'
    1              0.000003           let name = 'airline_c'.bufnr
   61              0.000096         endif
                                    " do not re-create highlighting for buffers that are no longer visible
                                    " in the current tabpage
   61              0.001280         if name =~# 'airline_c\d\+'
   28              0.000670           let bnr = matchstr(name, 'airline_c\zs\d\+') + 0
   28              0.000288           if bnr > 0 && index(buffers_in_tabpage, bnr) == -1
   21              0.000057             continue
    7              0.000007           endif
   33              0.000530         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)
   16              0.000040           continue
   24              0.000034         endif
   24   0.001287   0.000671         if s:group_not_done(airline_grouplist, name.suffix)
   24   0.018141   0.000662           call airline#highlighter#exec(name.suffix, mode_colors)
   24              0.000048         endif
                            
   24              0.000164         if !has_key(p, 'accents') 
                                      " work around a broken installation
                                      " shouldn't actually happen, p should always contain accents
                                      continue
   24              0.000039         endif
                            
   72              0.000426         for accent in keys(s:accents)
   48              0.000354           if !has_key(p.accents, accent)
                                        continue
   48              0.000065           endif
   48              0.000514           let colors = copy(mode_colors)
   48              0.000376           if p.accents[accent][0] != ''
   24              0.000192             let colors[0] = p.accents[accent][0]
   48              0.000072           endif
   48              0.000272           if p.accents[accent][2] != ''
                                        let colors[2] = p.accents[accent][2]
   48              0.000086           endif
   48              0.000243           if len(colors) >= 5
   48              0.000484             let colors[4] = get(p.accents[accent], 4, '')
                                      else
                                        call add(colors, get(p.accents[accent], 4, ''))
   48              0.000064           endif
   48   0.002543   0.001407           if s:group_not_done(airline_grouplist, name.suffix.'_'.accent)
   48   0.035576   0.001412             call airline#highlighter#exec(name.suffix.'_'.accent, colors)
   48              0.000092           endif
   72              0.000186         endfor
   26              0.000050       endfor
                            
    2              0.000012       if empty(s:separators)
                                    " nothing to be done
                                    continue
    2              0.000003       endif
                                  " TODO: optimize this
   46              0.000268       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...
   44   0.082313   0.001726         call <sid>exec_separator(dict, sep[1][0], sep[1][1], sep[1][2], suffix)
   46              0.000112       endfor
    3              0.000006     endif
    6              0.000033   endfor

FUNCTION  coc#rpc#ready()
    Defined: ~/.config/nvim/plugged/coc.nvim/autoload/coc/rpc.vim:31
Called 18 times
Total time:   0.000541
 Self time:   0.000541

count  total (s)   self (s)
   18              0.000310   if empty(s:client) || s:client['running'] == 0
                                return 0
   18              0.000040   endif
   18              0.000058   return 1

FUNCTION  clap#handler#relaunch_is_ok()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/handler.vim:17
Called 1 time
Total time:   0.000051
 Self time:   0.000024

count  total (s)   self (s)
    1   0.000041   0.000014   if g:clap.input.get() ==# g:clap_providers_relaunch_code
                                call clap#handler#relaunch_providers()
                                return v:true
    1              0.000001   endif
    1              0.000002   return v:false

FUNCTION  airline#parts#ffenc()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:108
Called 7 times
Total time:   0.000584
 Self time:   0.000584

count  total (s)   self (s)
    7              0.000075   let expected = get(g:, 'airline#parts#ffenc#skip_expected_string', '')
    7              0.000063   let bomb     = &l:bomb ? '[BOM]' : ''
    7              0.000180   let ff       = strlen(&ff) ? '['.&ff.']' : ''
    7              0.000114   if expected is# &fenc.bomb.ff
                                return ''
    7              0.000017   else
    7              0.000084     return &fenc.bomb.ff
                              endif

FUNCTION  airline#util#ignore_buf()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:136
Called 16 times
Total time:   0.002485
 Self time:   0.002485

count  total (s)   self (s)
   16              0.000478   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')
   16              0.001939   return match(a:name, pat) > -1

FUNCTION  <SNR>121_get_wordcount()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/wordcount.vim:8
Called 1 time
Total time:   0.000010
 Self time:   0.000010

count  total (s)   self (s)
    1              0.000007     if get(g:, 'actual_curbuf', '') != bufnr('')
    1              0.000002       return
                                endif
                                let query = a:visual_mode_active ? 'visual_words' : 'words'
                                return get(wordcount(), query, 0)

FUNCTION  WebDevIconsGetFileTypeSymbol()
    Defined: ~/.config/nvim/plugged/vim-devicons/plugin/webdevicons.vim:469
Called 16 times
Total time:   0.013535
 Self time:   0.012909

count  total (s)   self (s)
   16              0.000105   if a:0 == 0
   16              0.000288     let fileNodeExtension = expand('%:e')
   16              0.000185     let fileNode = expand('%:t')
   16              0.000128     let isDirectory = 0
                              else
                                let fileNodeExtension = fnamemodify(a:1, ':e')
                                let fileNode = fnamemodify(a:1, ':t')
                                if a:0 > 1
                                  let isDirectory = a:2
                                else
                                  let isDirectory = 0
                                endif
   16              0.000035   endif
                            
   16              0.000154   if isDirectory == 0 || g:DevIconsEnableFolderPatternMatching
                            
   16              0.000190     let symbol = g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol
   16              0.000209     let fileNodeExtension = tolower(fileNodeExtension)
   16              0.000165     let fileNode = tolower(fileNode)
                            
  160              0.001701     for [pattern, glyph] in items(g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols)
  144              0.004080       if match(fileNode, pattern) != -1
                                    let symbol = glyph
                                    break
  144              0.000264       endif
  160              0.000401     endfor
                            
   16              0.000204     if symbol == g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol
   16              0.000231       if has_key(g:WebDevIconsUnicodeDecorateFileNodesExactSymbols, fileNode)
                                    let symbol = g:WebDevIconsUnicodeDecorateFileNodesExactSymbols[fileNode]
   16              0.000422       elseif ((isDirectory == 1 && g:DevIconsEnableFolderExtensionPatternMatching) || isDirectory == 0) && has_key(g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols, fileNodeExtension)
   16              0.000252         let symbol = g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols[fileNodeExtension]
                                  elseif isDirectory == 1
                                    let symbol = g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol
   16              0.000038       endif
   16              0.000040     endif
                            
                              else
                                let symbol = g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol
   16              0.000037   endif
                            
   16   0.001346   0.000719   let artifactFix = s:DevIconsGetArtifactFix()
                            
   16              0.000132   return symbol . artifactFix
                            

FUNCTION  airline#extensions#wordcount#formatters#default#update_fmt()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/wordcount/formatters/default.vim:6
Called 7 times
Total time:   0.000235
 Self time:   0.000235

count  total (s)   self (s)
    7              0.000102   let s:fmt = get(g:, 'airline#extensions#wordcount#formatter#default#fmt', '%s words')
    7              0.000118   let s:fmt_short = get(g:, 'airline#extensions#wordcount#formatter#default#fmt_short', s:fmt == '%s words' ? '%sW' : s:fmt)

FUNCTION  airline#update_tabline()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline.vim:273
Called 7 times
Total time:   0.000142
 Self time:   0.000142

count  total (s)   self (s)
    7              0.000068   if get(g:, 'airline_statusline_ontop', 0)
                                call airline#extensions#tabline#redraw()
    7              0.000014   endif

FUNCTION  airline#parts#get()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:49
Called 5 times
Total time:   0.000088
 Self time:   0.000088

count  total (s)   self (s)
    5              0.000079   return get(s:parts, a:key, {})

FUNCTION  sy#highlight#line_disable()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/highlight.vim:41
Called 7 times
Total time:   0.001165
 Self time:   0.001165

count  total (s)   self (s)
    7              0.000447   execute 'sign define SignifyAdd text='. s:sign_add 'texthl=SignifySignAdd linehl='
    7              0.000353   execute 'sign define SignifyChange text='. s:sign_change 'texthl=SignifySignChange linehl='
    7              0.000202   execute 'sign define SignifyRemoveFirstLine text='. s:sign_delete_first_line 'texthl=SignifySignDeleteFirstLine linehl='
    7              0.000108   let g:signify_line_highlight = 0

FUNCTION  <SNR>57_SetUpForNewFiletype()
    Defined: ~/.config/nvim/plugged/nerdcommenter/plugin/NERD_commenter.vim:526
Called 3 times
Total time:   0.000569
 Self time:   0.000352

count  total (s)   self (s)
    3              0.000013     let filetype = a:filetype
                            
                                "for compound filetypes, if we don't know how to handle the full filetype
                                "then break it down and use the first part that we know how to handle
    3              0.000027     if filetype =~# '\.' && !has_key(s:delimiterMap, filetype)
                                    let filetypes = split(a:filetype, '\.')
                                    for i in filetypes
                                        if has_key(s:delimiterMap, i)
                                            let filetype = i
                                            break
                                        endif
                                    endfor
    3              0.000004     endif
                            
    3              0.000013     let b:NERDSexyComMarker = ''
                            
    3              0.000018     if has_key(s:delimiterMap, filetype)
                                    let b:NERDCommenterDelims = s:delimiterMap[filetype]
                                    for i in ['left', 'leftAlt', 'right', 'rightAlt']
                                        if !has_key(b:NERDCommenterDelims, i)
                                            let b:NERDCommenterDelims[i] = ''
                                        endif
                                    endfor
                                    for i in ['nested', 'nestedAlt']
                                        if !has_key(b:NERDCommenterDelims, i)
                                            let b:NERDCommenterDelims[i] = 0
                                        endif
                                    endfor
                                    " if g:NERD_<filetype>_alt_style is defined, use the alternate style
                                    let b:NERDCommenterFirstInit = getbufvar(1,'NERDCommenterFirstInit')
                                    if exists('g:NERDAltDelims_'.filetype) && eval('g:NERDAltDelims_'.filetype) && !b:NERDCommenterFirstInit
                                        call s:SwitchToAlternativeDelimiters(0)
                                        let b:NERDCommenterFirstInit = 1
                                    endif
    3              0.000004     else
    3   0.000282   0.000065         let b:NERDCommenterDelims = s:CreateDelimMapFromCms()
    3              0.000005     endif
                            

FUNCTION  airline#extensions#prepend_to_section()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions.vim:57
Called 2 times
Total time:   0.000087
 Self time:   0.000050

count  total (s)   self (s)
    2   0.000067   0.000030   call <sid>check_defined_section(a:name)
    2              0.000018   let w:airline_section_{a:name} = a:value . w:airline_section_{a:name}

FUNCTION  airline#parts#paste()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:63
Called 5 times
Total time:   0.000082
 Self time:   0.000082

count  total (s)   self (s)
    5              0.000070   return g:airline_detect_paste && &paste ? g:airline_symbols.paste : ''

FUNCTION  <SNR>149_calc()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/layout.vim:29
Called 4 times
Total time:   0.000243
 Self time:   0.000243

count  total (s)   self (s)
    4              0.000047   if type(a:size) == v:t_number
                                return a:size
    4              0.000078   elseif a:size =~# '%$'
    4              0.000085     return eval(a:size[:-2].'*'.a:origin.'/100')
                              else
                                call g:clap.abort(printf('Invalid value %s for g:clap_layout, allowed: Number or "Number%"', a:size))
                              endif

FUNCTION  <SNR>127_add_section()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/default.vim:47
Called 107 times
Total time:   0.023465
 Self time:   0.008609

count  total (s)   self (s)
  107              0.001315     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
  107   0.003154   0.001441     if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key)))
    9              0.000019       return
   98              0.000139     endif
   98              0.000255     if condition
                                  call a:builder.add_raw('%(')
   98              0.000135     endif
   98   0.016370   0.003227     call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key))
   98              0.000276     if condition
                                  call a:builder.add_raw('%)')
   98              0.000150     endif

FUNCTION  <SNR>150_fill_in_placeholders()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/spinner.vim:19
Called 6 times
Total time:   0.000322
 Self time:   0.000322

count  total (s)   self (s)
    6              0.000022   let l:prompt = a:prompt_format
                            
    6              0.000024   let l:provider_id = g:clap.provider.id
                            
                              " Replace special markers with certain information.
                              " \=l:variable is used to avoid escaping issues.
    6              0.000078   let l:prompt = substitute(l:prompt, '\V%spinner%', '\=s:spinner', 'g')
    6              0.000083   let l:prompt = substitute(l:prompt, '\V%forerunner_status%', '\=g:__clap_current_forerunner_status', 'g')
    6              0.000066   let l:prompt = substitute(l:prompt, '\V%provider_id%', '\=l:provider_id', 'g')
                            
    6              0.000013   return l:prompt

FUNCTION  airline#update_statusline_focuslost()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline.vim:146
Called 1 time
Total time:   0.000106
 Self time:   0.000106

count  total (s)   self (s)
    1              0.000038   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('$')))
    1              0.000005   endif

FUNCTION  airline#parts#readonly()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:89
Called 16 times
Total time:   0.004113
 Self time:   0.001628

count  total (s)   self (s)
                              " only consider regular buffers (e.g. ones that represent actual files,
                              " but not special ones like e.g. NERDTree)
   16   0.003430   0.000945   if !empty(&buftype) || airline#util#ignore_buf(bufname('%'))
                                return ''
   16              0.000041   endif
   16              0.000172   if &readonly && !filereadable(bufname('%'))
                                return '[noperm]'
   16              0.000041   else
   16              0.000139     return &readonly ? g:airline_symbols.readonly : ''
                              endif

FUNCTION  airline#extensions#virtualenv#apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/virtualenv.vim:13
Called 7 times
Total time:   0.000511
 Self time:   0.000511

count  total (s)   self (s)
    7              0.000112   if &filetype =~# "python"
    2              0.000031     if get(g:, 'virtualenv_loaded', 0)
                                  let statusline = virtualenv#statusline()
    2              0.000008     else
    2              0.000060       let statusline = fnamemodify($VIRTUAL_ENV, ':t')
    2              0.000008     endif
    2              0.000021     if !empty(statusline)
                                  call airline#extensions#append_to_section('x', s:spc.g:airline_right_alt_sep.s:spc.statusline)
    2              0.000007     endif
    7              0.000013   endif

FUNCTION  airline#extensions#obsession#get_status()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/obsession.vim:21
Called 16 times
Total time:   0.003202
 Self time:   0.000704

count  total (s)   self (s)
   16   0.003162   0.000664   return ObsessionStatus((g:airline#extensions#obsession#indicator_text . s:spc), '')

FUNCTION  airline#highlighter#exec()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:104
Called 210 times
Total time:   0.138262
 Self time:   0.036387

count  total (s)   self (s)
  210              0.000950   if pumvisible()
                                return
  210              0.000315   endif
  210              0.000971   let colors = a:colors
  210              0.000714   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, ''))
  210              0.000290   endif
  210   0.084041   0.005204   let old_hi = airline#highlighter#get_highlight(a:group)
  210              0.001140   if len(colors) == 4
  135              0.000846     call add(colors, '')
  210              0.000315   endif
  210              0.000874   if g:airline_gui_mode ==# 'gui'
  210              0.002359     let new_hi = [colors[0], colors[1], '', '', colors[4]]
                              else
                                let new_hi = ['', '', printf("%s", colors[2]), printf("%s", colors[3]), colors[4]]
  210              0.000307   endif
  210   0.017799   0.004325   let colors = s:CheckDefined(colors)
  210   0.014434   0.005010   if old_hi != new_hi || !s:hl_group_exists(a:group)
    1   0.000157   0.000017     let cmd = printf('hi %s%s', a:group, s:GetHiCmd(colors))
    1              0.000035     exe cmd
    1              0.000006     if has_key(s:hl_groups, a:group)
    1              0.000005       let s:hl_groups[a:group] = colors
    1              0.000001     endif
  210              0.000289   endif

FUNCTION  vista#sidebar#IsOpen()
    Defined: ~/.config/nvim/plugged/vista.vim/autoload/vista/sidebar.vim:128
Called 1 time
Total time:   0.000078
 Self time:   0.000078

count  total (s)   self (s)
    1              0.000077   return bufwinnr('__vista__') != -1

FUNCTION  <SNR>7_LoadFTPlugin()
    Defined: /usr/local/share/nvim/runtime/ftplugin.vim:14
Called 3 times
Total time:   0.008560
 Self time:   0.008407

count  total (s)   self (s)
    3              0.000028     if exists("b:undo_ftplugin")
                                  exe b:undo_ftplugin
                                  unlet! b:undo_ftplugin b:did_ftplugin
    3              0.000005     endif
                            
    3              0.000030     let s = expand("<amatch>")
    3              0.000013     if s != ""
    2              0.000053       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.000004       endif
                            
                                  " When there is a dot it is used to separate filetype names.  Thus for
                                  " "aaa.bbb" load "aaa" and then "bbb".
    4              0.000041       for name in split(s, '\.')
    2   0.008243   0.008090 	exe 'runtime! ftplugin/' . name . '.vim ftplugin/' . name . '_*.vim ftplugin/' . name . '/*.vim'
    4              0.000015       endfor
    3              0.000007     endif

FUNCTION  <SNR>193_initialize_job()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:444
Called 7 times
Total time:   0.004889
 Self time:   0.000689

count  total (s)   self (s)
    7   0.004841   0.000641   return s:wrap_cmd(a:bufnr, a:vcs, s:get_base_cmd(a:bufnr, a:vcs, g:signify_vcs_cmds))

FUNCTION  <SNR>149_user_layout()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/layout.vim:40
Called 1 time
Total time:   0.000513
 Self time:   0.000269

count  total (s)   self (s)
    1              0.000035     let layout = extend(copy(s:default_layout), g:clap_layout)
    1              0.000016     if has_key(layout, 'relative') && layout.relative ==# 'editor'
    1              0.000018       let [width, height] = [&columns, &lines]
    1              0.000011       let opts = {'relative': 'editor'}
                                else
                                  let [width, height] = [winwidth(g:clap.start.winid), winheight(g:clap.start.winid)]
                                  let opts = {'relative': 'win', 'win': g:clap.start.winid}
    1              0.000002     endif
                            
    1   0.000396   0.000153     return extend(opts, { 'width': s:calc(width, layout.width), 'height': s:calc(height, layout.height), 'row': s:calc(height, layout.row), 'col': s:calc(width, layout.col), })

FUNCTION  clap#icon#add_head_hl_groups()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/icon.vim:287
Called 1 time
Total time:   0.015301
 Self time:   0.000019

count  total (s)   self (s)
    1   0.015300   0.000018   return s:generic_hi_icons(v:true)

FUNCTION  clap#highlight#clear()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/highlight.vim:73
Called 1 time
Total time:   0.000073
 Self time:   0.000029

count  total (s)   self (s)
    1   0.000030   0.000010     call g:clap.display.goto_win()
    1   0.000019   0.000008     call g:clap.display.matchdelete()
    1   0.000024   0.000010     call g:clap.input.goto_win()

FUNCTION  <SNR>149_validate()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/layout.vim:21
Called 1 time
Total time:   0.000076
 Self time:   0.000076

count  total (s)   self (s)
    2              0.000021   for key in keys(a:layout)
    1              0.000017     if index(s:layout_keys, key) < 0
                                  call g:clap.abort('Invalid entry: '.key.' for g:clap_layout')
    1              0.000002     endif
    2              0.000006   endfor

FUNCTION  clap#util#nvim_buf_clear()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/util.vim:76
Called 2 times
Total time:   0.000360
 Self time:   0.000360

count  total (s)   self (s)
    2              0.000356   call nvim_buf_set_lines(a:bufnr, 0, -1, 0, [])

FUNCTION  sy#repo#get_stats()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:232
Called 5 times
Total time:   0.000203
 Self time:   0.000203

count  total (s)   self (s)
    5              0.000112   let sy = getbufvar(a:0 ? a:1 : bufnr(''), 'sy')
    5              0.000076   return empty(sy) ? [-1, -1, -1] : sy.stats

FUNCTION  airline#builder#should_change_group()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:130
Called 67 times
Total time:   0.052597
 Self time:   0.004793

count  total (s)   self (s)
   67              0.000391   if a:group1 == a:group2
                                return 0
   67              0.000094   endif
   67   0.026113   0.001541   let color1 = airline#highlighter#get_highlight(a:group1)
   67   0.024804   0.001572   let color2 = airline#highlighter#get_highlight(a:group2)
   67              0.000270   if g:airline_gui_mode ==# 'gui'
   67              0.000572     return color1[1] != color2[1] || color1[0] != color2[0]
                              else
                                return color1[3] != color2[3] || color1[2] != color2[2]
                              endif

FUNCTION  <SNR>193_handle_diff()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:116
Called 7 times
Total time:   0.013893
 Self time:   0.002540

count  total (s)   self (s)
    7   0.000649   0.000230   call sy#verbose('s:handle_diff()', a:options.vcs)
                            
    7              0.000073   if has_key(a:options, 'tempfiles')
                                for f in a:options.tempfiles
                                  call delete(f)
                                endfor
    7              0.000015   endif
                            
    7              0.000111   let sy = getbufvar(a:options.bufnr, 'sy')
    7              0.000047   if empty(sy)
                                call sy#verbose(printf('No b:sy found for %s', bufname(a:options.bufnr)), a:options.vcs)
                                return
    7              0.000087   elseif !empty(sy.updated_by) && sy.updated_by != a:options.vcs
                                call sy#verbose(printf('Signs already got updated by %s.', sy.updated_by), a:options.vcs)
                                return
    7              0.000060   elseif empty(sy.vcs) && sy.active
                                let sy.detecting -= 1
    7              0.000014   endif
                            
    7              0.000160   let fenc = getbufvar(a:options.bufnr, '&fenc')
    7              0.000128   let enc  = getbufvar(a:options.bufnr, '&enc')
    7              0.000065   if (fenc != enc) && has('iconv')
                                call map(a:options.stdoutbuf, printf('iconv(v:val, "%s", "%s")', fenc, enc))
    7              0.000014   endif
                            
    7   0.000419   0.000325   let [found_diff, diff] = s:check_diff_{a:options.difftool}(a:exitval, a:options.stdoutbuf)
    7              0.000030   if found_diff
    7              0.000083     if index(sy.vcs, a:options.vcs) == -1
                                  let sy.vcs += [a:options.vcs]
    7              0.000016     endif
    7   0.011073   0.000233     call a:options.func(sy, a:options.vcs, diff)
                              else
                                call sy#verbose('No valid diff found. Disabling this VCS.', a:options.vcs)
    7              0.000015   endif
                            
    7              0.000138   call setbufvar(a:options.bufnr, 'sy_job_id_'.a:options.vcs, 0)

FUNCTION  <SNR>50_getDistro()
    Defined: ~/.config/nvim/plugged/vim-devicons/plugin/webdevicons.vim:94
Called 16 times
Total time:   0.000293
 Self time:   0.000293

count  total (s)   self (s)
   16              0.000168   if exists('s:distro')
   16              0.000079     return s:distro
                              endif
                            
                              if executable('lsb_release')
                                let s:lsb = system('lsb_release -i')
                                if s:lsb =~# 'Arch'
                                  let s:distro = ''
                                elseif s:lsb =~# 'Ubuntu'
                                  let s:distro = ''
                                elseif s:lsb =~# 'Cent'
                                  let s:distro = ''
                                elseif s:lsb =~# 'Debian'
                                  let s:distro = ''
                                elseif s:lsb =~# 'Dock'
                                  let s:distro = ''
                                else
                                  let s:distro = ''
                                endif
                                return s:distro
                              endif
                            
                              let s:distro = ''
                              return s:distro

FUNCTION  clap#util#nvim_win_close_safe()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/util.vim:93
Called 4 times
Total time:   0.001382
 Self time:   0.001382

count  total (s)   self (s)
    4              0.000082   if nvim_win_is_valid(a:winid)
    4              0.001242     call nvim_win_close(a:winid, v:true)
    4              0.000038   endif

FUNCTION  <SNR>143_set_minimal_buf_style()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:102
Called 2 times
Total time:   0.112677
 Self time:   0.000099

count  total (s)   self (s)
    2   0.112608   0.000047   call setbufvar(a:bufnr, '&filetype', a:filetype)
    2   0.000037   0.000025   call setbufvar(a:bufnr, '&signcolumn', 'no')
    2   0.000028   0.000022   call setbufvar(a:bufnr, '&foldcolumn', 0)

FUNCTION  sy#sign#process_diff()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/sign.vim:52
Called 7 times
Total time:   0.007829
 Self time:   0.003785

count  total (s)   self (s)
    7              0.000095   let a:sy.signtable             = {}
    7              0.000077   let a:sy.hunks                 = []
    7              0.000114   let [added, modified, deleted] = [0, 0, 0]
                            
    7   0.003958   0.000286   call sy#sign#get_current_signs(a:sy)
                            
                              " Determine where we have to put our signs.
    7              0.000215   for line in filter(a:diff, 'v:val =~ "^@@ "')
                                let a:sy.lines = []
                                let ids        = []
                            
                                let [old_line, old_count, new_line, new_count] = sy#sign#parse_hunk(line)
                            
                                " Workaround for non-conventional diff output in older Fossil versions:
                                " https://fossil-scm.org/forum/forumpost/834ce0f1e1
                                " Fixed as of: https://fossil-scm.org/index.html/info/7fd2a3652ea7368a
                                if a:vcs == 'fossil' && new_line == 0
                                  let new_line = old_line - 1 - deleted
                                endif
                            
                                " Pure add:
                            
                                " @@ -5,0 +6,2 @@ this is line 5
                                " +this is line 5
                                " +this is line 5
                                if (old_count == 0) && (new_count >= 1)
                                  let added += new_count
                                  let offset = 0
                                  while offset < new_count
                                    let line    = new_line + offset
                                    let offset += 1
                                    if s:external_sign_present(a:sy, line) | continue | endif
                                    call add(ids, s:add_sign(a:sy, line, 'SignifyAdd'))
                                  endwhile
                            
                                " Pure delete
                            
                                " @@ -6,2 +5,0 @@ this is line 5
                                " -this is line 6
                                " -this is line 7
                                elseif (old_count >= 1) && (new_count == 0)
                                  if s:external_sign_present(a:sy, new_line) | continue | endif
                                  let deleted += old_count
                                  if new_line == 0
                                    call add(ids, s:add_sign(a:sy, 1, 'SignifyRemoveFirstLine'))
                                  elseif s:sign_show_count
                                    let text = s:sign_delete . (old_count <= 99 ? old_count : '>')
                                    while strwidth(text) > 2
                                      let text = substitute(text, '.', '', '')
                                    endwhile
                                    call add(ids, s:add_sign(a:sy, new_line, 'SignifyDelete'. old_count, text))
                                  else
                                    call add(ids, s:add_sign(a:sy, new_line, 'SignifyDeleteMore', s:sign_delete))
                                  endif
                            
                                " There are additions and deletions, however we don't know which lines are
                                " 'changed' and which are new so we just show the whole block as changed.
                                "
                                " With sufficiently smart heuristics we could see which lines are the most
                                " dissimilar to the previous lines and mark them as additions but for now
                                " we will not do that.
                                else
                                  let modified += old_count
                                  let offset    = 0
                                  while offset < new_count
                                    let line    = new_line + offset
                                    let offset += 1
                                    if s:external_sign_present(a:sy, line) | continue | endif
                                    call add(ids, s:add_sign(a:sy, line, 'SignifyChange'))
                                  endwhile
                                endif
                            
                                if !empty(ids)
                                  call add(a:sy.hunks, { 'ids'  : ids, 'start': a:sy.lines[0], 'end'  : a:sy.lines[-1] })
                                endif
    7              0.000066   endfor
                            
                              " Remove obsoleted signs.
    7              0.000139   for line in filter(keys(a:sy.internal), '!has_key(a:sy.signtable, v:val)')
                                execute 'sign unplace' a:sy.internal[line].id 'buffer='.a:sy.buffer
    7              0.000020   endfor
                            
    7              0.000090   if empty(a:sy.updated_by) && empty(a:sy.hunks)
    7   0.000649   0.000277     call sy#verbose('Successful exit value, but no diff. Keep VCS for time being.', a:vcs)
    7              0.000026     return
                              endif
                            
                              call sy#verbose('Signs updated.', a:vcs)
                              let a:sy.updated_by = a:vcs
                              if len(a:sy.vcs) > 1
                                call sy#verbose('Disable all other VCS.', a:vcs)
                                let a:sy.vcs = [a:vcs]
                              endif
                            
                              let a:sy.stats = [added, modified, deleted]

FUNCTION  clap#spinner#init()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/spinner.vim:117
Called 1 time
Total time:   0.000327
 Self time:   0.000012

count  total (s)   self (s)
    1   0.000327   0.000012   call s:set_spinner()

FUNCTION  <SNR>121_update_wordcount()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/wordcount.vim:66
Called 1 time
Total time:   0.000139
 Self time:   0.000042

count  total (s)   self (s)
    1   0.000023   0.000014   let wordcount = s:get_wordcount(0)
    1              0.000005   if wordcount != s:wordcount_cache || a:force_update
    1              0.000004     let s:wordcount_cache = wordcount
    1   0.000104   0.000016     let b:airline_wordcount =  s:format_wordcount(wordcount)
    1              0.000001   endif

FUNCTION  <SNR>87_SetupPasta()
    Defined: ~/.config/nvim/plugged/vim-pasta/plugin/pasta.vim:42
Called 3 times
Total time:   0.000569
 Self time:   0.000569

count  total (s)   self (s)
    3              0.000018   if exists("g:pasta_enabled_filetypes")
                                if index(g:pasta_enabled_filetypes, &ft) == -1
                                  return
                                endif
    3              0.000051   elseif exists("g:pasta_disabled_filetypes") && index(g:pasta_disabled_filetypes, &ft) != -1
                                return
    3              0.000003   endif
                            
    3              0.000207   exe "nmap <buffer> " . g:pasta_paste_before_mapping . " <Plug>BeforePasta"
    3              0.000090   exe "xmap <buffer> " . g:pasta_paste_before_mapping . " <Plug>VisualPasta"
                            
    3              0.000082   exe "nmap <buffer> " . g:pasta_paste_after_mapping . " <Plug>AfterPasta"
    3              0.000081   exe "xmap <buffer> " . g:pasta_paste_after_mapping . " <Plug>VisualPasta"

FUNCTION  sy#util#refresh_windows()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/util.vim:26
Called 1 time
Total time:   0.013800
 Self time:   0.000303

count  total (s)   self (s)
    1              0.000015   if exists('*win_getid')
    1              0.000015     let winid = win_getid()
                              else
                                let winnr = winnr()
    1              0.000003   endif
                            
    1              0.000013   if !get(g:, 'signify_cmdwin_active')
    2              0.000032     for bufnr in tabpagebuflist()
    1   0.013594   0.000098       call sy#start({'bufnr': bufnr})
    2              0.000020     endfor
    1              0.000004   endif
                            
    1              0.000016   if exists('winid')
    1              0.000018     call win_gotoid(winid)
                              else
                                execute winnr .'wincmd w'
    1              0.000004   endif

FUNCTION  <SNR>155_on_complete_common()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/forerunner.vim:9
Called 1 time
Total time:   0.000956
 Self time:   0.000113

count  total (s)   self (s)
    1   0.000046   0.000014   if empty(g:clap.input.get())
    1   0.000197   0.000023     call g:clap.display.set_lines_lazy(a:lines)
    1   0.000121   0.000023     call g:clap#display_win.shrink_if_undersize()
    1              0.000001   endif
                            
    1              0.000005   let g:clap.display.initial_size = a:initial_size
    1   0.000229   0.000020   call clap#state#refresh_matches_count(string(a:initial_size))
                            
    1              0.000011   let g:__clap_current_forerunner_status = g:clap_forerunner_status_sign.done
    1   0.000341   0.000012   call clap#spinner#refresh()

FUNCTION  airline#parts#spell()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:67
Called 5 times
Total time:   0.000569
 Self time:   0.000569

count  total (s)   self (s)
    5              0.000219   let spelllang = g:airline_detect_spelllang ? printf(" [%s]", toupper(substitute(&spelllang, ',', '/', 'g'))) : ''
    5              0.000047   if g:airline_detect_spell && &spell
                                let winwidth = airline#util#winwidth()
                                if winwidth >= 90
                                  return g:airline_symbols.spell . spelllang
                                elseif winwidth >= 70
                                  return g:airline_symbols.spell
                                else
                                  return split(g:airline_symbols.spell, '\zs')[0]
                                endif
    5              0.000011   endif
    5              0.000019   return ''

FUNCTION  sy#repo#get_diff()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:72
Called 7 times
Total time:   0.034198
 Self time:   0.028863

count  total (s)   self (s)
    7   0.000751   0.000304   call sy#verbose('sy#repo#get_diff()', a:vcs)
                            
    7              0.000151   let job_id = getbufvar(a:bufnr, 'sy_job_id_'.a:vcs)
                            
    7              0.000114   if getbufvar(a:bufnr, '&modified')
                                let [cmd, options] = s:initialize_buffer_job(a:bufnr, a:vcs)
                                let options.difftool = 'diff'
    7              0.000021   else
    7   0.005264   0.000376     let [cmd, options] = s:initialize_job(a:bufnr, a:vcs)
    7              0.000084     let options.difftool = a:vcs
    7              0.000019   endif
                            
    7              0.000064   let options.func = a:func
                            
    7              0.000084   if has('nvim')
    7              0.000037     if job_id
                                  silent! call jobstop(job_id)
    7              0.000020     endif
    7              0.025784     let job_id = jobstart(cmd, extend(options, { 'cwd':       getbufvar(a:bufnr, 'sy').info.dir, 'on_stdout': function('s:callback_nvim_stdout'), 'on_exit':   function('s:callback_nvim_exit'), }))
    7              0.000345     call setbufvar(a:bufnr, 'sy_job_id_'.a:vcs, job_id)
                              elseif has('patch-8.0.902')
                                if type(job_id) != type(0)
                                  silent! call job_stop(job_id)
                                endif
                                let opts = { 'cwd':      getbufvar(a:bufnr, 'sy').info.dir, 'in_io':    'null', 'out_cb':   function('s:callback_vim_stdout', options), 'close_cb': function('s:callback_vim_close', options), }
                                let job_id = job_start(cmd, opts)
                                call setbufvar(a:bufnr, 'sy_job_id_'.a:vcs, job_id)
                              else
                                let options.stdoutbuf = split(s:run(a:vcs), '\n')
                                call s:handle_diff(options, v:shell_error)
    7              0.000026   endif

FUNCTION  <SNR>128_get_path()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy.vim:139
Called 4 times
Total time:   0.000459
 Self time:   0.000459

count  total (s)   self (s)
    4              0.000304   let path = resolve(fnamemodify(bufname(a:bufnr), ':p'))
    4              0.000072   if has('win32')
                                let path = substitute(path, '\v^(\w):\\\\', '\1:\\', '')
    4              0.000010   endif
    4              0.000019   return path

FUNCTION  <SNR>193_wrap_cmd()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:465
Called 7 times
Total time:   0.001135
 Self time:   0.001135

count  total (s)   self (s)
    7              0.000133   if has('win32')
                                if has('nvim')
                                  let cmd = &shell =~ '\v%(cmd|powershell)' ? a:cmd : ['sh', '-c', a:cmd]
                                else
                                  if &shell =~ 'cmd'
                                    let cmd = join([&shell, &shellcmdflag, '(', a:cmd, ')'])
                                  elseif empty(&shellxquote)
                                    let cmd = join([&shell, &shellcmdflag, &shellquote, a:cmd, &shellquote])
                                  else
                                    let cmd = join([&shell, &shellcmdflag, &shellxquote, a:cmd, &shellxquote])
                                  endif
                                endif
    7              0.000020   else
    7              0.000095     let cmd = ['sh', '-c', a:cmd]
    7              0.000021   endif
    7              0.000237   let options = { 'stdoutbuf': [''], 'vcs': a:vcs, 'bufnr': a:bufnr, }
    7              0.000069   return [cmd, options]

FUNCTION  <SNR>137_Compare()
    Defined: ~/.config/nvim/plugged/vista.vim/autoload/vista/cursor.vim:48
Called 64 times
Total time:   0.000218
 Self time:   0.000218

count  total (s)   self (s)
   64              0.000188   return a:s1.lnum - a:s2.lnum

FUNCTION  <SNR>143_open_win_border_left()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:108
Called 1 time
Total time:   0.000108
 Self time:   0.000108

count  total (s)   self (s)
    1              0.000009   if s:symbol_width > 0
                                let opts = nvim_win_get_config(s:display_winid)
                                let opts.row -= 1
                                let opts.width = s:symbol_width
                                let opts.height = 1
                                let opts.focusable = v:false
                            
                                if !nvim_buf_is_valid(s:symbol_left_bufnr)
                                  let s:symbol_left_bufnr = nvim_create_buf(v:false, v:true)
                                endif
                                silent let s:symbol_left_winid = nvim_open_win(s:symbol_left_bufnr, v:false, opts)
                            
                                call setwinvar(s:symbol_left_winid, '&winhl', 'Normal:ClapSymbol')
                                call s:set_minimal_buf_style(s:symbol_left_bufnr, 'clap_spinner')
                                call setbufline(s:symbol_left_bufnr, 1, s:symbol_left)
    1              0.000002   endif

FUNCTION  <SNR>150_default_prompt()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/spinner.vim:39
Called 3 times
Total time:   0.000231
 Self time:   0.000044

count  total (s)   self (s)
    3   0.000230   0.000042     return s:fill_in_placeholders(s:prompt_format)

FUNCTION  <SNR>62_AsyncRequest()
    Defined: ~/.config/nvim/plugged/coc.nvim/plugin/coc.vim:58
Called 3 times
Total time:   0.002188
 Self time:   0.000494

count  total (s)   self (s)
    3              0.000106   let Cb = a:args[len(a:args) - 1]
    3              0.000051   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 ''
    3              0.000010   endif
    3   0.001833   0.000140   call coc#rpc#notify(a:name, a:args)
    3              0.000015   return ''

FUNCTION  clap#maple#forerunner_exec_subcommand()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/maple.vim:189
Called 1 time
Total time:   0.000924
 Self time:   0.000065

count  total (s)   self (s)
                              " No global --number option.
    1   0.000026   0.000014   let global_opt = clap#maple#get_enable_icon_opt()
                            
    1   0.000856   0.000012   let cmd_dir = clap#rooter#working_dir()
    1   0.000030   0.000026   let subcommand = printf('exec "%s" --cmd-dir "%s" --output-threshold %d', a:cmd, cmd_dir, clap#filter#capacity(), )
                            
    1              0.000007   return printf('%s %s %s', s:maple_bin, global_opt, subcommand)

FUNCTION  <SNR>114_exec_separator()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:189
Called 135 times
Total time:   0.213280
 Self time:   0.016960

count  total (s)   self (s)
  135              0.000662   if pumvisible()
                                return
  135              0.000200   endif
  135              0.001132   let group = a:from.'_to_'.a:to.a:suffix
  135   0.063273   0.002989   let l:from = airline#themes#get_highlight(a:from.a:suffix)
  135   0.056233   0.003341   let l:to = airline#themes#get_highlight(a:to.a:suffix)
  135              0.000405   if a:inverse
   20              0.000253     let colors = [ l:from[1], l:to[1], l:from[3], l:to[3] ]
  115              0.000176   else
  115              0.001354     let colors = [ l:to[1], l:from[1], l:to[3], l:from[3] ]
  135              0.000201   endif
  135              0.001123   let a:dict[group] = colors
  135   0.086522   0.003377   call airline#highlighter#exec(group, colors)

FUNCTION  <SNR>143_open_indicator_win()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:210
Called 1 time
Total time:   0.043699
 Self time:   0.000195

count  total (s)   self (s)
    1              0.000012   let opts = nvim_win_get_config(s:input_winid)
    1              0.000004   let opts.col += opts.width
    1              0.000004   let opts.width = g:__clap_indicator_winwidth
    1              0.000003   let opts.focusable = v:false
                            
    1              0.000005   if !nvim_buf_is_valid(s:indicator_bufnr)
                                let s:indicator_bufnr = nvim_create_buf(v:false, v:true)
                                let g:__clap_indicator_bufnr = s:indicator_bufnr
    1              0.000001   endif
    1   0.043488   0.000110   silent let s:indicator_winid = nvim_open_win(s:indicator_bufnr, v:true, opts)
    1              0.000019   call setwinvar(s:indicator_winid, '&winhl', 'Normal:ClapInput')
    1   0.000152   0.000026   call clap#api#setbufvar_batch(s:indicator_bufnr, { '&signcolumn': 'no', '&foldcolumn': 0, '&number': 0, '&relativenumber': 0, '&cursorline': 0, })

FUNCTION  <SNR>97_Highlight_Matching_Pair()
    Defined: /usr/local/share/nvim/runtime/plugin/matchparen.vim:39
Called 7 times
Total time:   0.001468
 Self time:   0.001468

count  total (s)   self (s)
                              " Remove any previous match.
    7              0.000054   if exists('w:paren_hl_on') && w:paren_hl_on
                                silent! call matchdelete(3)
                                let w:paren_hl_on = 0
    7              0.000011   endif
                            
                              " Avoid that we remove the popup menu.
                              " Return when there are no colors (looks like the cursor jumps).
    7              0.000059   if pumvisible() || (&t_Co < 8 && !has("gui_running"))
                                return
    7              0.000009   endif
                            
                              " Get the character under the cursor and check if it's in 'matchpairs'.
    7              0.000045   let c_lnum = line('.')
    7              0.000037   let c_col = col('.')
    7              0.000042   let before = 0
                            
    7              0.000043   let text = getline(c_lnum)
    7              0.000262   let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
    7              0.000035   if empty(matches)
                                let [c_before, c] = ['', '']
    7              0.000012   else
    7              0.000094     let [c_before, c] = matches[1:2]
    7              0.000010   endif
    7              0.000231   let plist = split(&matchpairs, '.\zs[:,]')
    7              0.000053   let i = index(plist, c)
    7              0.000021   if i < 0
                                " not found, in Insert mode try character before the cursor
    7              0.000051     if c_col > 1 && (mode() == 'i' || mode() == 'R')
                                  let before = strlen(c_before)
                                  let c = c_before
                                  let i = index(plist, c)
    7              0.000012     endif
    7              0.000017     if i < 0
                                  " not found, nothing to do
    7              0.000016       return
                                endif
                              endif
                            
                              " Figure out the arguments for searchpairpos().
                              if i % 2 == 0
                                let s_flags = 'nW'
                                let c2 = plist[i + 1]
                              else
                                let s_flags = 'nbW'
                                let c2 = c
                                let c = plist[i - 1]
                              endif
                              if c == '['
                                let c = '\['
                                let c2 = '\]'
                              endif
                            
                              " Find the match.  When it was just before the cursor move it there for a
                              " moment.
                              if before > 0
                                let has_getcurpos = exists("*getcurpos")
                                if has_getcurpos
                                  " getcurpos() is more efficient but doesn't exist before 7.4.313.
                                  let save_cursor = getcurpos()
                                else
                                  let save_cursor = winsaveview()
                                endif
                                call cursor(c_lnum, c_col - before)
                              endif
                            
                              if !has("syntax") || !exists("g:syntax_on")
                                let s_skip = "0"
                              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.
                                let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
                                " If executing the expression determines that the cursor is currently in
                                " one of the syntax types, then we want searchpairpos() to find the pair
                                " within those syntax types (i.e., not skip).  Otherwise, the cursor is
                                " outside of the syntax types and s_skip should keep its value so we skip
                                " any matching pair inside the syntax types.
                                " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
                                try
                                  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
                                endtry
                              endif
                            
                              " Limit the search to lines visible in the window.
                              let stoplinebottom = line('w$')
                              let stoplinetop = line('w0')
                              if i % 2 == 0
                                let stopline = stoplinebottom
                              else
                                let stopline = stoplinetop
                              endif
                            
                              " Limit the search time to 300 msec to avoid a hang on very long lines.
                              " This fails when a timeout is not supported.
                              if mode() == 'i' || mode() == 'R'
                                let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
                              else
                                let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
                              endif
                              try
                                let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
                              catch /E118/
                                " Can't use the timeout, restrict the stopline a bit more to avoid taking
                                " a long time on closed folds and long lines.
                                " The "viewable" variables give a range in which we can scroll while
                                " keeping the cursor at the same position.
                                " adjustedScrolloff accounts for very large numbers of scrolloff.
                                let adjustedScrolloff = min([&scrolloff, (line('w$') - line('w0')) / 2])
                                let bottom_viewable = min([line('$'), c_lnum + &lines - adjustedScrolloff - 2])
                                let top_viewable = max([1, c_lnum-&lines+adjustedScrolloff + 2])
                                " one of these stoplines will be adjusted below, but the current values are
                                " minimal boundaries within the current window
                                if i % 2 == 0
                                  if has("byte_offset") && has("syntax_items") && &smc > 0
                            	let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
                            	let stopline = min([bottom_viewable, byte2line(stopbyte)])
                                  else
                            	let stopline = min([bottom_viewable, c_lnum + 100])
                                  endif
                                  let stoplinebottom = stopline
                                else
                                  if has("byte_offset") && has("syntax_items") && &smc > 0
                            	let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
                            	let stopline = max([top_viewable, byte2line(stopbyte)])
                                  else
                            	let stopline = max([top_viewable, c_lnum - 100])
                                  endif
                                  let stoplinetop = stopline
                                endif
                                let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
                              endtry
                            
                              if before > 0
                                if has_getcurpos
                                  call setpos('.', save_cursor)
                                else
                                  call winrestview(save_cursor)
                                endif
                              endif
                            
                              " If a match is found setup match highlighting.
                              if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom 
                                if exists('*matchaddpos')
                                  call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3)
                                else
                                  exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
                                endif
                                let w:paren_hl_on = 1
                              endif

FUNCTION  vista#util#BinarySearch()
    Defined: ~/.config/nvim/plugged/vista.vim/autoload/vista/util.vim:196
Called 1 time
Total time:   0.000175
 Self time:   0.000175

count  total (s)   self (s)
    1              0.000008   let [array, target] = [a:array, a:target]
                            
    1              0.000003   let low = 0
    1              0.000005   let high = len(array) - 1
                            
    5              0.000011   while low <= high
    4              0.000013     let mid = (low + high) / 2
    4              0.000017     if array[mid][a:cmp_key] == target
                                  let found = array[mid]
                                  if !empty(a:ret_key)
                                    return get(found, a:ret_key, v:null)
                                  else
                                    return found
                                  endif
    4              0.000015     elseif array[mid][a:cmp_key] > target
    4              0.000009       let high = mid - 1
                                else
                                  let low = mid + 1
    4              0.000003     endif
    5              0.000006   endwhile
                            
    1              0.000002   if low == 0
    1              0.000003     return v:null
                              endif
                            
                              " If no exact match, prefer the previous nearest one.
                              if get(g:, 'vista_find_absolute_nearest_method_or_function', 0)
                                if abs(array[low][a:cmp_key] - target) < abs(array[low - 1][a:cmp_key] - target)
                                  let found = array[low]
                                else
                                  let found = array[low - 1]
                                endif
                              else
                                let found = array[low - 1]
                              endif
                            
                              if !empty(a:ret_key)
                                return get(found, a:ret_key, v:null)
                              else
                                return found
                              endif

FUNCTION  79()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:151
Called 3 times
Total time:   0.000245
 Self time:   0.000192

count  total (s)   self (s)
    3              0.000019   if nvim_win_is_valid(s:spinner_winid)
    3   0.000085   0.000033     let width = clap#spinner#width()
    3              0.000031     let opts = nvim_win_get_config(s:spinner_winid)
    3              0.000009     if opts.width != width
                                  let opts.width = width
                                  call nvim_win_set_config(s:spinner_winid, opts)
                            
                                  let opts = nvim_win_get_config(s:spinner_winid)
                                  let opts.col += opts.width
                                  let opts.width = s:display_opts.width - opts.width - s:symbol_width * 2 - g:__clap_indicator_winwidth
                                  if opts.width < 0
                                    let opts.width = 1
                                  endif
                                  let g:clap#floating_win#input.width = opts.width
                                  call nvim_win_set_config(s:input_winid, opts)
    3              0.000003     endif
    3              0.000003   endif

FUNCTION  airline#parts#crypt()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:59
Called 5 times
Total time:   0.000222
 Self time:   0.000222

count  total (s)   self (s)
    5              0.000207   return g:airline_detect_crypt && exists("+key") && !empty(&key) ? g:airline_symbols.crypt : ''

FUNCTION  <SNR>143_win_close()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:359
Called 4 times
Total time:   0.001731
 Self time:   0.000349

count  total (s)   self (s)
    4   0.001719   0.000337   noautocmd call clap#util#nvim_win_close_safe(a:winid)

FUNCTION  <SNR>142__line_count()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:53
Called 1 time
Total time:   0.000006
 Self time:   0.000006

count  total (s)   self (s)
    1              0.000006     return nvim_buf_line_count(self.bufnr)

FUNCTION  clap#api#setbufvar_batch()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:29
Called 1 time
Total time:   0.000126
 Self time:   0.000051

count  total (s)   self (s)
    1   0.000125   0.000050   call map(a:dict, { key, val -> setbufvar(a:bufnr, key, val) })

FUNCTION  <SNR>121_format_wordcount()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/wordcount.vim:40
Called 1 time
Total time:   0.000087
 Self time:   0.000023

count  total (s)   self (s)
    1   0.000087   0.000023   return airline#extensions#wordcount#formatters#{s:formatter}#to_string(a:wordcount)

FUNCTION  <SNR>137_StopHighlightTimer()
    Defined: ~/.config/nvim/plugged/vista.vim/autoload/vista/cursor.vim:33
Called 1 time
Total time:   0.000037
 Self time:   0.000014

count  total (s)   self (s)
    1   0.000036   0.000013   call s:GenericStopTimer('s:highlight_timer')

FUNCTION  WebDevIconsGetFileFormatSymbol()
    Defined: ~/.config/nvim/plugged/vim-devicons/plugin/webdevicons.vim:531
Called 16 times
Total time:   0.004273
 Self time:   0.003077

count  total (s)   self (s)
   16              0.000156   let fileformat = ''
   16              0.000080   let bomb = ''
                            
   16              0.000174   if (&bomb && g:WebDevIconsUnicodeByteOrderMarkerDefaultSymbol !=? '')
                                let bomb = g:WebDevIconsUnicodeByteOrderMarkerDefaultSymbol . ' '
   16              0.000040   endif
                            
   16              0.000121   if &fileformat ==? 'dos'
                                let fileformat = ''
   16              0.000100   elseif &fileformat ==? 'unix'
   16   0.000757   0.000412     if s:isDarwin()
                                  let fileformat = ''
   16              0.000043     else
   16   0.000730   0.000437       let fileformat = s:getDistro()
   16              0.000044     endif
                              elseif &fileformat ==? 'mac'
                                let fileformat = ''
   16              0.000038   endif
                            
   16   0.001209   0.000651   let artifactFix = s:DevIconsGetArtifactFix()
                            
   16              0.000164   return bomb . fileformat . artifactFix

FUNCTION  <SNR>50_isDarwin()
    Defined: ~/.config/nvim/plugged/vim-devicons/plugin/webdevicons.vim:122
Called 16 times
Total time:   0.000345
 Self time:   0.000345

count  total (s)   self (s)
   16              0.000175   if exists('s:is_darwin')
   16              0.000088     return s:is_darwin
                              endif
                            
                              if exists('g:WebDevIconsOS')
                                let s:is_darwin = g:WebDevIconsOS ==? 'Darwin'
                                return s:is_darwin
                              endif
                            
                              if has('macunix')
                                let s:is_darwin = 1
                                return s:is_darwin
                              endif
                            
                              if ! has('unix')
                                let s:is_darwin = 0
                                return s:is_darwin
                              endif
                            
                              if system('uname -s') ==# "Darwin\n"
                                let s:is_darwin = 1
                              else
                                let s:is_darwin = 0
                              endif
                            
                              return s:is_darwin

FUNCTION  <SNR>155_start_maple()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/forerunner.vim:110
Called 1 time
Total time:   0.001626
 Self time:   0.000040

count  total (s)   self (s)
    1   0.001623   0.000037     let s:job_id = clap#job#start_buffered(a:cmd, function('s:on_event_maple'))

FUNCTION  <SNR>193_replace()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/repo.vim:525
Called 21 times
Total time:   0.001065
 Self time:   0.001065

count  total (s)   self (s)
   21              0.000713   let parts = split(a:cmd, a:pat, 1)
   21              0.000289   return join(parts, a:sub)

FUNCTION  <SNR>109_check_defined_section()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions.vim:46
Called 2 times
Total time:   0.000037
 Self time:   0.000037

count  total (s)   self (s)
    2              0.000014   if !exists('w:airline_section_{a:name}')
    2              0.000017     let w:airline_section_{a:name} = g:airline_section_{a:name}
    2              0.000002   endif

FUNCTION  clap#filter#async#external#has_default()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/filter/async/external.vim:60
Called 1 time
Total time:   0.000005
 Self time:   0.000005

count  total (s)   self (s)
    1              0.000004   return s:default_ext_filter isnot v:null

FUNCTION  airline#parts#mode()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim:55
Called 5 times
Total time:   0.000897
 Self time:   0.000237

count  total (s)   self (s)
    5   0.000883   0.000222   return airline#util#shorten(get(w:, 'airline_current_mode', ''), 79, 1)

FUNCTION  <SNR>114_get_array()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:56
Called 614 times
Total time:   0.014648
 Self time:   0.014648

count  total (s)   self (s)
  614              0.005728   let opts=empty(a:opts) ? '' : join(a:opts, ',')
  614              0.008060   return g:airline_gui_mode ==# 'gui' ? [ a:fg, a:bg, '', '', opts ] : [ '', '', a:fg, a:bg, opts ]

FUNCTION  <SNR>140_detect_source_type()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:117
Called 1 time
Total time:   0.000158
 Self time:   0.000051

count  total (s)   self (s)
    1   0.000017   0.000013   let Source = g:clap.provider._().source
    1              0.000005   let source_ty = type(Source)
                            
    1              0.000003   if source_ty == v:t_string
                                return g:__t_string
    1              0.000003   elseif source_ty == v:t_list
                                return g:__t_list
    1              0.000002   elseif source_ty == v:t_func
    1   0.000113   0.000010     let string_or_list = Source()
    1              0.000005     if type(string_or_list) == v:t_string
    1              0.000003       return g:__t_func_string
                                elseif type(string_or_list) == v:t_list
                                  return g:__t_func_list
                                else
                                  call g:clap.abort('Must return a String or a List if source is a Funcref')
                                endif
                              endif
                              return v:null

FUNCTION  clap#floating_win#open()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:323
Called 1 time
Total time:   0.333831
 Self time:   0.000653

count  total (s)   self (s)
    1              0.000014   let g:__clap_display_curlnum = 1
                            
    1              0.000014   let s:save_winheight = &winheight
    1   0.000055   0.000026   let &winheight = 1
                            
                              " The order matters.
    1   0.066987   0.000046   call g:clap#floating_win#display.open()
    1   0.000152   0.000044   call s:open_win_border_left()
    1   0.071464   0.000026   call g:clap#floating_win#spinner.open()
    1   0.081165   0.000020   call g:clap#floating_win#input.open()
    1   0.043719   0.000020   call s:open_indicator_win()
    1   0.000064   0.000019   call s:open_win_border_right()
                            
                              " This seemingly does not look good.
                              " call s:adjust_display_for_border_symbol()
                            
    1   0.051908   0.000014   call clap#_init()
                            
    1              0.000007   augroup ClapEnsureAllClosed
    1              0.000309     autocmd!
                                " autocmd BufEnter,WinEnter,WinLeave * call s:ensure_closed()
    1              0.000002   augroup END
                            
    1   0.000039   0.000018   call g:clap.input.goto_win()
                            
    1   0.017805   0.000011   call g:clap.provider.try_set_syntax()
    1   0.000039   0.000014   call g:clap.provider.on_enter()
                            
    1   0.000026   0.000014   silent doautocmd <nomodeline> User ClapOnEnter
                            
    1              0.000002   startinsert
                            
    1   0.000038   0.000009   call g:clap.provider.apply_query()

FUNCTION  airline#extensions#quickfix#apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim:14
Called 7 times
Total time:   0.000207
 Self time:   0.000207

count  total (s)   self (s)
    7              0.000048   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 = ''
    7              0.000014   endif

FUNCTION  clap#spinner#width()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/spinner.vim:98
Called 4 times
Total time:   0.000097
 Self time:   0.000097

count  total (s)   self (s)
    4              0.000027   if !exists('s:current_prompt')
                                let s:current_prompt = s:generate_prompt()
    4              0.000006   endif
    4              0.000037   return strdisplaywidth(s:current_prompt)

FUNCTION  sy#sign#set_signs()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy/sign.vim:179
Called 7 times
Total time:   0.010840
 Self time:   0.001495

count  total (s)   self (s)
    7   0.000531   0.000180   call sy#verbose('sy#sign#set_signs()', a:vcs)
                            
    7              0.000080   if a:sy.stats == [-1, -1, -1]
                                let a:sy.stats = [0, 0, 0]
    7              0.000015   endif
                            
    7              0.000049   if empty(a:diff)
                                call sy#verbose('No changes found.', a:vcs)
                                let a:sy.stats = [0, 0, 0]
                                call sy#sign#remove_all_signs(a:sy.buffer)
                                return
    7              0.000014   endif
                            
    7              0.000096   if get(g:, 'signify_line_highlight')
                                call sy#highlight#line_enable()
    7              0.000017   else
    7   0.001374   0.000209     call sy#highlight#line_disable()
    7              0.000022   endif
                            
    7   0.008107   0.000278   call sy#sign#process_diff(a:sy, a:vcs, a:diff)
                            
    7              0.000126   if exists('#User#Signify')
                                doautocmd <nomodeline> User Signify
    7              0.000016   endif

FUNCTION  airline#extensions#wordcount#apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/wordcount.vim:88
Called 7 times
Total time:   0.001226
 Self time:   0.001001

count  total (s)   self (s)
    7              0.000174   let filetypes = get(g:, 'airline#extensions#wordcount#filetypes',  ['asciidoc', 'help', 'mail', 'markdown', 'org', 'rst', 'plaintex', 'tex', 'text'])
                              " export current filetypes settings to global namespace
    7              0.000095   let g:airline#extensions#wordcount#filetypes = filetypes
                            
                              " Check if filetype needs testing
    7              0.000037   if did_filetype()
                                " correctly test for compound filetypes (e.g. markdown.pandoc)
    3              0.000043     let ft = substitute(&filetype, '\.', '\\|', 'g')
                            
                                " Select test based on type of "filetypes": new=list, old=string
    3              0.000108     if type(filetypes) == get(v:, 't_list', type([])) ? match(filetypes, ft) > -1 || index(filetypes, 'all') > -1 : match(&filetype, filetypes) > -1
    1              0.000004       let b:airline_changedtick = -1
    1   0.000156   0.000016       call s:update_wordcount(1) " force update: ensures initial worcount exists
    2              0.000016     elseif exists('b:airline_wordcount') " cleanup when filetype is removed
                                  unlet b:airline_wordcount
    3              0.000004     endif
    7              0.000013   endif
                            
    7              0.000053   if exists('b:airline_wordcount')
    2   0.000121   0.000035     call airline#extensions#prepend_to_section( 'z', '%{airline#extensions#wordcount#get()}')
    7              0.000012   endif

FUNCTION  <SNR>155_run_maple_subcommand()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/forerunner.vim:128
Called 1 time
Total time:   0.001998
 Self time:   0.000060

count  total (s)   self (s)
    1              0.000007     let s:chunks = []
    1              0.000010     let g:__clap_current_forerunner_status = g:clap_forerunner_status_sign.running
    1   0.000324   0.000012     call clap#spinner#refresh()
    1   0.001654   0.000028     call s:start_maple(a:sub_cmd)

FUNCTION  80()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:171
Called 1 time
Total time:   0.081144
 Self time:   0.000355

count  total (s)   self (s)
    1              0.000012   if exists('s:input_winid') && nvim_win_is_valid(s:input_winid)
                                return
    1              0.000001   endif
    1              0.000013   let opts = nvim_win_get_config(s:spinner_winid)
    1              0.000005   let opts.col += opts.width
    1              0.000010   let opts.width = s:display_opts.width - opts.width - s:symbol_width * 2 - g:__clap_indicator_winwidth
                              " E5555: API call: 'width' key must be a positive Integer
                              " Avoid E5555 here and it seems to be fine later.
    1              0.000003   if opts.width < 0
                                let opts.width = 1
    1              0.000001   endif
    1              0.000004   let opts.focusable = v:true
                            
    1              0.000005   let g:clap#floating_win#input.width = opts.width
                            
    1              0.000006   if !nvim_buf_is_valid(s:input_bufnr)
                                let s:input_bufnr = nvim_create_buf(v:false, v:true)
                                let g:clap.input.bufnr = s:input_bufnr
    1              0.000001   endif
    1   0.038836   0.000157   silent let s:input_winid = nvim_open_win(s:input_bufnr, v:true, opts)
                            
    1              0.000016   let w:clap_search_text_hi_id = matchaddpos('ClapSearchText', [1])
                            
    1   0.000026   0.000018   call setwinvar(s:input_winid, '&winhl', 'Normal:ClapInput')
    1   0.041946   0.000019   call s:set_minimal_buf_style(s:input_bufnr, 'clap_input')
                              " Disable the auto-completion plugin
    1              0.000007   let s:save_completeopt = &completeopt
    1   0.000188   0.000012   call nvim_set_option('completeopt', '')
    1              0.000003   if s:exists_deoplete
                                call deoplete#custom#buffer_option('auto_complete', v:false)
    1              0.000001   endif
    1              0.000006   call setbufvar(s:input_bufnr, 'coc_suggest_disable', 1)
                              " Disable the auto-pairs plugin
    1              0.000015   call setbufvar(s:input_bufnr, 'coc_pairs_disabled', ['"', "'", '(', ')', '<', '>', '[', ']', '{', '}', '`'])
    1              0.000005   call setbufvar(s:input_bufnr, 'autopairs_loaded', 1)
    1              0.000005   let g:clap.input.winid = s:input_winid

FUNCTION  <SNR>142__setbufvar_batch()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:25
Called 1 time
Total time:   0.000412
 Self time:   0.000162

count  total (s)   self (s)
    1   0.000410   0.000160   call map(a:dict, { key, val -> setbufvar(self.bufnr, key, val) })

FUNCTION  clap#indicator#set_matches()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/indicator.vim:35
Called 1 time
Total time:   0.000071
 Self time:   0.000023

count  total (s)   self (s)
    1              0.000006   if get(g:, 'clap_disable_matches_indicator', v:false)
                                return
    1              0.000001   endif
    1   0.000061   0.000013   call s:set_indicator(a:indicator)

FUNCTION  clap#floating_win#close()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/floating_win.vim:363
Called 1 time
Total time:   0.003702
 Self time:   0.001275

count  total (s)   self (s)
    1   0.000053   0.000033   let &winheight = s:save_winheight
    1              0.000672   silent! autocmd! ClapEnsureAllClosed
                            
    1              0.000012   if s:symbol_width > 0
                                call s:win_close(s:symbol_left_winid)
                                call s:win_close(s:symbol_right_winid)
    1              0.000003   endif
                            
    1   0.000111   0.000072   noautocmd call g:clap#floating_win#preview.close()
    1   0.000501   0.000048   call s:win_close(g:clap.input.winid)
    1   0.000368   0.000090   call s:win_close(g:clap.spinner.winid)
    1   0.000358   0.000069   call s:win_close(s:indicator_winid)
                            
                              " I don't know why, but this could be related to the cursor move in grep.vim
                              " thus I have to go back to the start window in grep.vim
    1   0.000872   0.000161   call s:win_close(g:clap.display.winid)
                            
    1   0.000681   0.000045   let &completeopt = s:save_completeopt
    1              0.000007   if s:exists_deoplete
                                call deoplete#custom#buffer_option('auto_complete', v:true)
    1              0.000002   endif

FUNCTION  airline#statusline()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline.vim:190
Called 16 times
Total time:   0.000960
 Self time:   0.000960

count  total (s)   self (s)
   16              0.000433   if has_key(s:contexts, a:winnr)
   16              0.000429     return '%{airline#check_mode('.a:winnr.')}'.s:contexts[a:winnr].line
                              endif
                              " in rare circumstances this happens...see #276
                              return ''

FUNCTION  clap#_exit()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:172
Called 1 time
Total time:   0.005212
 Self time:   0.000441

count  total (s)   self (s)
    1   0.000100   0.000024   call g:clap.provider.jobstop()
    1   0.000133   0.000047   call clap#forerunner#stop()
    1   0.000050   0.000025   call clap#maple#stop()
                            
    1   0.003735   0.000033   call g:clap.close_win()
                            
    1              0.000010   let g:clap.is_busy = 0
    1              0.000019   let g:clap.display.cache = []
    1              0.000008   let g:clap.display.initial_size = -1
                              " Reset this for vim issue. Ref #223
    1              0.000006   let g:clap.display.winid = -1
                            
                              " Remember to get what the sink needs before clearing the buffer.
    1   0.000197   0.000035   call g:clap.input.clear()
    1   0.000306   0.000028   call g:clap.display.clear()
                            
    1   0.000193   0.000066   call s:remove_provider_tmp_vars([ 'args', 'source_tempfile', 'should_switch_to_async', ])
                            
    1   0.000225   0.000038   call s:unlet_vars([ 'g:__clap_fuzzy_matched_indices', 'g:__clap_forerunner_result', 'g:__clap_lines_truncated_map', ])
                            
    1   0.000180   0.000052   call clap#sign#reset()
                            
    1              0.000014   call map(g:clap.tmps, 'delete(v:val)')
    1              0.000007   let g:clap.tmps = []

FUNCTION  airline#extensions#wordcount#formatters#default#to_string()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/wordcount/formatters/default.vim:26
Called 1 time
Total time:   0.000064
 Self time:   0.000048

count  total (s)   self (s)
    1   0.000026   0.000010   if airline#util#winwidth() > 85
    1              0.000003     if a:wordcount > 999
                                  " Format number according to locale, e.g. German: 1.245 or English: 1,245
                                  let wordcount = substitute(a:wordcount, '\d\@<=\(\(\d\{3\}\)\+\)$', s:decimal_group.'&', 'g')
    1              0.000001     else
    1              0.000003       let wordcount = a:wordcount
    1              0.000001     endif
    1              0.000007     let str = printf(s:fmt, wordcount)
                              else
                                let str = printf(s:fmt_short, a:wordcount)
    1              0.000001   endif
    1              0.000008   return str . g:airline_symbols.space . g:airline_right_alt_sep . g:airline_symbols.space

FUNCTION  clap#layout#calc()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/layout.vim:101
Called 1 time
Total time:   0.000677
 Self time:   0.000088

count  total (s)   self (s)
    1              0.000014   if exists('g:clap_layout')
    1   0.000111   0.000034     call s:validate(g:clap_layout)
    1   0.000550   0.000037     return s:user_layout()
                              else
                                return s:calc_default()
                              endif

FUNCTION  <SNR>8_LoadIndent()
    Defined: /usr/local/share/nvim/runtime/indent.vim:13
Called 3 times
Total time:   0.001509
 Self time:   0.001509

count  total (s)   self (s)
    3              0.000027     if exists("b:undo_indent")
                                  exe b:undo_indent
                                  unlet! b:undo_indent b:did_indent
    3              0.000006     endif
    3              0.000030     let s = expand("<amatch>")
    3              0.000013     if s != ""
    2              0.000012       if exists("b:did_indent")
                            	unlet b:did_indent
    2              0.000004       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.000039       for name in split(s, '\.')
    2              0.001285 	exe 'runtime! indent/' . name . '.vim'
    4              0.000011       endfor
    3              0.000006     endif

FUNCTION  <SNR>128_skip()
    Defined: ~/.config/nvim/plugged/vim-signify/autoload/sy.vim:148
Called 4 times
Total time:   0.000148
 Self time:   0.000148

count  total (s)   self (s)
    4              0.000114   if getbufvar(a:bufnr, '&diff') || !filereadable(a:path)
    4              0.000021     return 1
                              endif
                            
                              if exists('g:signify_skip_filetype')
                                if has_key(g:signify_skip_filetype, getbufvar(a:bufnr, '&filetype'))
                                  return 1
                                elseif has_key(g:signify_skip_filetype, 'help') && getbufvar(a:bufnr, '&buftype') == 'help'
                                  return 1
                                endif
                              endif
                            
                              if exists('g:signify_skip_filename') && has_key(g:signify_skip_filename, a:path)
                                return 1
                              endif
                            
                              " DEPRECATED: Use g:signify_skip.pattern instead.
                              if exists('g:signify_skip_filename_pattern')
                                for pattern in g:signify_skip_filename_pattern
                                  if a:path =~ pattern
                                    return 1
                                  endif
                                endfor
                              endif
                            
                              if exists('g:signify_skip')
                                if has_key(g:signify_skip, 'pattern')
                                  for pattern in g:signify_skip.pattern
                                    if a:path =~ pattern
                                      return 1
                                    endif
                                  endfor
                                endif
                              endif
                            
                              return 0

FUNCTION  airline#extensions#apply()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions.vim:70
Called 24 times
Total time:   0.006728
 Self time:   0.003746

count  total (s)   self (s)
   24              0.000259   let filetype_overrides = get(s:, 'filetype_overrides', {})
   24              0.000336   call extend(filetype_overrides, get(g:, 'airline_filetype_overrides', {}), 'force')
                            
   24   0.003455   0.000474   if s:is_excluded_window()
                                return -1
   24              0.000031   endif
                            
   24              0.000102   if &buftype == 'terminal'
                                let w:airline_section_x = ''
                                let w:airline_section_y = ''
   24              0.000032   endif
                            
   24              0.000155   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()))
   24              0.000030   endif
                            
   24              0.000366   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])
   24              0.000033   endif
                            
   24              0.000087   if &buftype == 'help'
                                let w:airline_section_x = ''
                                let w:airline_section_y = ''
                                let w:airline_render_right = 1
   24              0.000031   endif
                            
   24              0.000221   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
   24              0.000043   endfor

FUNCTION  <SNR>45_init()
    Defined: ~/.config/nvim/plugged/vim-airline/plugin/airline.vim:15
Called 6 times
Total time:   0.000055
 Self time:   0.000055

count  total (s)   self (s)
    6              0.000029   if s:airline_initialized
    6              0.000014     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  <SNR>126_section_is_empty()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:185
Called 139 times
Total time:   0.003309
 Self time:   0.003309

count  total (s)   self (s)
  139              0.000544   let start=1
                            
                              " do not check for inactive windows or the tabline
  139              0.000619   if a:self._context.active == 0
   85              0.000170     return 0
   54              0.000382   elseif get(a:self._context, 'tabline', 0)
                                return 0
   54              0.000080   endif
                            
                              " only check, if airline#skip_empty_sections == 1
   54              0.000397   if get(g:, 'airline_skip_empty_sections', 0) == 0
   54              0.000125     return 0
                              endif
                            
                              " only check, if airline#skip_empty_sections == 1
                              if get(w:, 'airline_skip_empty_sections', -1) == 0
                                return 0
                              endif
                              " assume accents sections to be never empty
                              " (avoides, that on startup the mode message becomes empty)
                              if match(a:content, '%#__accent_[^#]*#.*__restore__#') > -1
                                return 0
                              endif
                              if empty(a:content)
                                return 1
                              endif
                              let list=matchlist(a:content, '%{\zs.\{-}\ze}', 1, start)
                              if empty(list)
                                return 0 " no function in statusline text
                              endif
                              while len(list) > 0
                                let expr = list[0]
                                try
                                  " catch all exceptions, just in case
                                  if !empty(eval(expr))
                                    return 0
                                  endif
                                catch
                                  return 0
                                endtry
                                let start += 1
                                let list=matchlist(a:content, '%{\zs.\{-}\ze}', 1, start)
                              endw
                              return 1

FUNCTION  <SNR>140_remove_provider_tmp_vars()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:164
Called 1 time
Total time:   0.000127
 Self time:   0.000127

count  total (s)   self (s)
    4              0.000025   for var in a:vars
    3              0.000032     if has_key(g:clap.provider, var)
    2              0.000021       call remove(g:clap.provider, var)
    3              0.000007     endif
    4              0.000011   endfor

FUNCTION  airline#highlighter#get_highlight()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:67
Called 614 times
Total time:   0.232071
 Self time:   0.107781

count  total (s)   self (s)
  614              0.024780   let reverse = get(g:, 'airline_gui_mode', '') ==# 'gui' ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui') : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm')|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term')
  614              0.006058   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
  614              0.001032   else
  614   0.067482   0.011458     let fg = s:get_syn(a:group, 'fg')
  614   0.064531   0.010913     let bg = s:get_syn(a:group, 'bg')
  614              0.012626     let bold = synIDattr(synIDtrans(hlID(a:group)), 'bold')
  614              0.002012     if reverse
                                  let res = s:get_array(bg, fg, bold ? ['bold'] : a:000)
  614              0.001125     else
  614   0.028017   0.013368       let res = s:get_array(fg, bg, bold ? ['bold'] : a:000)
  614              0.001047     endif
  614              0.000915   endif
  614              0.005775   let s:hl_groups[a:group] = res
  614              0.001571   return res

FUNCTION  airline#util#shorten()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:28
Called 21 times
Total time:   0.002737
 Self time:   0.001796

count  total (s)   self (s)
   21   0.001716   0.000776   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
   21              0.000049   else
   21              0.000100     return a:text
                              endif

FUNCTION  <SNR>167_should_switch_to_async()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/impl.vim:142
Called 1 time
Total time:   0.000082
 Self time:   0.000040

count  total (s)   self (s)
    1              0.000005   if has_key(g:clap.provider, 'should_switch_to_async')
                                return g:clap.provider.should_switch_to_async
    1              0.000001   else
    1   0.000060   0.000019     let should_switch_to_async = s:detect_should_switch_to_async()
    1              0.000006     let g:clap.provider.should_switch_to_async = should_switch_to_async
    1              0.000003     return should_switch_to_async
                              endif

FUNCTION  airline#highlighter#highlight_modified_inactive()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:229
Called 3 times
Total time:   0.003867
 Self time:   0.000392

count  total (s)   self (s)
    3              0.000041   if getbufvar(a:bufnr, '&modified')
                                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 : []
    3              0.000007   else
    3              0.000106     let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive.airline_c') ? g:airline#themes#{g:airline_theme}#palette.inactive.airline_c : []
    3              0.000007   endif
                            
    3              0.000021   if !empty(colors)
    3   0.003609   0.000134     call airline#highlighter#exec('airline_c'.(a:bufnr).'_inactive', colors)
    3              0.000007   endif

FUNCTION  55()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:341
Called 1 time
Total time:   0.000025
 Self time:   0.000019

count  total (s)   self (s)
    1   0.000018   0.000012     if has_key(self._(), 'on_enter')
                                  call self._().on_enter()
    1              0.000001     endif

FUNCTION  56()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/api.vim:348
Called 1 time
Total time:   0.000519
 Self time:   0.000039

count  total (s)   self (s)
    1              0.000002     try
    1   0.000497   0.000017       call self._().on_typed()
                                catch
                                  let l:error_info = ['provider.on_typed:'] + split(v:throwpoint, '\[\d\+\]\zs') + split(v:exception, "\n")
                                  call g:clap.display.set_lines(l:error_info)
                                  call g:clap#display_win.shrink()
                                  call clap#spinner#set_idle()
    1              0.000002     endtry

FUNCTION  clap#_init()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:138
Called 1 time
Total time:   0.051893
 Self time:   0.000133

count  total (s)   self (s)
    1   0.000016   0.000011   if has_key(g:clap.provider._(), 'source')
    1   0.000012   0.000008     if has_key(g:clap.provider._(), 'source_type')
                                  let g:clap.provider.source_type = g:clap.provider._().source_type
    1              0.000001     else
    1   0.000173   0.000016       let g:clap.provider.source_type = s:detect_source_type()
    1              0.000001     endif
    1              0.000001   endif
                            
    1   0.000341   0.000013   call clap#spinner#init()
                            
    1   0.003209   0.000021   call g:clap.provider.init_display_win()
                            
                              " Ensure the filetype is empty on init.
                              " Each provider can set its own syntax for the highlight purpose.
    1   0.048123   0.000044   call g:clap.display.setbufvar('&filetype', '')

FUNCTION  coc#rpc#notify()
    Defined: ~/.config/nvim/plugged/coc.nvim/autoload/coc/rpc.vim:99
Called 18 times
Total time:   0.006397
 Self time:   0.001278

count  total (s)   self (s)
   18   0.000986   0.000445   if !coc#rpc#ready()
                                return ''
   18              0.000034   endif
   18   0.005173   0.000596   call s:client['notify'](a:method, a:args)
   18              0.000076   return ''

FUNCTION  <SNR>109_is_excluded_window()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions.vim:110
Called 24 times
Total time:   0.002981
 Self time:   0.002981

count  total (s)   self (s)
   24              0.000165   for matchft in g:airline_exclude_filetypes
                                if matchft ==# &ft
                                  return 1
                                endif
   24              0.000054   endfor
                            
   96              0.000295   for matchw in g:airline_exclude_filenames
   72              0.001251     if matchstr(expand('%'), matchw) ==# matchw
                                  return 1
   72              0.000085     endif
   96              0.000143   endfor
                            
   24              0.000143   if g:airline_exclude_preview && &previewwindow
                                return 1
   24              0.000033   endif
                            
   24              0.000054   return 0

FUNCTION  <SNR>57_CreateDelimMapFromCms()
    Defined: ~/.config/nvim/plugged/nerdcommenter/plugin/NERD_commenter.vim:567
Called 3 times
Total time:   0.000217
 Self time:   0.000217

count  total (s)   self (s)
    3              0.000017     if &filetype ==# '' && exists('g:NERDDefaultDelims')
                                    let delims = g:NERDDefaultDelims
                                    for i in ['left', 'leftAlt', 'right', 'rightAlt']
                                        if !has_key(delims, i)
                                            let delims[i] = ''
                                        endif
                                    endfor
                                    return delims
    3              0.000003     endif
    3              0.000147     return { 'left': substitute(&commentstring, '\([^ \t]*\)\s*%s.*', '\1', ''), 'right': substitute(&commentstring, '.*%s\s*\(.*\)', '\1', 'g'), 'nested': 0, 'leftAlt': '', 'rightAlt': '', 'nestedAlt': 0}

FUNCTION  airline#extensions#hunks#get_hunks()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/extensions/hunks.vim:80
Called 5 times
Total time:   0.004672
 Self time:   0.002537

count  total (s)   self (s)
    5              0.000070   if !get(w:, 'airline_active', 0)
                                return ''
    5              0.000013   endif
                              " Cache values, so that it isn't called too often
    5   0.000631   0.000409   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_coc'
                                return b:airline_hunks
    5              0.000011   endif
    5   0.001310   0.000192   let hunks = airline#extensions#hunks#get_raw_hunks()
    5              0.000027   let string = ''
    5   0.000264   0.000176   let winwidth = get(airline#parts#get('hunks'), 'minwidth', 100)
    5              0.000040   if !empty(hunks)
                                " hunks should contain [added, changed, deleted]
   20              0.000136     for i in [0, 1, 2]
   15   0.001027   0.000488       if (s:non_zero_only == 0 && airline#util#winwidth() > winwidth) || hunks[i] > 0
   15              0.000322         let string .= printf('%s%s ', s:hunk_symbols[i], hunks[i])
   15              0.000037       endif
   20              0.000060     endfor
    5              0.000013   endif
    5              0.000046   let b:airline_hunks = string
    5              0.000045   let b:airline_changenr = b:changedtick
    5   0.000319   0.000151   let s:airline_winwidth = airline#util#winwidth()
    5              0.000026   return string

FUNCTION  <SNR>155_on_event_maple()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/forerunner.vim:74
Called 3 times
Total time:   0.001286
 Self time:   0.000107

count  total (s)   self (s)
                              " We only process the job that was spawned last time.
    3              0.000012   if a:job_id == s:job_id
    3              0.000009     if a:event ==# 'stdout'
    1              0.000004       if len(a:data) > 1
                                    " Second last is the real last one for neovim.
    1              0.000009         call extend(s:chunks, a:data[:-2])
    1              0.000001       endif
    2              0.000005     elseif a:event ==# 'stderr'
                                  " Ignore the error
    1              0.000001     else
    1   0.001196   0.000017       call s:on_complete_maple()
    3              0.000003     endif
    3              0.000003   endif

FUNCTION  <SNR>140_unlet_vars()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap.vim:156
Called 2 times
Total time:   0.000281
 Self time:   0.000281

count  total (s)   self (s)
    8              0.000041   for var in a:vars
    6              0.000064     if exists(var)
    1              0.000087       execute 'unlet' var
    6              0.000013     endif
    8              0.000020   endfor

FUNCTION  airline#highlighter#reset_hlcache()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim:63
Called 1 time
Total time:   0.001654
 Self time:   0.001654

count  total (s)   self (s)
    1              0.001650   let s:hl_groups = {}

FUNCTION  airline#util#prepend()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:63
Called 64 times
Total time:   0.002050
 Self time:   0.002050

count  total (s)   self (s)
   64              0.000734   if a:minwidth > 0 && airline#util#winwidth() < a:minwidth
                                return ''
   64              0.000143   endif
   64              0.000782   return empty(a:text) ? '' : a:text.s:spc.g:airline_right_alt_sep.s:spc

FUNCTION  <SNR>126_get_accented_line()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:166
Called 115 times
Total time:   0.013130
 Self time:   0.013130

count  total (s)   self (s)
  115              0.000527   if a:self._context.active
                                " active window
   47              0.000228     let contents = []
   47              0.001091     let content_parts = split(a:contents, '__accent')
  117              0.000530     for cpart in content_parts
   70              0.001363       let accent = matchstr(cpart, '_\zs[^#]*\ze')
   70              0.000515       call add(contents, cpart)
  117              0.000272     endfor
   47              0.000490     let line = join(contents, a:group)
   47              0.000911     let line = substitute(line, '__restore__', a:group, 'g')
   68              0.000096   else
                                " inactive window
   68              0.001875     let line = substitute(a:contents, '%#__accent[^#]*#', '', 'g')
   68              0.001004     let line = substitute(line, '%#__restore__#', '', 'g')
  115              0.000170   endif
  115              0.000333   return line

FUNCTION  clap#sign#reset_to_first_line()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/sign.vim:59
Called 1 time
Total time:   0.000085
 Self time:   0.000056

count  total (s)   self (s)
    1              0.000006   if s:last_signed_id == 1 && !empty(s:sign_of_first_line())
                                return
    1              0.000001   endif
    1              0.000002   if s:last_signed_id != -1
                                call s:unplace_cur_sign_at(s:last_signed_id)
    1              0.000001   endif
    1   0.000023   0.000009   call g:clap.display.set_cursor(1, 1)
    1              0.000003   let curlnum = 1
    1              0.000006   let g:__clap_display_curlnum = curlnum
    1   0.000030   0.000016   call s:place_cur_sign_at(curlnum)
    1              0.000003   let s:last_signed_id = curlnum

FUNCTION  <SNR>45_on_cursor_moved()
    Defined: ~/.config/nvim/plugged/vim-airline/plugin/airline.vim:91
Called 3 times
Total time:   0.000168
 Self time:   0.000121

count  total (s)   self (s)
    3              0.000037   if winnr() != s:active_winnr || !exists('w:airline_active')
                                call s:on_window_changed('CursorMoved')
    3              0.000005   endif
    3   0.000102   0.000055   call airline#update_tabline()

FUNCTION  clap#impl#on_typed()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/impl.vim:162
Called 1 time
Total time:   0.000476
 Self time:   0.000081

count  total (s)   self (s)
                              " If user explicitly uses the external filter, just use the async impl then,
                              " even the forerunner job is finished already.
    1   0.000019   0.000011   if clap#api#has_externalfilter()
                                call s:on_typed_async_impl()
                                return
    1              0.000001   endif
    1              0.000005   if exists('g:__clap_forerunner_result')
                                call s:on_typed_sync_impl()
                                return
    1              0.000001   endif
    1   0.000147   0.000030   if g:clap.provider.can_async() && (get(g:clap.context, 'async') is v:true || s:should_switch_to_async())
    1   0.000284   0.000014     call s:on_typed_async_impl()
                              else
                                call s:on_typed_sync_impl()
    1              0.000001   endif

FUNCTION  airline#util#getbufvar()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/util.vim:71
Called 31 times
Total time:   0.000265
 Self time:   0.000265

count  total (s)   self (s)
   31              0.000241     return getbufvar(a:bufnr, a:key, a:def)

FUNCTION  <SNR>145_get_attrs()
    Defined: ~/.config/nvim/plugged/vim-clap/autoload/clap/icon.vim:213
Called 145 times
Total time:   0.007236
 Self time:   0.003887

count  total (s)   self (s)
  145   0.005031   0.001681   let fg = s:get_color(a:group, 'fg')
  145              0.000418   if empty(fg)
   14              0.000038     let fg = s:normal_fg
  145              0.000149   endif
                              " guibg=NONE ctermbg=NONE is neccessary otherwise the bg could be unexpected.
  145              0.001082   return printf('%sbg=%s %sfg=%s guibg=NONE ctermbg=NONE', s:gui_or_cterm, s:normal_bg, s:gui_or_cterm, fg)

FUNCTION  airline#builder#new()
    Defined: ~/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim:232
Called 24 times
Total time:   0.001573
 Self time:   0.001573

count  total (s)   self (s)
   24              0.000418   let builder = copy(s:prototype)
   24              0.000148   let builder._context = a:context
   24              0.000116   let builder._sections = []
                            
   24              0.000718   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')
   24              0.000078   return builder

FUNCTIONS SORTED ON TOTAL TIME
count  total (s)   self (s)  function
    1   0.334773   0.000310  clap#()
    1   0.334298   0.000207  clap#for()
    1   0.333831   0.000653  clap#floating_win#open()
    7   0.323801   0.001618  airline#update_statusline()
   24   0.316976   0.003063  <SNR>51_invoke_funcrefs()
    6   0.278751   0.000820  <SNR>45_on_window_changed()
   24   0.256589   0.035024  18()
  614   0.232071   0.107781  airline#highlighter#get_highlight()
  135   0.213280   0.016960  <SNR>114_exec_separator()
   16   0.167368   0.007916  airline#check_mode()
    7   0.162071   0.002137  airline#update_statusline_inactive()
   67   0.161340   0.003540  <SNR>126_get_seperator()
    3   0.154918   0.020937  airline#highlighter#highlight()
   91   0.144837   0.008175  <SNR>126_get_transitioned_seperator()
  210   0.138262   0.036387  airline#highlighter#exec()
   91   0.136662   0.003969  airline#highlighter#add_separator()
  270   0.113175   0.007745  airline#themes#get_highlight()
    2   0.112677   0.000099  <SNR>143_set_minimal_buf_style()
 1228   0.109643             <SNR>114_get_syn()
    1   0.081144   0.000355  80()

FUNCTIONS SORTED ON SELF TIME
count  total (s)   self (s)  function
 1228              0.109643  <SNR>114_get_syn()
  614   0.232071   0.107781  airline#highlighter#get_highlight()
  210   0.138262   0.036387  airline#highlighter#exec()
   24   0.256589   0.035024  18()
    7   0.034198   0.028863  sy#repo#get_diff()
    3   0.154918   0.020937  airline#highlighter#highlight()
  135   0.213280   0.016960  <SNR>114_exec_separator()
  614              0.014648  <SNR>114_get_array()
  153   0.017769   0.014144  <SNR>127_get_section()
  210              0.013473  <SNR>114_CheckDefined()
  115              0.013130  <SNR>126_get_accented_line()
   16   0.013535   0.012909  WebDevIconsGetFileTypeSymbol()
  209              0.009424  <SNR>114_hl_group_exists()
  107   0.023465   0.008609  <SNR>127_add_section()
    3   0.008560   0.008407  <SNR>7_LoadFTPlugin()
   91   0.144837   0.008175  <SNR>126_get_transitioned_seperator()
    1   0.015282   0.008010  <SNR>145_generic_hi_icons()
   16   0.167368   0.007916  airline#check_mode()
  270   0.113175   0.007745  airline#themes#get_highlight()
   24   0.055752   0.005786  airline#util#exec_funcrefs()


@vn-ki
Copy link

vn-ki commented Apr 2, 2020

Oh, this is weird.

I disabled vim-airline and now the lag only exists the first time I open Clap. Every subsequent opening is fast.

Looks like airline is somehow slowing Clap down. I don't have enough expertise to track it down though. I hope you can help.

@liuchengxu
Copy link
Owner

liuchengxu commented Apr 2, 2020

From your profile report, I don't see the slowness, see the final FUNCTIONS SORTED ON TOTAL TIME section, I don't think people can feel the slowness of 0.1s.

And here is the result on my computer, vim-clap is a little faster in iterms of the opening. Call :Clap files in vim-clap repo:

total:

    1   0.152131   0.000088  clap#()
FUNCTIONS SORTED ON TOTAL TIME
count  total (s)   self (s)  function
    1   0.152131   0.000088  clap#()
    1   0.152006   0.000477  clap#for()
    1   0.150278   0.000456  clap#floating_win#open()
    1   0.114163   0.000064  clap#_init()
    1   0.112848   0.000016  59()
    1   0.112830   0.000408  58()
    1   0.111526   0.000025  clap#forerunner#start()
    1   0.109481   0.000466  clap#maple#forerunner_exec_subcommand()
    1   0.072178   0.003361  provider#python3#Call()
    1   0.068818   0.000040  remote#host#Require()
    1   0.068778   0.000906  provider#pythonx#Require()
    1   0.067798             provider#Poll()
    1   0.031537   0.000016  provider#pythonx#Detect()
    1   0.031521   0.000093  provider#pythonx#DetectByModule()
    1   0.031335   0.000188  provider#pythonx#CheckForModule()
    1   0.031147   0.000153  <SNR>204_import_module()
   28   0.030702   0.007730  traces#init()
    2   0.018071   0.000078  <SNR>186_set_minimal_buf_style()
   28   0.016748   0.002903  <SNR>145_evaluate_cmdl()
    4   0.012854   0.005900  <SNR>39_SynSet()

FUNCTIONS SORTED ON SELF TIME
count  total (s)   self (s)  function
    1              0.067798  provider#Poll()
    3   0.011044   0.009421  <SNR>36_LoadFTPlugin()
   28   0.030702   0.007730  traces#init()
    3   0.008027   0.007344  sy#repo#get_diff()
    4   0.012854   0.005900  <SNR>39_SynSet()
   28   0.007205   0.005705  <SNR>145_parse_range()
   28              0.004721  <SNR>145_skip_modifiers()
   46              0.004407  <SNR>68_is_tmp_file()
    1   0.006564   0.003693  <SNR>189_generic_hi_icons()
    1   0.072178   0.003361  provider#python3#Call()
   28   0.016748   0.002903  <SNR>145_evaluate_cmdl()
   28              0.002831  <SNR>145_evaluate_range()
   23              0.002593  ElelineCurFname()
  112              0.002015  <SNR>145_trim()
    3              0.002013  <SNR>37_LoadIndent()
  145   0.002731   0.001676  <SNR>189_get_attrs()
    1   0.001667   0.001656  ale#linter#GetAll()
    3   0.001556   0.001540  <SNR>201_find_upwards()
   19   0.001725   0.001497  <SNR>81_notify()
    1   0.001950   0.001493  <SNR>184_init_submatches_hl_group()

For fzf, call :Files in vim-clap repo too:

total:

1   0.021047   0.000077  fzf#vim#files()
FUNCTIONS SORTED ON TOTAL TIME
count  total (s)   self (s)  function
    1   0.034572   0.000863  19()
    1   0.021047   0.000077  fzf#vim#files()
    1   0.020852   0.000079  <SNR>166_fzf()
    1   0.020252   0.000521  fzf#run()
    1   0.019481   0.002640  <SNR>83_execute_term()
   16   0.017949   0.004408  traces#init()
    1   0.013733   0.000028  <SNR>78_SyncAutocmd()
    1   0.013705   0.000023  coc#rpc#request()
    1   0.013676   0.013670  <SNR>81_request()
    6   0.012531   0.000939  sy#start()
    1   0.012147   0.000026  <SNR>119_OnBufEnter()
    1   0.012121   0.000042  <SNR>119_GenericAutoUpdate()
    1   0.012045   0.000044  <SNR>116_AutoUpdate()
    1   0.011506   0.000031  <SNR>116_ApplyExecute()
    4   0.011150   0.010142  sy#repo#get_diff()
    1   0.009912   0.002041  <SNR>116_BuildCmd()
   16   0.009904   0.001704  <SNR>143_evaluate_cmdl()
    1   0.007765   0.007664  <SNR>116_IntoTemp()
    1   0.005906   0.000115  <SNR>83_split()
    1   0.005767   0.000211  <SNR>83_popup()

FUNCTIONS SORTED ON SELF TIME
count  total (s)   self (s)  function
    1   0.013676   0.013670  <SNR>81_request()
    4   0.011150   0.010142  sy#repo#get_diff()
    1   0.007765   0.007664  <SNR>116_IntoTemp()
    1   0.005350   0.004981  <SNR>36_LoadFTPlugin()
   16   0.017949   0.004408  traces#init()
   16   0.004082   0.003232  <SNR>143_parse_range()
    1   0.019481   0.002640  <SNR>83_execute_term()
   16              0.002590  <SNR>143_skip_modifiers()
   42              0.002301  <SNR>68_is_tmp_file()
    1   0.009912   0.002041  <SNR>116_BuildCmd()
    1              0.001996  <SNR>39_SynSet()
   16   0.002048   0.001901  <SNR>81_notify()
   16   0.009904   0.001704  <SNR>143_evaluate_cmdl()
   16              0.001580  <SNR>143_evaluate_range()
    1              0.001491  <SNR>116_ApplyRunAsync()
   21              0.001346  ElelineCurFname()
   64              0.001150  <SNR>143_trim()
    1              0.001072  <SNR>37_LoadIndent()
    2   0.005557   0.001037  <SNR>83_create_popup()
   16   0.002202   0.001032  <SNR>143_parse_command()

@liuchengxu
Copy link
Owner

liuchengxu commented Apr 2, 2020

I don't use vim-airline, so can't help more :(. @vn-ki You might want to file an issue at vim-airline to see if they have some suggestions.

@liuchengxu
Copy link
Owner

Once #383 is merged, the cache and dynamic freshing feature are both added for grepping and searching files, which can make clap much faster than before, especially the cache feature, you can run :Clap files / without worring the speed.

Feel free to try #383, and please provide the profile report if you still see the slowness problem. @alex-popov-tech

@alex-popov-tech
Copy link
Author

@liuchengxu thanks, waiting for it!

@Avi-D-coder
Copy link
Contributor

Can this be reopened. I am on the neovim master and arch, and ran make, but Clap feels slow to open.

@liuchengxu
Copy link
Owner

@Avi-D-coder Post your profile report with minimal vimrc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants