我正在尝试在SublimeText中创建一个JavaScript箭头函数片段。当我键入一个打开的括号时,它应该可用:(
.我希望能够按 Tab 键创建这个:
() => {}
启用自动匹配(我通常喜欢的功能(后,我不知道如何避免这种情况:
() => {})
这是我到目前为止的代码,除了自动匹配问题外,它运行良好:
<snippet>
<content><![CDATA[
(${1}) => {$2}
]]></content>
<tabTrigger>(</tabTrigger>
<scope>source.js</scope>
</snippet>
代码段只能插入文本或替换所选文本 - 它们不能修改文档中其他位置的文本,即使是文本插入符号旁边的文本。我认为实现您想要的最好方法是使用键绑定,当按下 ( 时,它将优先于默认的auto_match_enabled
行为(这也是一个键绑定(,并获取键绑定以插入代码段,避免需要单独的.sublime-snippet
文件。
{
"keys": ["(", "tab"], "command": "insert_snippet", "args": { "contents": "(${1}) => {$2}" }, "context":
[
{ "key": "selector", "operator": "equal", "operand": "source.js" }
]
},
请注意,如果希望代码段仍显示在命令面板Snippet:
选项中,则可以保留.sublime-snippet
文件而不会产生任何负面影响 - 键绑定将优先于代码段中定义的选项卡触发器。