Merge pull request #46 from daltonmatos/feature/support-multi-srcpath-search

Add support for multi-srcpath
This commit is contained in:
Idan Arye 2017-10-17 13:45:38 +03:00 committed by GitHub
commit f96b37322e
3 changed files with 23 additions and 9 deletions

View File

@ -87,13 +87,14 @@ function! s:findFolderFromStackTrace(src,nameFromStackTrace,frameNumber)
endif endif
" If no such tag was found, try to find it using the src path. " If no such tag was found, try to find it using the src path.
let l:path=a:src for l:path in vebugger#util#listify(a:src)
for l:dirname in split(a:nameFromStackTrace,'\.') for l:dirname in split(a:nameFromStackTrace,'\.')
let l:nextPath=l:path.'/'.fnameescape(l:dirname) let l:nextPath=l:path.'/'.fnameescape(l:dirname)
if empty(glob(l:nextPath)) if empty(glob(l:nextPath))
return l:path return l:path
endif endif
let l:path=l:nextPath let l:path=l:nextPath
endfor
endfor endfor
return l:path return l:path
endfunction endfunction

View File

@ -115,3 +115,12 @@ function! vebugger#util#isPathAbsolute(path)
return a:path[0]=~'\v^[/~$]' "Absolute paths in Linux start with ~(home),/(root dir) or $(environment variable) return a:path[0]=~'\v^[/~$]' "Absolute paths in Linux start with ~(home),/(root dir) or $(environment variable)
endif endif
endfunction endfunction
function! vebugger#util#listify(stringOrList)
if type(a:stringOrList) == type([])
return copy(a:stringOrList) " so it could safely be modified by map&filter
else
return [a:stringOrList]
endif
endfunction

View File

@ -202,7 +202,7 @@ Unlike in the other debuggers, the first argument here is not the name of a
file - it's the name of the class to run. The supported extra arguments are: file - it's the name of the class to run. The supported extra arguments are:
* "args": Command line arguments for the debugged program * "args": Command line arguments for the debugged program
* "classpath": Where to look for class files * "classpath": Where to look for class files
* "srcpath": Where to look for source files * "srcpath": Where to look for source files. You can have multiple srcpaths, passed as a list
* "version": The version of the debugger to run * "version": The version of the debugger to run
If you don't supply "classpath" and "srcpath", Vebugger will assume you are If you don't supply "classpath" and "srcpath", Vebugger will assume you are
using the current directory for source files and class files. using the current directory for source files and class files.
@ -210,6 +210,10 @@ using the current directory for source files and class files.
JDB does not have a command for starting it, since you usually want to supply JDB does not have a command for starting it, since you usually want to supply
"classpath" and "srcpath". "classpath" and "srcpath".
If you need Vebugger to search for the source files in multiple locations, you can
specify `srcpath` as a list. Vebugger will search on all these folders
and the first match will be returned as the Source file to be shown.
LAUNCHING RDEBUG *vebugger-rdebug* LAUNCHING RDEBUG *vebugger-rdebug*