首页 > 解决方案 > 启动配置片段中的变量

问题描述

我的 launch.json 片段有问题。当我使用它时,它会从变量名中丢失${} 。

片段如下所示:

    "Robot Framework: Launch selected test": {
        "prefix": "Robot Framework: Launch selected test",
        "body": [
            "{",
            "    \"type\": \"robotframework-lsp\",",
            "    \"name\": \"Robot Framework: Launch selected test\",",
            "    \"request\": \"launch\",",
            "    \"cwd\": \"${workspaceFolder}\",",
            "    \"target\": \"${file}\",",
            "    \"terminal\": \"none\",",
            "    \"env\": {},",
            "    \"args\": [\"-t\",\"${selectedText}\"],",
            "    \"internalConsoleOptions\": \"openOnSessionStart\"",
            "}"
        ],
        "description": "Robot Framework: Launch selected test"
    }

当我粘贴它时,它看起来像这样:

    {
        "type": "robotframework-lsp",
        "name": "Robot Framework: Launch selected test",
        "request": "launch",
        "cwd": "workspaceFolder",
        "target": "file",
        "terminal": "none",
        "env": {},
        "args": ["-t", "selectedText"],
        "internalConsoleOptions": "openOnSessionStart"
    }

美元符号和括号在cwdtargetargs行中丢失。有什么办法可以防止这种形式发生吗?

标签: jsonvisual-studio-codecode-snippets

解决方案


@rioV8 回答了我的问题。来自 vscode 文档的答案:

要在粘贴的脚本中有一个变量,您需要转义 $variable 名称的“$”,以便片段扩展阶段不会对其进行解析。

    "Robot Framework: Launch selected test": {
        "prefix": "Robot Framework: Launch selected test",
        "body": [
            "{",
            "    \"type\": \"robotframework-lsp\",",
            "    \"name\": \"Robot Framework: Launch selected test\",",
            "    \"request\": \"launch\",",
            "    \"cwd\": \"\\${workspaceFolder}\",",
            "    \"target\": \"\\${file}\",",
            "    \"terminal\": \"none\",",
            "    \"env\": {},",
            "    \"args\": [\"-t\",\"\\${selectedText}\"],",
            "    \"internalConsoleOptions\": \"openOnSessionStart\"",
            "}"
        ],
        "description": "Robot Framework: Launch selected test"
    }

推荐阅读