ruby-on-rails - VSCode 将调试 shell 更改为 Windows 上的 bash

标签 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 来执行配置:

Debugger terminal error: Process failed: spawn 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"]
    }
}

最佳答案

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

安装适用于 Windows 的 RubyDevKit 应该提供必要的包装器,但您也可以使用下面的行。 它基本上看起来像这样:

@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​​ 在您的 PATH 中。

我目前正在将此设置与 cygwin 安装的 ruby​​、rdebug-ide、rails 等一起使用。

关于ruby-on-rails - VSCode 将调试 shell 更改为 Windows 上的 bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42956983/

相关文章:

ruby-on-rails - 从 Rails 应用程序中的 gem 重载 CSS 文件

linux - 使用 pscp 在 Raspberry Pi 上传输文件

c# - SignalR 服务在启动时崩溃

c++ - Windows 限制中的共享内存 (c++)

ruby-on-rails - 在点击下载 CSV 链接时需要 Active Admin 重定向到登录页面

ruby-on-rails - 在Rails 3中的Flash消息中呈现局部

ruby-on-rails - Ruby On Rails 脚手架需要包含外键吗?

ruby - 无法从 ruby​​ 数组中删除 NaN

ruby - 清除实例变量的方法的命名约定

ruby - 为什么这会导致无限循环?