我正在尝试编写一个片段,以使JavaScript中的案例样式语句更快。现在我有了这个,它可以正常工作:
"long if-else": {
"scope": "javascript,typescript,html",
"prefix": "ie",
"body": [
"if ( $2 ) {\n\n} ${1/(.)/else if ( ) {\n\n} /g}else {\n\n}\n"
]
}
通过在第一个制表符之后输入n个字符并再次点击制表符,您可以在开头的if和结束else之间插入0或多个else if语句。
我希望用户(me)能够指定要放在方括号内的值(例如myVar =
)。我尝试设置一个要在转换后求值的变量,但尚未将其作为变量读取。
答案 0 :(得分:1)
您不能在转换的替换部分中放置Tabstop或其他变量。
如果希望每个if / else块包含不同的变量,则必须使用不同的方法,例如:
if (myVar == ) {
} else if (myVar == a) {
} else if (myVar == b) {
} else if (myVar == c) {
} else if (myVar == d) {
} else {
}
在生成其他if块之前,您必须首先列出这些变量。尝试以下代码段:
"long if-else": {
"scope": "javascript,typescript,html",
"prefix": "ie",
"body": [
"if (myVar = $2) {\n",
"${1/(\\w+)(,\\s*|\\b)/} else if (myVar = $1) {${2:?\n\n:\n}/g}",
"} else {",
"",
"}",
"$3"
]
},
以下是演示如何输入变量的演示:
https://github.com/jens-maus/node-ical/blob/HEAD/index.js#L87
您输入每个myVar作为逗号分隔的列表,然后输入 Tab 。尽管没有更多复杂性,但它无法处理零情况。
答案 1 :(得分:0)
我不太确定您要寻找的(可能是这样的)
"long if-else": {
"scope": "javascript,typescript,html",
"prefix": "ie",
"body": [
"if ( ${myVar} ) {\n\n} ${1/(.)/else if ( ) {\n\n} /g}else {\n\n}\n"
]
}
使用这种方式,用户(您)将拥有
if ( myVar ) {
} else {
}