Mercurial > vim-gutentags
diff autoload/gutentags.vim @ 169:95afd985a4c3
Merge pull request #97 from GitHub.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 19 Feb 2017 20:00:13 -0800 |
parents | 1fe62e7f1fae e59321cbaff7 |
children | 2cf3fb66285b |
line wrap: on
line diff
--- a/autoload/gutentags.vim Sat Feb 18 21:57:52 2017 -0800 +++ b/autoload/gutentags.vim Sun Feb 19 20:00:13 2017 -0800 @@ -2,6 +2,23 @@ " Utilities {{{ +function! gutentags#pwd() + if has('nvim') + return haslocaldir() ? getcwd(0, 0) : haslocaldir(-1, 0) ? getcwd(-1, 0) : getcwd() + else + return haslocaldir() ? getcwd(0, 0) : getcwd() + endif +endfunction + +function! gutentags#chdir(path) + if has('nvim') + let chdir = haslocaldir() ? 'lcd' : haslocaldir(-1, 0) ? 'tcd' : 'cd' + else + let chdir = haslocaldir() ? 'lcd' : 'cd' + endif + execute chdir a:path +endfunction + " Throw an exception message. function! gutentags#throw(message) throw "gutentags: " . a:message @@ -384,8 +401,8 @@ " Switch to the project root to make the command line smaller, and make " it possible to get the relative path of the filename to parse if we're " doing an incremental update. - let l:prev_cwd = getcwd() - execute "chdir " . fnameescape(l:proj_dir) + let l:prev_cwd = gutentags#pwd() + call gutentags#chdir(fnameescape(l:proj_dir)) try call call("gutentags#".a:module."#generate", \[l:proj_dir, l:tags_file, a:write_mode]) @@ -394,7 +411,7 @@ echom v:exception finally " Restore the current directory... - execute "chdir " . fnameescape(l:prev_cwd) + call gutentags#chdir(fnameescape(l:prev_cwd)) endtry endfunction