minimal ruby-debug-ide implementation for Vim based on vim-addon-async supporting breakpoints, stepping, ..
Fetching latest commit…
Cannot retrieve the latest commit at this time
Implement ruby-debug-ide19 client for Vim tested with ruby-1.9.2 (1.9.3 causes errors with ruby-debug19) STATUS: This is working: - stepping - breakpoints - var view, watching, evaling, sending commands to debug process manually - restarting USAGE: ! Requires client-server, thus X or patched Vim (eg nox patch, see vim-addon-async) 1) # this installs ruby-debug19 and linecache19 as well: gem install ruby-debug-ide19 The following steps are only necessary until my changes are accepted upstream. # get my patched version of ruby-debug-ide19 # I'm trying to feed these changes upstream # thus the next two commands will not be needed in the future. git clone -b json https://github.com/MarcWeber/ruby-debug-ide.git # make sure the files of my version are found first: RUBYLIB=`pwd`/lib:$RUBYLIB chmod +x bin/rdebug-ide PATH=`pwd`/bin:$PATH 2) start Vim *after* having set PATH and RUBYLIB as shown above. :e test.rb (your script to be debugged) :RDStart You'll be asked for the script name to be debugged. Keep empty to connect to already running rdebug-ide process. You can start the server manually this way: rdebug-ide -J script.rb You can set breakpoints by F9 and add conditions in the RDEBUG_BREAK_POINTS_VIEW buffer Yes - there are some segfaults sometimes. Using latest mercurial dev version of Vim seems to fix most issues? 3) hit F8 to start process 6) step by F6 etc, see plugin/vim-addon-ruby-debug-ide.vim fun RDMappings INSTALLATION: dependencies: - see addon-info.json - socat executable (probably nc/netcat works as well) Using VAM: add the name "vim-addon-ruby-debug-ide" to the list of plugins to be installed. related work: ============= github.com/MarcWeber/vim-addon-rdebug An implementation which works with require 'debug' only. https://github.com/astashov/vim-ruby-debugger So why did it start this project? I want maintainable minimal and reusable code. That's why this implementation is based on vim-addons-signs and vim-addon-async. The code in this repo is about 500 LOC currently, not 2000. It works nice and fast (but may crash vim sometimes), vim-ruby-debugger fails pointing to the current breakpoint when using this mapping and hitting hit a couple of times fast. noremap <F6> :call ruby_debugger#load_debugger() <bar> call g:RubyDebugger.step()<CR> The author told me it may happen occasionally - but did not for him. Well - I want to work fast. There are some more debugger script at www.vim.org which work with any commandline related debugger or can be extended to work with those. I haven't tried them. Example: http://www.vim.org/scripts/script.php?script_id=1703 TODO / BUGS - upload json protocol implementation for ruby-debug-ide19 to my github page (done) and submit merge request when done (requested) - check which features of implementation are missing thread support (continue which one when hitting F8?) - implemennt support for enabling / disabling breakpoints ? (because lines in the breakpoint view can be commented this is not urgent) - somewhen fix the segfault which sometimes occurs in Vim TROUBLE SHOOTING: invalid option: -J, you have the wrong ruby-debug-ide19 version which does not have my json protocl patch. See INSTALLATION. You can't set breakpoints? Make sure you pass -J (json protocol) to rdebug-ide