具有不同变量的多个 if/else 语句:vscode 片段

multiple if/else statements with different variables: vscode snippet

我正在尝试编写一个片段以更快地在 JavaScript 中生成 case 样式的语句。现在我有这个,而且有效:

    "long if-else": {
        "scope": "javascript,typescript,html",
        "prefix": "ie",
        "body": [
            "if (  ) {\n\n} ${1/(.)/else if ( ) {\n\n} /g}else {\n\n}\n"
        ]
    }

它允许您在开始 if 和结束 else 之间插入 0 个或更多 else if 语句,方法是在第一个 tab 后输入 n 个字符并再次点击 tab。

我希望用户(我)能够指定一个值放在括号内(如 myVar =)。我已经尝试设置一个变量在转换后进行评估,但它还没有被读取为一个变量。

我不太确定你要找的(可能)是这样的

"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 {

 }

不能将制表位或其他变量放入转换的替换部分。

如果您希望每个 if/else 块包含不同的变量,则必须使用不同的方法,例如:

if (myVar == ) {

} else if (myVar == a) {

} else if (myVar == b) {

} else if (myVar == c) {

} else if (myVar == d) {

} else {

}

您必须先列出这些变量,然后再生成每个 else if 块。试试这个片段:

"long if-else": {
  "scope": "javascript,typescript,html",
  "prefix": "ie",
  "body": [

    "if (myVar = ) {\n",

    "${1/(\w+)(,\s*|\b)/} else if (myVar = ) {${2:?\n\n:\n}/g}",

    "} else {",
    "",
    "}",
    ""
  ]
},

这里有一个演示,可以了解如何输入变量:


您输入每个 myVar 作为逗号分隔的列表,然后 Tab。尽管没有更多的复杂性,但它不处理零案例。