Как можно опустить (или удалить) круглые скобки автоматического соответствия при запуске пользовательского фрагмента SublimeText?
Я пытаюсь создать фрагмент функции стрелки JavaScript в SublimeText. Это должно быть доступно, когда я набираю открытое имя: (
, Я хочу иметь возможность вкладки для создания этого:
() => {}
С включенным автоматическим соответствием (функция, которая мне нравится, обычно), я не могу понять, как этого избежать:
() => {})
Вот код, который у меня есть, который отлично работает, за исключением проблемы с автоматическим соответствием:
<snippet>
<content><![CDATA[
(${1}) => {$2}
]]></content>
<tabTrigger>(</tabTrigger>
<scope>source.js</scope>
</snippet>
1 ответ
Фрагменты могут только вставлять текст или заменять выделенный текст - они не могут изменять текст в любом месте документа, даже рядом с текстовой кареткой. Я думаю, что лучший способ добиться того, чего вы хотите, это использовать связывание клавиш, которое будет иметь приоритет над заданным по умолчанию. 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
файл без каких-либо негативных последствий - связывание клавиш будет иметь приоритет над триггером вкладки, определенным во фрагменте.