xolox / vim-easytags

Automated tag file generation and syntax highlighting of tags in Vim
http://peterodding.com/code/vim/easytags/
1.01k stars 109 forks source link

Asynchronous update never finishes #100

Closed alexpolozov closed 9 years ago

alexpolozov commented 9 years ago

On my machine (Windows 8.1 x64) updating tags asynchronously launches a separate vim process every time, which loads one core entirely and never finishes. I just see a bunch of vim.exes in ProcessExplorer.

Here's the command for vim.exe:

"C:\cygwin64\bin\vim.EXE" -u NONE -U NONE --noplugin -n -N -i NONE --cmd "let &rtp = 'C:\Users\alepol/vimfiles,C:\Users\alepol.vim\bundle\Vundle.vim,C:\Users\alepol.vim\bundle\vim-colors-solarized,C:\Users\alepol.vim\bundle\vim-airline,C:\Users\alepol.vim\bundle\vim-fugitive,C:\Users\alepol.vim\bundle\vim-commentary,C:\Users\alepol.vim\bundle\vim-surround,C:\Users\alepol.vim\bundle\vim-repeat,C:\Users\alepol.vim\bundle\vim-textobj-user,C:\Users\alepol.vim\bundle\vim-textobj-entire,C:\Users\alepol.vim\bundle\ctrlp.vim,C:\Users\alepol.vim\bundle\vim-unimpaired,C:\Users\alepol.vim\bundle\vim-textobj-latex,C:\Users\alepol.vim\bundle\vim-latex,C:\Users\alepol.vim\bundle\taglist.vim,C:\Users\alepol.vim\bundle\tagbar,C:\Users\alepol.vim\bundle\auto-pairs,C:\Users\alepol.vim\bundle\vim-misc,C:\Users\alepol.vim\bundle\vim-shell,C:\Users\alepol.vim\bundle\vim-easytags,C:\Users\alepol.vim\bundle\supertab,C:\Users\alepol.vim\bundle\ultisnips,C:\Users\alepol.vim\bundle\vim-snippets,C:\Users\alepol.vim\bundle\YouCompleteMe,C:\Users\alepol.vim\bundle\vim-abolish,C:\Users\alepol.vim\bundle\ack.vim,C:\Users\alepol.vim\bundle\vim-easymotion,C:\Users\alepol.vim\bundle\vim-startify,C:\Users\alepol.vim\bundle\vim-rooter,C:\Users\alepol.vim\bundle\vim-niji,C:\Users\alepol.vim\bundle\vim-racket,C:\Users\alepol.vim\bundle\SingleCompile,C:\Vim/vimfiles,C:\Vim\vim74,C:\Vim/vimfiles/after,C:\Users\alepol/vimfiles/after,C:\Users\alepol/.vim/bundle/vundle,C:\Users\alepol.vim\bundle\Vundle.vim/after,C:\Users\alepol.vim\bundle\vim-colors-solarized/after,C:\Users\alepol.vim\bundle\vim-airline/after,C:\Users\alepol.vim\bundle\vim-fugitive/after,C:\Users\alepol.vim\bundle\vim-commentary/after,C:\Users\alepol.vim\bundle\vim-surround/after,C:\Users\alepol.vim\bundle\vim-repeat/after,C:\Users\alepol.vim\bundle\vim-textobj-user/after,C:\Users\alepol.vim\bundle\vim-textobj-entire/after,C:\Users\alepol.vim\bundle\ctrlp.vim/after,C:\Users\alepol.vim\bundle\vim-unimpaired/after,C:\Users\alepol.vim\bundle\vim-textobj-latex/after,C:\Users\alepol.vim\bundle\vim-latex/after,C:\Users\alepol.vim\bundle\taglist.vim/after,C:\Users\alepol.vim\bundle\tagbar/after,C:\Users\alepol.vim\bundle\auto-pairs/after,C:\Users\alepol.vim\bundle\vim-misc/after,C:\Users\alepol.vim\bundle\vim-shell/after,C:\Users\alepol.vim\bundle\vim-easytags/after,C:\Users\alepol.vim\bundle\supertab/after,C:\Users\alepol.vim\bundle\ultisnips/after,C:\Users\alepol.vim\bundle\vim-snippets/after,C:\Users\alepol.vim\bundle\YouCompleteMe/after,C:\Users\alepol.vim\bundle\vim-abolish/after,C:\Users\alepol.vim\bundle\ack.vim/after,C:\Users\alepol.vim\bundle\vim-easymotion/after,C:\Users\alepol.vim\bundle\vim-startify/after,C:\Users\alepol.vim\bundle\vim-rooter/after,C:\Users\alepol.vim\bundle\vim-niji/after,C:\Users\alepol.vim\bundle\vim-racket/after,C:\Users\alepol.vim\bundle\SingleCompile/after' | call xolox#misc#async#inside_child({'number': 7, 'function': 'xolox#easytags#update#with_vim', 'servername': 'LATEXSUITE', 'callback': 'xolox#easytags#async_callback', 'arguments': [{'tagsfile': 'C:\Users\alepol\OneDrive\Projects\Foobar\tags', 'have_args': 0, 'default_filetype': 'tex', 'ctags_version': '5.8', 'filter_tags': 1, 'command': 'ctags --fields=+l --c-kinds=+p --c++-kinds=+p --sort=no -f- -R ""C:\Users\alepol\OneDrive\Projects\Foobar""'}], 'starttime': ['xolox#misc#timer#value', [35, 12368124]]})"

Notably, for some weird reason vim-shell launches Cygwin's vim, even though it is not the one that has precedence according to my PATH variable:

C:\Users\alepol> where vim
C:\Windows\vim.bat
C:\Program Files (x86)\Git\bin\vim
C:\cygwin64\bin\vim.exe
C:\vim74\vim.exe

Here the vim.bat script launches C:\vim74\vim.exe, as usual. I tried to search the sources as to where vim-easytags or vim-shell makes this decision, but quickly got lost in redirects...

alexpolozov commented 9 years ago

I updated vim-misc, vim-shell, and vim-easytags, and now the plugin calls the correct Vim executable. It is unable to find the DLL (which is a separate issue), but it is able to execute the client Vim with a correct command, which returns immediately. So, I'm closing this issue.

P.S. In order to make an async call without using the DLL, I had to make a fix to vim-misc: https://github.com/xolox/vim-misc/issues/17