Как я могу опустить (или удалить) автоматически совпадающую скобку при запуске пользовательского фрагмента SublimeText?
Я пытаюсь создать фрагмент функции стрелки JavaScript в SublimeText. Он должен быть доступен, когда я набираю открытый paren: (
. Я хочу иметь возможность tab, чтобы создать это:
() => {}
С включенным автоматическим соответствием (функция, которая мне нравится, обычно), я не могу понять, как этого избежать:
() => {})
Вот код, который у меня есть до сих пор, который отлично работает, за исключением проблемы автоматического соответствия:
<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
без каких - либо негативных последствий-привязка клавиш будет иметь приоритет над триггером tab, определенным во фрагменте кода.