несколько операторов if / else с разными переменными: фрагмент vscode - PullRequest
1 голос
/ 05 апреля 2020

Я пытаюсь написать фрагмент кода, чтобы сделать операторы типа case в 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"
        ]
    }

это позволяет вам вставлять 0 или более операторов if между открывающим if и закрывающим остальным, вводя n символов после первой вкладки и снова нажимая tab.

Я бы хотел, чтобы пользователь (я) мог указать значение go в скобках (например, myVar =). Я попытался установить переменную, которая будет оцениваться после преобразования, но она не была прочитана как переменная.

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Вы не можете поместить табуляцию или другую переменную внутри замещающей части преобразования.

Вам нужно использовать другой подход, если вы хотите, чтобы каждый блок if / else содержал свою переменную, например:

if (myVar == ) {

} else if (myVar == a) {

} else if (myVar == b) {

} else if (myVar == c) {

} else if (myVar == d) {

} else {

}

Вы должны сначала перечислить эти переменные, прежде чем генерировать друг друга, если блок. Попробуйте этот фрагмент:

"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"
  ]
},

Вот демонстрация, чтобы увидеть, как вы вводите переменные:

enter image description here


Вы введите каждый из myVar в виде списка через запятую, а затем Tab . Он не обрабатывает нулевой случай, хотя без каких-либо дополнительных сложностей.

0 голосов
/ 05 апреля 2020

Я не очень уверен, что это то, что вы ищете (может быть), как это

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

 }
...