Так что получается, что виноват, вероятно, ваш плагин PHP Completions Kit. Я разветвил код на Github, если вы хотите продолжить.
Вы можете заполнить раскрывающийся список автозаполнения в Sublime, создав в формате JSON .sublime-completions
< /а> файл. По сути, это длинный список фрагментов со связанными триггерами, имена которых отображаются в раскрывающемся списке и сопоставляются методом нечеткого поиска на основе того, что вы вводите. Все завершения имеют область действия, поэтому они появляются только в нужных частях вашего кода: например, вы бы не хотели, чтобы стандартные имена функций появлялись, когда вы пытаетесь определить класс и т. д.
Вернемся к плагину. Для нескольких файлов автодополнения область действия была создана с использованием отрицательных селекторов: начиная с source.php
(базовая область действия для всего PHP-кода) и вычитая нежелательные области видимости. После анализа Sublime завершения будут отображаться где угодно, кроме случаев, когда они явно запрещены. Пример из function.sublime-completions
:
"scope": "source.php - variable.other - meta.function.arguments - support.class - entity.other.inherited-class - meta.use - meta.catch - comment.block.documentation.phpdoc"
Таким образом, это были все места, где автор не хотел показывать эти дополнения. К сожалению, в этих нескольких файлах он/она забыл включить область видимости string
, поэтому завершения появлялись, когда вы вводили строки, что явно нежелательно. К счастью, это легко исправить: просмотрите все файлы дополнений, проверьте области видимости на наличие отрицательных селекторов и добавьте к ним - string
. Теперь они будут работать точно так же, как и раньше, за исключением того, что завершения не будут отображаться ни в какой строке.
Как я уже сказал выше, я разветвил проект здесь и внес необходимые исправления. Я также отправил запрос на включение, так что посмотрим, будет ли/ когда это будет принято в основную кодовую базу. А пока не стесняйтесь клонировать мой репозиторий в свой каталог Packages
:
Нажмите Preferences -> Browse Packages...
, чтобы открыть каталог Packages
. Перейдите в этот каталог через командную строку, затем запустите
git clone https://github.com/MattDMo/sublime-phpck.git "PHP Completions Kit"
Это клонирует репозиторий в папку с именем PHP Completions Kit
, перекрывая папку, установленную Package Control. Следите за страницей управления пакетами плагина, и когда вы увидите Modified
изменение поля с 2014-09-05
(это во всплывающей подсказке, если навести курсор мыши на текст 3 weeks ago
) на более поздний, проверьте репозиторий, чтобы увидеть, был ли это мой запрос на вытягивание, который был объединен и выпущена новая версия, а затем вы можете смело удалять новую папку в Packages
и просто придерживайтесь версии Package Control, так как я не буду обновлять репозиторий при любых новых изменениях пакета.
Обновлять
Мой запрос на извлечение был объединен, а управление пакетами обновлено.
26.09.2014
"auto_complete_selector": source - comment - string, meta.tag - punctuation.definition.tag.begin"
. Это должно делать свое дело. 01.10.2014