微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Visual Studio Code 中使用相同的键开始调试 R 或 Python 代码?

如何解决如何在 Visual Studio Code 中使用相同的键开始调试 R 或 Python 代码?

试图避免 XY 问题,这是我在非常高层次上的问题:我在 VS Code 工作区中使用 R 和 Python 代码文件,我经常需要调试其中一个。目前我保存了不同的调试启动配置,我需要手动在它们之间切换 - 这很痛苦。我想用 F5 来

  • 当编辑器在 .py 文件中处于活动状态时启动 Python 调试器
  • 当编辑器在 .R 文件中处于活动状态时启动 R 调试器

我看到很多技术方法可以做到这一点,但所有方法都有其障碍(其中一些可能只是糟糕的文档):

  1. 使用动态调试配置创建我自己的扩展,该配置确定活动编辑器的类型并启动正确的调试配置。 (需要付出很多努力。)
  2. 使用 "compound" 启动配置,同时启动 R 和 Python 启动配置,并停止除一个之外的所有配置。这可以通过对每个使用 "prelaunchTask" 来完成,但非零返回代码会创建我不喜欢的错误消息。
  3. 使用依赖于编辑器的键映射 ("when": "editorLangId == 'python'"),但是要启动哪个调试命令以及如何传递启动配置?有 vscode.startDebug 接受参数 (https://github.com/microsoft/vscode/issues/4615),但我无法对其进行键绑定。然后是 workbench.action.debug.start 似乎忽略了参数。然后还有 vscode.commands.executeCommand,我也无法对其进行键绑定。
  4. 使用多命令扩展将键绑定到诸如“设置调试配置,然后按 F5”之类的内容。但是怎么做呢? 等等等等

解决方法

经过一番折腾,这里有一个遵循想法 2 的解决方案:

settings.json(启动配置可以放入 launch.json):

{
    "debug.onTaskErrors": "abort","launch": {
        "compounds": [
            {
                "name": "Python/R: Current File","configurations": [
                    "Python: Current File","R: Current File",],},"configurations": [
            {
                "name": "Python: Current File","type": "python","preLaunchTask": "check_ext py","request": "launch",// ...
            },{
                "name": "R: Current File","type": "R-Debugger","preLaunchTask": "check_ext R",// ...
            }
        ],}

tasks.json

{
    "version": "2.0.0","tasks": [
        {
            "label": "check_ext py","type": "shell","command": "echo ${fileExtname} | grep -i ^.py$",{
            "label": "check_ext R","command": "echo ${fileExtname} | grep -i '^.R$'",}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。