VS代码段|占位符+转换

时间:2019-02-05 01:55:38

标签: visual-studio-code code-snippets

目标

我找不到创建以下代码段的方法:

[
    "${1:SECTION NAME/(.*)/${1:/upcase}/}",
    "====================================\n$0"
]

我想要以下结果:

<selection>SECTION NAME</selection>
====================================

然后输入:“我无可救药”。 [TAB]

I AM HOPELESS
====================================
<selection />

快到了!

我最近得到的是:

[
    "${1/(.*)/${1:/upcase}/} ${1:SECTION NAME}",
    "====================================\n$0"
]

但是我得到了副本。

1 个答案:

答案 0 :(得分:2)

为了节省一些挫败感,占位符转换不能用于默认或选择语法。如:

"${1:foo/(.*)/$1:/upcase}/}"
"${2:|foo,bar|/(.*)/{1:/upcase}/}",

当没有默认值或选择值时,它们会起作用。所以下面的工作:

 "${3/(.*)/${1:/upcase}/}",

此外,如果默认变量没有在初始制表位处转换,但后来在以后的使用中转换,则可以使用默认变量。所以下面的工作:

  "${4:SECTION NAME}",      
  "${4/(.*)/${1:/upcase}/}",

或者相反也可以:

  "${3/(.*)/${1:/upcase}/}",
  "${3:SECTION NAME}",   

因此,您可以提供一个默认值,但是只有在另一个引用相同的制表位的情况下,它才能被转换。

请参阅讨论vscode issues: placeholder transforms。如果正在进行有关支持默认/选择变量转换的工作,那就没话说了。