Завершения, поступающие из completions/properties.py
, используются обработчиком пакета on_query_completions
, который используется Sublime для заполнения всплывающего окна автозаполнения. Таким образом, изменение содержимого там (и перезапуск Sublime для повторной загрузки пакета) изменит то, что предлагается во всплывающем окне автозаполнения (или то, что может быть автоматически выбрано как лучшее завершение, при правильных обстоятельствах).
("background", "background: ${1};"),
Указывает, что триггер автозаполнения background
должен расширяться до имени свойства, за которым следуют двоеточие и пробел, а курсор остается на ${1}
, поэтому что-то вроде back
Tab расширяется до background: |;
; это место для изменения, если вы хотите добавить или изменить эти виды завершений.
С другой стороны, ваша проблема заключается в том, что нажатие : - это то, что вызывает пространство для вставки. На самом деле это не то, что связано с автозаполнением, хотя это не совсем очевидно, если посмотреть на него.
Если вы включите ведение журнала команд (View > Show Console
, sublime.log_commands(True)
) и выполните указанные выше действия, когда вы нажимаете : , и вы видите это в консоли:
command: insert_snippet {"contents": ": $0;"}
Это признак того, что имеется привязка клавиш, которая делает это для вас. Использование View Package File
из палитры команд и фильтрация с помощью css3 keymap
позволят вам открыть CSS3/Default.sublime-keymap
, где первая привязка ключа - это то, что делает это:
{ "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": "selector", "operator": "equal", "operand": "meta.declaration-list.css, meta.at-rule.color-profile.block.css, meta.at-rule.counter-style.block.css, meta.at-rule.font-face.block.css, meta.font-feature-type-block.css, meta.at-rule.font-palette-values.block.css, meta.at-rule.page.block.css -meta.page-margin-box.css, meta.at-rule.viewport.block.css", "match_all": true },
{ "key": "selector", "operator": "not_equal", "operand": "meta.selector.css", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\}|$)", "match_all": true }
]
},
context
, примененный к этой привязке, обеспечивает что он срабатывает в этой конкретной ситуации и вручную запускает команду insert_snippet
, чтобы вставить для вас пробел и точку с запятой.
Чтобы не делать этого, скопируйте эту привязку из этого файла в свой собственный файл привязок клавиш и измените contents
, чтобы не включать пространство, которое вам не нужно.
Я не использую этот пакет, но на основе селекторов области действия в context
это может сработать в нескольких различных случаях, а не только в этом; во всех случаях это приведет к вставке пробела.
Если ваша мышечная память всегда вставляет пробел в ответ на ввод :
, то это не имеет большого значения; если это так, вам потребуется изменить скопированную привязку, чтобы изменить строки контекста selector
, чтобы они соответствовали только при редактировании свойства. Это может привести к тому, что Sublime выберет привязку вашего ключа в этом случае, но в других случаях откажется от привязки к пакету.