7

Есть ли какая-то конфигурация или плагин, который я могу использовать, чтобы добавить пробелы внутрь скобок, когда они совпадают. Вот пример того, что я пытаюсь объяснить.

if (^) // ^ represents cursor position
if ( ^ ) // Where I want the cursor to be positioned.

1 ответ1

8

Вы можете редактировать функцию автопары. Я скопировал следующее из «Привязки клавиш - по умолчанию» в «Привязки клавиш - пользователь». Добавьте пробелы в значениях contents . Вы можете сделать что-то подобное для квадратных и фигурных скобок. Первая настройка устанавливает его для нормального использования. Второй устанавливает его, когда у вас есть выделенный текст.

// Auto-pair brackets
{ "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": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
  ]
},
{ "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 }
  ]
},

Редактировать Чтобы сделать синтаксис привязки ключей специфичным, добавьте строку внизу значений context . Вам нужно будет найти синтаксис scopeName . Например, html - это text.html а sass - это source.sass .

{ "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": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true },
    { "key": "selector", "operator": "equal", "operand": "source.sass" }
  ]
},

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .