Solución:
Configuración y lanzamiento
- Instale el complemento VS Code Ruby (pegar ⌘+⇧+PAG y escriba
ext install
en el mensaje, luego busqueruby
) - Instale algunas gemas de Ruby necesarias
gem install ruby-debug-ide
gem install debase
- Agregar una configuración de lanzamiento en Visual Studio Code (ejemplo de configuración que se muestra a continuación)
{
"name": "Rails server",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/bin/rails",
"env": {
"PATH": "YOUR_PATH_HERE",
"GEM_HOME": "YOUR_GEM_HOME_HERE",
"GEM_PATH": "YOUR_GEM_PATH_HERE",
"RUBY_VERSION": "YOUR_RUBY_VERSION_HERE"
},
"args": [
"server"
]
}
En algunos casos, es posible que no necesite especificar el
env
sección. En otros casos, puede iniciar VS Code usando la CLI (es decir, desde la terminal), que en algunos sistemas establece automáticamente las variables de entorno correctas.
- ¡Correr!
Solución de problemas
Si recibe el siguiente error
Debugger terminal error: Process failed: spawn rdebug-ide ENOENT
Tus variables de entorno (env
) probablemente no estén configurados y el complemento no pueda encontrar los binarios necesarios.
- Asegúrese de que todas las gemas estén instaladas e intente ejecutar
bundler install --binstubs
si usa bundler. - Asegúrate que
env
se establece en su configuración de lanzamiento. Ejecute el siguiente comando de shell para generar suenv
:
printf "n"env": {n "PATH": "$PATH",n "GEM_HOME": "$GEM_HOME",n "GEM_PATH": "$GEM_PATH",n "RUBY_VERSION": "$RUBY_VERSION"n}nn"
Ventanas
Asegúrese de utilizar la ortografía correcta (y las mayúsculas) del path
variable, es decir Path
en Windows
Fuentes:
- https://github.com/rubyide/vscode-ruby/issues/214#issuecomment-393111908
- https://www.reddit.com/r/vscode/comments/5w1acs/getting_error_debugger_terminal_error_process/
- ¿Cómo extender $ PATH en launch.json en Visual Studio Code?
Pasé la mayor parte del día tratando de resolver esto.
Terminé eliminando mi configuración de launch.json a lo siguiente:
"configurations": [
{
"name": "Rails server",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "/Users/mitch/.rvm/gems/[email protected]_portal/bin/rails",
"args": [
"server"
],
"useBundler": true,
"pathToRDebugIDE": "/Users/mitch/.rvm/gems/[email protected]_portal/gems/ruby-debug-ide-0.6.1",
"pathToBundler": "/Users/mitch/.rvm/gems/[email protected]_portal/wrappers/bundle",
"showDebuggerOutput": true
}
]
En primer lugar, especialmente si está usando RVM y tiene diferentes Gemsets, asegúrese de que sus caminos sean consistentes con el Gemset correcto.
Lo que resolvió el problema para mí fue pathToBundler.
which bundle
/Users/mitch/.rvm/gems/[email protected]_portal/bin/bundle
Parece haber alguna incompatibilidad en la configuración de la ruta del paquete binstubs (que se muestra arriba) y el paquete al que apunta desde / wrappers / (que se muestra a continuación), por lo que cambia pathToBundler a:
"pathToBundler": "/Users/mitch/.rvm/gems/[email protected]_portal/wrappers/bundle",
resuelve el problema.
Aquí hay una especie de discusión relacionada:
https://github.com/rails/rails/issues/31193
que habla de binstubs aunque no específicamente VSCode y depuración.