From d51c2221ea3c43a966f4e4182fa2b74bea633ef2 Mon Sep 17 00:00:00 2001 From: n0psledbyte Date: Sat, 30 Jun 2018 00:18:03 +0700 Subject: [PATCH 1/6] update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 926ccaa..67d6c1f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ doc/tags +*/__pycache__/ +*.pyc From b9baa31488727452be5e416b973d191df9165080 Mon Sep 17 00:00:00 2001 From: n0psledbyte Date: Sat, 30 Jun 2018 00:18:11 +0700 Subject: [PATCH 2/6] support find tool option --- autoload/gen_tags.vim | 2 +- autoload/gen_tags/ctags.vim | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/autoload/gen_tags.vim b/autoload/gen_tags.vim index 857dd1c..411917f 100644 --- a/autoload/gen_tags.vim +++ b/autoload/gen_tags.vim @@ -172,7 +172,7 @@ function! s:job_start(cmd, ...) abort let l:job.on_exit = a:1 endif - let l:job_id = jobstart(a:cmd, l:job) + let l:job_id = jobstart(join(a:cmd), l:job) elseif has('job') let l:job = { \ 'out_cb': function('s:job_stdout'), diff --git a/autoload/gen_tags/ctags.vim b/autoload/gen_tags/ctags.vim index 677012b..9f46fcb 100644 --- a/autoload/gen_tags/ctags.vim +++ b/autoload/gen_tags/ctags.vim @@ -79,7 +79,12 @@ function! s:ctags_gen(filename, dir) abort if empty(a:filename) let l:file = l:dir . '/' . s:ctags_db - let l:cmd += ['-f', l:file, '-R', expand(gen_tags#find_project_root())] + let l:cmd += ['-f', l:file] + if exists('g:gen_tags#find_tool') && g:gen_tags#find_tool != '' + let l:cmd += ['-L-'] + else + let l:cmd += ['-R', expand(gen_tags#find_project_root())] + endif else let l:file = a:filename let l:cmd += ['-f', l:file, '-R', expand(a:dir)] @@ -278,7 +283,13 @@ function! s:ctags_update(file) abort endfunction function! s:ctags_cmd_pre() abort - let l:cmd = [g:gen_tags#ctags_bin] + let l:cmd = [] + + if exists('g:gen_tags#find_tool') && g:gen_tags#find_tool != '' + let l:cmd += [g:gen_tags#find_tool, expand(gen_tags#find_project_root()), '|'] + endif + + let l:cmd += [g:gen_tags#ctags_bin] "Extra flag in universal ctags, enable reference tags if s:is_universal_ctags() From 67edf9b033a3aa03220ea9fc80c8eea388b17480 Mon Sep 17 00:00:00 2001 From: n0psledbyte Date: Mon, 2 Jul 2018 23:33:18 +0700 Subject: [PATCH 3/6] find_tool vim support --- autoload/gen_tags.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/gen_tags.vim b/autoload/gen_tags.vim index 411917f..7c36025 100644 --- a/autoload/gen_tags.vim +++ b/autoload/gen_tags.vim @@ -183,8 +183,8 @@ function! s:job_start(cmd, ...) abort if a:0 != 0 let l:job.exit_cb = a:1 endif - - let l:job_id = job_start(a:cmd, l:job) + let l:cmd = ['/bin/sh', '-c', join(a:cmd)] + let l:job_id = job_start(l:cmd, l:job) else if has('unix') let l:cmd = a:cmd + ['&'] From fbd6fe5e49b19e9c39e0ddce19451464975f0343 Mon Sep 17 00:00:00 2001 From: n0psledbyte Date: Tue, 3 Jul 2018 00:03:01 +0700 Subject: [PATCH 4/6] find tool gtags support --- autoload/gen_tags/gtags.vim | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/autoload/gen_tags/gtags.vim b/autoload/gen_tags/gtags.vim index 75a7ebd..df79ced 100644 --- a/autoload/gen_tags/gtags.vim +++ b/autoload/gen_tags/gtags.vim @@ -49,6 +49,12 @@ function! s:gtags_db_gen() abort let l:cmd += gen_tags#opt_converter(g:gen_tags#gtags_opts) endif + if exists('g:gen_tags#find_tool') && g:gen_tags#find_tool != '' + let l:find_tool_cmd = [g:gen_tags#find_tool, expand((gen_tags#find_project_root()))] + let l:find_tool_opt = ['-f', '-'] + let l:cmd = l:find_tool_cmd + ['|'] + l:cmd + l:find_tool_opt + endif + function! s:gtags_db_gen_done(...) abort call gen_tags#statusline#clear() From 893ba9d9c873647dc1c50892624d515a61b2a353 Mon Sep 17 00:00:00 2001 From: n0psledbyte Date: Tue, 3 Jul 2018 00:22:56 +0700 Subject: [PATCH 5/6] refactor, fix some code --- autoload/gen_tags/ctags.vim | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/autoload/gen_tags/ctags.vim b/autoload/gen_tags/ctags.vim index 9f46fcb..3cd39b7 100644 --- a/autoload/gen_tags/ctags.vim +++ b/autoload/gen_tags/ctags.vim @@ -77,17 +77,26 @@ function! s:ctags_gen(filename, dir) abort let l:cmd = s:ctags_cmd_pre() + if exists('g:gen_tags#find_tool') && g:gen_tags#find_tool != '' + let l:find_tool_cmd = [g:gen_tags#find_tool, expand((gen_tags#find_project_root()))] + let l:find_tool_opt = ['-L', '-'] + let l:cmd = l:find_tool_cmd + ['|'] + l:cmd + l:find_tool_opt + endif + if empty(a:filename) let l:file = l:dir . '/' . s:ctags_db let l:cmd += ['-f', l:file] - if exists('g:gen_tags#find_tool') && g:gen_tags#find_tool != '' - let l:cmd += ['-L-'] - else + " Don't use recursive mode if find_tool exists + if !exists('g:gen_tags#find_tool') let l:cmd += ['-R', expand(gen_tags#find_project_root())] endif else let l:file = a:filename - let l:cmd += ['-f', l:file, '-R', expand(a:dir)] + let l:cmd += ['-f', l:file] + " Don't use recursive mode if find_tool exists + if !exists('g:gen_tags#find_tool') + let l:cmd += ['-R', expand(gen_tags#find_project_root())] + endif endif call gen_tags#system_async(l:cmd) @@ -283,13 +292,7 @@ function! s:ctags_update(file) abort endfunction function! s:ctags_cmd_pre() abort - let l:cmd = [] - - if exists('g:gen_tags#find_tool') && g:gen_tags#find_tool != '' - let l:cmd += [g:gen_tags#find_tool, expand(gen_tags#find_project_root()), '|'] - endif - - let l:cmd += [g:gen_tags#ctags_bin] + let l:cmd = [g:gen_tags#ctags_bin] "Extra flag in universal ctags, enable reference tags if s:is_universal_ctags() From 0d6e8bcc51364835fbb9f522a0a944cefe847ea7 Mon Sep 17 00:00:00 2001 From: n0psledbyte Date: Tue, 3 Jul 2018 08:26:39 +0700 Subject: [PATCH 6/6] find tool windows support --- autoload/gen_tags.vim | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/autoload/gen_tags.vim b/autoload/gen_tags.vim index 7c36025..249a9ae 100644 --- a/autoload/gen_tags.vim +++ b/autoload/gen_tags.vim @@ -183,7 +183,11 @@ function! s:job_start(cmd, ...) abort if a:0 != 0 let l:job.exit_cb = a:1 endif - let l:cmd = ['/bin/sh', '-c', join(a:cmd)] + if has('unix') + let l:cmd = ['/bin/sh', '-c', join(a:cmd)] + else + let l:cmd = ['cmd', '/c', join(a:cmd)] + endif let l:job_id = job_start(l:cmd, l:job) else if has('unix')