Вот обходной путь к вашему subchoiceA/B
вопросу, потому что у вас не может быть ничего, кроме простого текста, в качестве вариантов выбора - без табуляции, подвыбора и т. Д. Ваш пример:
V.G.${1|choice${2|subchoiceA,subchoiceB|},choice, choice......}"
Однако этого можно достичь с помощью 2 фрагментов:
"choices with subchoices": {
"prefix": "_choices", // whatever prefix you want
"body": [
"V.G.${1|choice1, _subchoices,choice2,choice3|}"
],
"description": "variables in a choice element"
},
"my subchoice list": {
"prefix": "_subchoices", // this prefix must be what you used in the main snippet
// as your subchoice option
"body": [ "${1|subchoiceA,subchoiceB|}" ],
"description": "subChoices"
},
Что происходит, когда вы выбираете опцию subchoices
в основном фрагменте, он видит его как префикс для второго фрагмента - это довольно удобно. Но этого не произойдет, пока вы не активируете это распознавание с помощью Ctrl + Space обычного триггера intellisense, а затем tab для выбора второго фрагмента.
Достаточно одного или двух дополнительных нажатий клавиш, чтобы подвыборы работали внутри родительского элемента выбора, когда в противном случае это невозможно сделать вообще.
Единственная проблема заключается в том, что ваш второй префикс - здесь subchoices
не может быть продолжением другой строки без пробелов, иначе vscode не распознает его как отдельный префикс фрагмента. Вот почему я добавил пробел перед subchoices
в основном фрагменте, поскольку в вашем примере "V.G.${1....}
без пробела перед вставкой параметра.
Вот демонстрация:
person
Mark
schedule
04.06.2020
subchoice
? У меня есть обходной путь для этого, но в целом грамматика sniuppet допускает только простой текст в качестве вариантов выбора. - person Mark   schedule 01.06.2020