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