这有效:
"color conditional": {
"prefix": "_hex",
"body": [
"let color = '${1};",
"let hex = '${1/(white)|(black)|(red)/${1:+#fff}${2:+#000}${3:+#f00}/}';" //works
],
"description": "conditional color"
},
但是,一旦我尝试使用默认占位符和选项,例如
"let color = '${1|white,black|}';", // does not work
显然,您不能对默认占位符值进行片段转换。请参阅有关占位符值问题的转换
我使用了更简单的if
变换样式,所以在这里:
${1/(white)|(black)|(red)/${1:+#fff}${2:+#000}${3:+#f00}
如果$[1}
在这种情况下存在组 1,white
则将该组 1替换为#fff
,如果组 2(black)
替换为#000
,等等。
你可以if/else
(white)
很容易地做到这一点。
"let hex = '${1/(white)/${1:?#fff:#000}/}';" // any non-`white` entry will print `#000`.
${1:?
=> 如果第 1 组(white)
打印 #fff
,否则打印#000
vscode 文档对这些条件替换不是很有帮助,如果您对它们的语法有更多疑问,请告诉我。