VS 代码片段 |占位符 + 转换



>目标

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

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

我想要以下结果:

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

然后我输入:"我很绝望"。[选项卡]

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

快到了!!

我得到的最接近的是这个:

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

但我得到了一个副本。

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

"${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 问题:占位符转换。 如果正在处理支持默认/选择变量转换的工作,则无话可说。

最新更新