VS 代码片段 |占位符 + 转换
VS Code Snippet | Placeholder + Transform
目标
我找不到创建以下代码段的方法:
[
"${1:SECTION NAME/(.*)/${1:/upcase}/}",
"====================================\n[=10=]"
]
我想要以下结果:
<selection>SECTION NAME</selection>
====================================
然后我输入:"i am hopeless"。 [TAB]
I AM HOPELESS
====================================
<selection />
快到了!!
我得到的最接近的是:
[
"${1/(.*)/${1:/upcase}/} ${1:SECTION NAME}",
"====================================\n[=13=]"
]
但是我得到了一个副本。
只是为了避免一些挫折,占位符转换 not 在 default 或 choice 语法上工作。如:
"${1:foo/(.*)/:/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。没有关于支持 default/choice 变量转换的工作正在进行中的消息。
目标
我找不到创建以下代码段的方法:
[
"${1:SECTION NAME/(.*)/${1:/upcase}/}",
"====================================\n[=10=]"
]
我想要以下结果:
<selection>SECTION NAME</selection>
====================================
然后我输入:"i am hopeless"。 [TAB]
I AM HOPELESS
====================================
<selection />
快到了!!
我得到的最接近的是:
[
"${1/(.*)/${1:/upcase}/} ${1:SECTION NAME}",
"====================================\n[=13=]"
]
但是我得到了一个副本。
只是为了避免一些挫折,占位符转换 not 在 default 或 choice 语法上工作。如:
"${1:foo/(.*)/:/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。没有关于支持 default/choice 变量转换的工作正在进行中的消息。