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
" 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,'\.')
let l:nextPath=l:path.'/'.fnameescape(l:dirname)
if empty(glob(l:nextPath))
return l:path
endif
let l:path=l:nextPath
endfor
endfor
return l:path
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)
endif
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:
* "args": Command line arguments for the debugged program
* "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
If you don't supply "classpath" and "srcpath", Vebugger will assume you are
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
"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*