Added shell buffer support for PDB

This commit is contained in:
IdanArye 2014-05-16 18:03:21 +03:00
parent 28c44ce69a
commit 2d1c16a588

View File

@ -8,6 +8,9 @@ function! vebugger#pdb#start(entryFile,args)
\'willPrintNext':{'expression':'','stage':0}
\}
call vebugger#std#openShellBuffer(l:debugger)
call l:debugger.addReadHandler(function('s:readProgramOutput'))
call l:debugger.addReadHandler(function('s:readWhere'))
call l:debugger.addReadHandler(function('s:readFinish'))
call l:debugger.addReadHandler(function('s:readEvaluatedExpressions'))
@ -25,6 +28,24 @@ function! vebugger#pdb#start(entryFile,args)
return l:debugger
endfunction
function! s:readProgramOutput(pipeName,line,readResult,debugger) dict
if 'out'==a:pipeName
if a:line=~'\v^\>'
\||a:line=='--Return--'
\||a:line=='The program finished and will be restarted'
let self.programOutputMode=0
endif
if get(self,'programOutputMode')
let a:readResult.std.programOutput={'line':a:line}
endif
if a:line=~'\v^\(Pdb\) (n|s|r|cont)'
let self.programOutputMode=1
endif
else
let a:readResult.std.programOutput={'line':a:line}
endif
endfunction
function! s:readWhere(pipeName,line,readResult,debugger)
if 'out'==a:pipeName
let l:matches=matchlist(a:line,'\v^\> (.+)\((\d+)\).*\(\)$')