VSCode将调试shell更改为在windows上进行bash

时间:2017-03-22 16:03:45

标签: ruby-on-rails ruby windows bash visual-studio-code

上下文:我最近从Sublime Text切换到Visual Studio Code以测试Microsoft文本编辑器的调试功能。这里的主要问题是我的Ruby on Rails环境在Windows上的Ubuntu中设置为bash。

我将集成终端shell更改为bash,因此,我可以使用集成终端来启动/调试我的应用程序。但是当使用集成调试工具使用Ruby扩展(https://github.com/rubyide/vscode-ruby)时,它似乎启动了windows cmd来执行配置:

  

调试器终端错误:进程失败:生成rdebug-ide.bat ENOENT

问题:我的问题是由vscode尝试使用windows cmd而不是指定的bash shell引起的?如果是这样,有没有办法告诉vscode使用它而不是windows cmd?

这是我要执行的任务的launch.json配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Rails server",
      "type": "Ruby",
      "request": "launch",
      "cwd": "/mnt/c/Repos/<project_name>",
      "program": "rails",
      "pathToRDebugIDE": 
"~/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide",
      "args": ["server"]
    }
}

1 个答案:

答案 0 :(得分:0)

Visual Studio Code的Ruby扩展只能使用cmd来启动调试器。因此,您需要一个.cmd包装器来调用rdebug-ide。

安装RubyDevKit for Windows应提供必要的包装器,但您也可以使用下面的行。 它基本上是这样的:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
GOTO :EOF
:WinNT
@ruby.exe "%~dpn0" %*

(这将使用PATH中的ruby.exe来执行名为.bat文件但没有扩展名的脚本。)

将它放在与rdebug-ide相同的位置,并将其命名为 rdebug-ide.bat 。 调整你的launch.json,使 pathToRDebugIDE 指向这个.bat文件(使用完整的Windows路径),并确保ruby在你的路径中。

我目前正在使用这个设置与cygwin安装ruby,rdebug-ide,rails等。