kablamo / VimDebug

Integrate your debugger with Vim. Currently supports Perl, Python, and Ruby. This code is very much in beta.
37 stars 7 forks source link

Timeouts #19

Closed kablamo closed 13 years ago

kablamo commented 13 years ago

IPC::Run is the Perl lib that handles fifo communication. Everything blocks until the read or write is successful. IPC::Run dies after a given number of seconds if its not successful.

This doesn't work well for debugging Catalyst or other apps because things could run a long time before the breakpoint is hit.

I think the timeout should be set to infinitely long. But then we need a key stroke or a popup window (or whatever the vim equivalent of that is) that allows the user to cancel IPC::Run's read or write.

kablamo commented 13 years ago

A solution:

  1. edit VimDebug::DebuggerInterface::Base::getUntilPrompt() so that pump() times out.
  2. send message to VimDebug.vim, "cancel?"
  3. edit VimDebug.vim s:HandleCmdResult() to check for "cancel?"
  4. prompt user and send response back to vdd.