pocco81 / dap-buddy.nvim

🐞 Debug Adapter Protocol manager for Neovim
GNU General Public License v3.0
400 stars 48 forks source link

Add ruby_vsc_dbg #5

Closed rafcamlet closed 3 years ago

rafcamlet commented 3 years ago

Hi! I created script for installing vscode debugger for ruby https://github.com/rubyide/vscode-ruby

It is mostly based on the go_delve_dbg and ccppr_vsc_dbg from dev branch. Configuration is taken from vimspector. I haven't seen any tests, so I haven't written any, but I've tested it manually and everything seems to be working well. I saw that there was an empty file for ruby_dbg but, because it isn't the debugger suggested in nvim-dap, I've decided to follow ccppr_vsc_dbg naming pattern.

The ruby-debug-ide gem (gems are ruby lib packages) is required for the debugger to run properly, but since the ruby community uses version managers extensively and switches between different ruby versions and even different gem sets, it is difficult to automate its installation. So I'm just displaying reminder information at the end of the debugger installation.

I didn't add any documentation, because I didn't know what should I put there.

Feel free to modify anything as you like. :)

pocco81 commented 3 years ago

Yeah there are empty files for debuggers that don't have any implementations yet, like the ruby one for example.

Regarding the code... maybe the print "\n\n\n" isn't that necessary, but apart from that, everything seems clean and good to go.

I don't do any sort of Ruby dev, so I'll take your word for it and mark its status as "Tested" in the "List of debuggers" session.

Btw cool project!

pocco81 commented 3 years ago

Sorry, I accidentally clicked the wrong button.

pocco81 commented 3 years ago

Thanks! Now it's fully supported!

rafcamlet commented 3 years ago

Nice! Thanks!

Regarding the code... maybe the print "\n\n\n" isn't that necessary

I wanted to visually highlight information about gem. Maybe some kind of frame or underline will be better.

I'm wondering about one more thing. Provided configuration is designed for working with simple scripts or small programs, but won't work with Rails applications - rails apps are the main commercial use of ruby. Maybe we should provide multiple configurations or some kind of help/instructions? Are such things outside the scope of this plugin? Actually, I've never seen multiple default configs (in dap or vimspector wikis).

Config for rails should look something like that:

 {
    type = 'ruby';
    request = 'launch';
    name = 'Rails';
    program = 'bundle';
    programArgs = {'exec', 'rails', 's'};
    useBundler = true;
  }