首页 > 解决方案 > VS Code launch.json 变量正则表达式替换

问题描述

在 launch.json 我有一个为当前文件运行 mocha 的调试配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Mocha Current File",
            "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
            "args": [
                "--timeout",
                "999999",
                "--colors",
                "${file}"
            ],
            "console": "integratedTerminal",
            "internalConsoleOptions": "neverOpen"
        }   
    ]
}

我正在使用 typescript 并且 ts 文件位于文件夹 src/... 根目录中,而 test.js 文件位于文件夹根目录 dist/... 我想打开 ts 文件,运行调试 mocha 配置并重写src 路径到 dist 路径。

几乎在那里遇到了以下内容:“dist/${relativeFileDirname}/${fileBasenameNoExtension}.js”

但 relativeFileDirname 仍然包含 src/... 作为根。我需要做一个正则表达式替换。

扩展命令变量或多或少有我需要的东西,但它执行目录向上模式,而我需要目录向下模式,即它可以采用 src/folder1/folder2 并返回 src/folder1,而我想要 folder1/folder2。

标签: visual-studio-code

解决方案


你可以使用extension.commandvariable.transform命令。

  "inputs": [
    {
      "id": "down1Dir",
      "type": "command",
      "command": "extension.commandvariable.transform",
      "args": {
        "text": "${relativeFileDirname}",
        "find": ".*?/(.*)",
        "replace": "$1",
      }
    }
  ]

推荐阅读