说我的代码是这样的:
datatype type_name =
| a of ()
| b of ()
... // more
每次按Tab键都可以生成| ${place_holder} of ()
对吗?
我目前的片段是:
<snippet>
<content><![CDATA[
datatype ${1:type_name} =
| ${2} of (${3})
${4}
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>dat</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.ats</scope>
</snippet>
但是如你所见,那么用户第4次点击了标签页,我无法生成另一个| of ()
对。
答案 0 :(得分:0)
这是一个使用替换的(不优雅的)黑客攻击。选择第四个字段时,可按任意多次按空格键。
<snippet>
<content><![CDATA[
datatype ${1:type_name} =
| ${2} of (${3})
${4:(spacebar)}
${4/ /| a of ()\n\t/g}
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>dat</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.python</scope>
</snippet>
通过$ PARAM环境变量可以实现更优雅的解决方案:您可以将整数传递给insertSnippet,并使用它通过上面显示的替换示例构造替换文本。文档是here,但遗憾的是,它没有提供有关$ PARAM的信息。 This post还提供了有关如何传递参数的有用示例。