Mercurial > vim-gutentags
comparison autoload/gutentags/cscope.vim @ 72:99b95da1bed7
Add Neovim support for cscope
author | Jonathan Buschmann <jonthn@pinacea.com> |
---|---|
date | Sat, 02 May 2015 00:21:19 +0200 |
parents | 1a853b37eddf |
children | 286e5b3095d0 |
comparison
equal
deleted
inserted
replaced
71:2d407e62d254 | 72:99b95da1bed7 |
---|---|
37 execute 'cs add ' . fnameescape(l:dbfile_path) | 37 execute 'cs add ' . fnameescape(l:dbfile_path) |
38 endif | 38 endif |
39 endif | 39 endif |
40 endfunction | 40 endfunction |
41 | 41 |
42 function! gutentags#cscope#command_terminated(job_id, data, event) abort | |
43 if a:data == 0 | |
44 if index(s:added_dbs, self.db_file) < 0 | |
45 call add(s:added_dbs, self.db_file) | |
46 execute 'cs add ' . fnameescape(s:db_file) | |
47 else | |
48 execute 'cs reset' | |
49 endif | |
50 endif | |
51 endfunction | |
52 | |
42 function! gutentags#cscope#generate(proj_dir, tags_file, write_mode) abort | 53 function! gutentags#cscope#generate(proj_dir, tags_file, write_mode) abort |
43 let l:cmd = gutentags#get_execute_cmd() . s:runner_exe | 54 let l:cmd = gutentags#get_execute_cmd() . s:runner_exe |
44 let l:cmd .= ' -e ' . g:gutentags_cscope_executable | 55 let l:cmd .= ' -e ' . g:gutentags_cscope_executable |
45 let l:cmd .= ' -p ' . a:proj_dir | 56 let l:cmd .= ' -p ' . a:proj_dir |
46 let l:cmd .= ' -f ' . a:tags_file | 57 let l:cmd .= ' -f ' . a:tags_file |
48 let l:cmd .= gutentags#get_execute_cmd_suffix() | 59 let l:cmd .= gutentags#get_execute_cmd_suffix() |
49 | 60 |
50 call gutentags#trace("Running: " . l:cmd) | 61 call gutentags#trace("Running: " . l:cmd) |
51 call gutentags#trace("In: " . getcwd()) | 62 call gutentags#trace("In: " . getcwd()) |
52 if !g:gutentags_fake | 63 if !g:gutentags_fake |
53 if !g:gutentags_trace | 64 if !(has('nvim') && exists('*jobwait')) |
54 silent execute l:cmd | 65 if !g:gutentags_trace |
66 silent execute l:cmd | |
67 else | |
68 execute l:cmd | |
69 endif | |
55 else | 70 else |
56 execute l:cmd | 71 let job_dict = { 'db_file': a:tags_file, 'on_exit' : function('gutentags#cscope#command_terminated') } |
72 let job_cmd = [ s:runner_exe, | |
73 \ '-e', g:gutentags_cscope_executable, | |
74 \ '-p', a:proj_dir, | |
75 \ '-f', a:tags_file ] | |
76 let job_id = jobstart(job_cmd, job_dict) | |
57 endif | 77 endif |
58 | 78 |
59 let l:full_scopedb_file = fnamemodify(a:tags_file, ':p') | 79 let l:full_scopedb_file = fnamemodify(a:tags_file, ':p') |
60 call gutentags#add_progress('cscope', l:full_scopedb_file) | 80 call gutentags#add_progress('cscope', l:full_scopedb_file) |
61 else | 81 else |