Для чего-то подобного вам нужна привязка клавиш, например:
{
"keys": [" "],
"command": "insert_snippet",
"args": {
"contents": " $0 "
},
"context": [
// { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
],
}
Команда insert_snippet
вставляет фрагмент, содержащий два пробела с курсором в центре между ними, а context
Записи делают привязку активной только в том случае, если нет выделения, текст перед курсором заканчивается на (
, а текст, следующий за курсором, начинается на )
.
. Как написано, это всегда будет активнов этой ситуации, но при желании вы также можете раскомментировать первую запись контекста, что дополнительно ограничивает эту привязку активностью только при включенной настройке auto_match_enabled
.Это сделало бы его активным только в тех случаях, когда ввод одного символа (
автоматически вставил бы символ сопряжения.