3

我想在我的 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[] 选项,我将跳转到 [Cursor should be here]。我该如何处理?

4

1 回答 1

3

这是您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通常的智能触发触发该识别,然后tab选择第二个片段。

只需要一两次额外的击键就可以让子选择在父选择元素内工作,否则根本无法完成。

唯一的问题是你的第二个前缀 - 这里subchoices不能是另一个没有空格的字符串的延续,否则它不会被 vscode 识别为独立的片段前缀。这就是为什么我subchoices在主代码段之前添加了空格,因为您的示例"V.G.${1....}在插入选项之前没有空格。

这是一个演示:

带有子选项的片段

于 2020-06-04T21:27:31.120 回答