触发SublimeText自定义代码段时如何省略(或删除)自动匹配的括号



我正在尝试在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文件而不会产生任何负面影响 - 键绑定将优先于代码段中定义的选项卡触发器。

最新更新