51 lines
1.1 KiB
VimL
51 lines
1.1 KiB
VimL
fun! pymode#breakpoint#init() "{{{
|
|
|
|
if !g:pymode_breakpoint
|
|
return
|
|
endif
|
|
|
|
if g:pymode_breakpoint_cmd == ''
|
|
let g:pymode_breakpoint_cmd = 'import pdb; pdb.set_trace() # XXX BREAKPOINT'
|
|
|
|
if g:pymode_python == 'disable'
|
|
return
|
|
endif
|
|
|
|
endif
|
|
|
|
PymodePython << EOF
|
|
|
|
from imp import find_module
|
|
|
|
for module in ('wdb', 'pudb', 'ipdb'):
|
|
try:
|
|
find_module(module)
|
|
vim.command('let g:pymode_breakpoint_cmd = "import %s; %s.set_trace() # XXX BREAKPOINT"' % (module, module))
|
|
break
|
|
except ImportError:
|
|
continue
|
|
|
|
EOF
|
|
|
|
endfunction "}}}
|
|
|
|
fun! pymode#breakpoint#operate(lnum) "{{{
|
|
let line = getline(a:lnum)
|
|
if strridx(line, g:pymode_breakpoint_cmd) != -1
|
|
normal dd
|
|
else
|
|
let plnum = prevnonblank(a:lnum)
|
|
if &expandtab
|
|
let indents = repeat(' ', indent(plnum))
|
|
else
|
|
let indents = repeat("\t", plnum / &shiftwidth)
|
|
endif
|
|
|
|
call append(line('.')-1, indents.g:pymode_breakpoint_cmd)
|
|
normal k
|
|
endif
|
|
|
|
" Save file without any events
|
|
call pymode#save()
|
|
|
|
endfunction "}}}
|