Sublime Text Key Binding - приложение пробел между круглыми скобками при нажатии пробела - PullRequest
0 голосов
/ 20 ноября 2018

Я добавил привязку клавиш, которая ставит селектор в круглые скобки, когда я нажимаю "(" в SublimeText.

{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "(${0:$SELECTION})"}, "context":
  [
    { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
    { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
  ]
},

Однако я хотел бы создать привязку клавиш, которая превращает (|) в(|) когда я нажимаю пробел и я нахожусь между скобками.

Есть идеи?

1 Ответ

0 голосов
/ 22 ноября 2018

Для чего-то подобного вам нужна привязка клавиш, например:

{
    "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.Это сделало бы его активным только в тех случаях, когда ввод одного символа ( автоматически вставил бы символ сопряжения.

...