【问题标题】:Debugging Rails under ASDF in VSCodeVSCode 中 ASDF 下的 Rails 调试
【发布时间】:2022-06-29 19:17:57
【问题描述】:

我正在尝试在 Mac 上的 VSCode 中的 Rails 应用程序中设置断点。我正在使用 ASDF 安装 Ruby 等。

VSCode for Rails 中的默认启动配置如下所示:

{
    "name": "Rails server",
    "type": "Ruby",
    "request": "launch",
    "program": "${workspaceRoot}/bin/rails",
    "args": [
        "server"
    ]
}

这失败了,因为我的which rails 是Users/timregan/.asdf/shims/rails。但是,如果我将 launch.json 中的 "program": "${workspaceRoot}/bin/rails" 替换为 "program": "/Users/timregan/.asdf/shims/rails",我会在尝试启动调试会话时收到此错误消息:

未捕获的异常:/Users/timregan/.asdf/shims/rails:3:未知的正则表达式选项 - hbrw 执行 /opt/homebrew/opt/asdf/libexec/bin/asdf ex... ^~~~~~~~~ /Users/timregan/.asdf/shims/rails:3:语法错误,意外的局部变量或方法,期待“do”或“{”或“(” .../opt/asdf/libexec/bin/asdf exec "rails" "$@" ... ^~~~ /Users/timregan/.asdf/installs/ruby/3.0.3/bin/rdebug-ide:25:in `load' /Users/timregan/.asdf/installs/ruby/3.0.3/bin/rdebug-ide:25:in `'

在使用 ASDF 时,在 VSCode 的 launch.json 中使用什么设置来调试 Rails 的正确设置是什么?

【问题讨论】:

    标签: ruby-on-rails visual-studio-code vscode-debugger asdf-vm


    【解决方案1】:

    这是由于 ruby​​ 将 .asdf 或 user.name 中的 . 解释为正则表达式并弄乱了路径。

    解决它的方法是添加 binstubs 以用 {workspaceFolder}/bin/rspec 包装可执行文件 (.../.asdf/.../rspec) 的真实路径

    bundle binstubs bundler ruby-debug-ide solargraph rspec-core
    

    以及用于引用 shimed 可执行文件的 binstub:

          "program": "${workspaceFolder}/bin/rspec",
          "pathToRDebugIDE": "/${workspaceFolder}/bin/rdebug-ide",
          "pathToBundler": "${workspaceFolder}/bin/bundle",
    

    来源:在本文中找到解决方案,您可以在其中逐步设置项目 + launch.json:

    https://dev.to/abstractart/easy-way-to-setup-debugger-and-autocomplete-for-ruby-in-visual-studio-code-2gcc

    向作者致敬

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      相关资源
      最近更新 更多