vscode Выбор фрагментов Nest и добавление позиций табуляции к вариантам

Я хочу сделать что-то подобное в своих фрагментах кода Visual Studio:

"V.G.${1|BLOCK_NR,MASS_MM,MASS_360,I,J,K,R,FEEDRATE,FEEDRATE_SCALE,MERR[${2}]|}" Итак, после выбора опции MERR [] я увижу курсор внутри скобок.

и как мне управлять дополнительными вариантами, например:

"V.G.${1|choice${2|subchoiceA,subchoiceB|},choice, choice......}"

Если я выберу опцию MERR [], я перейду в [Курсор должен быть здесь]. Как я могу с этим справиться?


person Community    schedule 28.04.2020    source источник
comment
Вы тоже спрашиваете о сниппете subchoice? У меня есть обходной путь для этого, но в целом грамматика sniuppet допускает только простой текст в качестве вариантов выбора.   -  person Mark    schedule 01.06.2020
comment
Да, я тоже прошу подвыбор. каков ваш обходной путь?   -  person    schedule 03.06.2020


Ответы (1)


Вот обходной путь к вашему 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