0

我正在尝试在 Visual Studio Code 中编写一个片段,输出如下内容:

console.log('variable: ', variable);

这很容易,就像:

 "Debug Labeled String": {
    "scope": "javascript",
    "prefix": "c,",
    "description": "Debug Labeled String",
    "body": [
      "console.log('$1', ${1})",
    ]
  }

一个问题是,如果我正在调试的字符串中有单引号,它就不再是有效的代码。所以我试图$1用任何内容替换第一个内容中的单引号。根据文档,您可以将转换应用于变量。但是,我不知道如何将转换应用于用户变量。

我试过了

"console.log('${1:/'//g}', $1);"

但这只是在字面上/'/代替 $1 输出。我还尝试过捕获所有输入并按编号引用该捕获组:

"console.log('${1:/'//g}', ${1:/(.*)});"

但这也不起作用。是否可以在 Visual Studio Code 中转换用户输入的结果?

4

1 回答 1

0

这对我有用:

"console.log('${1/'//g}', $1);",  

我刚刚删除了:使其成为没有默认值的占位符,并且占位符的转换很棘手。例如,这也有效:

 "console.log('${1/'//g}', ${1:default});"  // or
 "console.log('${1/'//g}', ${1:});"

我认为关键是您需要在某个地方使用未转换的占位符,然后转换将起作用。未转换的占位符可以在转换版本之前或之后。因此这不起作用:

"console.log('${1/'//g}', ${1:default/'//g});"  // the second transform does nothin

我还认为占位符转换存在一些错误。

于 2020-02-28T00:14:10.170 回答