for s:tool in g:grepper.tools
if !has_key(g:grepper, s:tool)
\ || !has_key(g:grepper[s:tool], 'grepprg')
\ || !executable(expand(matchstr(g:grepper[s:tool].grepprg, '^[^ ]*')))
call remove(g:grepper.tools, index(g:grepper.tools, s:tool))
endif
endfor
This chunk of code is very slow on macOS arm64 neovim 0.5 as found by using vim's profiling setup. I'm guessing it has something to do with looking up different versions via rosetta. But at any rate it takes 3-4x as long as neovim with an empty init.vim just to load grepper.
Moving much of the code to autoload and lazy loading it would probably still be useful for even non-arm64-macOS.
This chunk of code is very slow on macOS arm64 neovim 0.5 as found by using vim's profiling setup. I'm guessing it has something to do with looking up different versions via rosetta. But at any rate it takes 3-4x as long as neovim with an empty
init.vim
just to load grepper.Moving much of the code to
autoload
and lazy loading it would probably still be useful for even non-arm64-macOS.