vscode:用户在调试启动配置中输入的命令

NSj*_*nas 4 visual-studio-code

我想做一些类似于本文档中概述的选择进程的操作,但我只想能够输入任何字符串:

{
    "name": "Attach to Process",
    "type": "node",
    "request": "attach",
    "processId": "${command:PickProcess}",
    "port": 9229
}
Run Code Online (Sandbox Code Playgroud)

是否有可以用来获取任何用户输入的命令?理想情况下,我可以做这样的事情:

{
  "name": "Launch Chrome Debug",
  "type": "chrome",
  "request": "launch",
  "url": "http://localhost:8080/?id=${command:UserInput}",
  "webRoot": "${workspaceRoot}",
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以在启动调试器时指定“id”参数。

Mar*_*ark 7

v1.30 添加了这个功能:在任务和调试期间输入变量

对于用户输入变量,我们引入了一个新的变量类别输入,其语法如下:${input:variableName}. 这种简单的语法不足以向最终用户呈现有意义的 UI,因此我们在 launch.json 和 tasks.json 中引入了一个新的输入部分,其中指定了额外的配置属性。

输入示例

以下是支持的属性列表:

id - 使用这些属性的相应变量名称。

type - 用户输入小部件的类型。在此版本中,支持 promptString(用于字符串 InputBox)和 pickString(用于字符串 Quick Pick)。

description - 向用户显示的描述性文本。

default - 如果用户只是按 Enter 时要使用的默认值。

第一个示例展示了如何在任务配置 (tasks.json) 中使用用户输入变量:

{
    "tasks": [
        {
            "label": "Echo input",
            "type": "shell",
            "command": "echo ${input:echoPrompt}"
        }
    ],
    "inputs": [
        {
            "id": "echoPrompt",
            "description": "Please enter a value",
            "default": "default echo text",
            "type": "promptString"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

另一个示例显示了用于在调试配置 (launch.json) 中的两个选项之间进行选择的用户输入变量:

{
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}/${input:pickProgram}"
        }
    ],
    "inputs": [
        {
            "id": "pickProgram",
            "description": "Select client or server",
            "type": "pickString",
            "options": ["client.js", "server.js"],
            "default": "client.js"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我们计划将用户输入变量与现有的基于命令的变量结合起来,以便用户输入变量可以由扩展提供。

  • 这很棒。对于第二个配置,我想知道是否有某种方法可以运行一个任务来保存最后一个输入(使用 `promptString` 时)然后更新输入默认值 (2认同)