Плохое автозаполнение в SublimeText3 при нажатии табуляции в массиве PHP

Я использую SublimeText3.

Когда я работаю в array в PHP, автодополнение, предлагаемое нажатием Tab, меня полностью раздражает.

Я просто хочу добавить несколько таблиц, но каждый раз, когда я нажимаю Tab, сублимтекст предлагает мне:

array(<list>)
Create a PHP Array.

Если просто нажать Tab еще раз, он подтвердит предложение и запишет в файл <list>.

Я установил эти плагины:

{
    "installed_packages":
    [
        "Alignment",
        "ApacheConf.tmLanguage",
        "BracketHighlighter",
        "Comment-Snippets",
        "Comments Aware Enter",
        "eZ Publish Syntax",
        "HTML5",
        "jQuery",
        "LESS",
        "SublimeCodeIntel",
        "sublimelint",
        "Symfony2 Snippets",
        "Theme - Soda",
        "Twig"
    ]
}

Если кто-то знает, как отключить это плохое предложение или исправить его?

Спасибо.


person kaal    schedule 16.12.2013    source источник
comment
Раньше у меня были проблемы с пакетами и автозаполнением. Похожие, но не такие же. Я не думаю, что у меня есть какой-либо из пакетов, которые есть у вас, но в итоге я удалил один или два, пока они не исчезли. Поскольку вы знаете, какие из них у вас есть, вы можете просто попробовать удалить один или два, посмотреть, сохраняется ли проблема, и повторять, пока она не исчезнет. Кроме того, вы, вероятно, получите лучшие результаты от возвышенных форумов, так как они сосредоточены только на этом программном обеспечении и не все программы.   -  person Jonathan Kuhn    schedule 16.12.2013
comment
У меня нет ответа для вас, но это вызвано SublimeCodeIntel. Как вы заметили, это невероятно расстраивает.   -  person John Blackbourn    schedule 31.12.2013
comment
Меня тоже очень это бесит. У меня нет лучшего предложения, чем, может быть, вместо того, чтобы пытаться избавиться от этого (поскольку это кажется почти невозможным), а вместо этого переопределить эту функциональность чем-то другим или более полезным? Я понятия не имею, как или что может это сделать, но просто взглянув на это под другим углом, поможет ли это предотвратить появление этого «списка». Или, возможно, кто-нибудь может объяснить, что должен делать ‹list›, и, может быть, я просто использую его неправильно.   -  person solepixel    schedule 01.01.2014
comment
Так счастлив, что это спросили и ответили. У меня день, полный массивов, и быстро развивающаяся ярость, связанная с массивами/вкладками. Умиротворенность!   -  person Tim Ogilvy    schedule 09.05.2014


Ответы (2)


Обновление от 29.01.14

На Github кто-то нашел лучшее решение, чем то, которое я опубликовал ранее. Новое решение.

Откройте папку your_packages/SublimeCodeIntel/codeintel2/tree_php.py и добавьте массив в массив игнорирования всплывающей подсказки вокруг строки 140.

php_ignored_calltip_expressions = ("if", "elseif",
                                   "for", "foreach",
                                   "while",
                                   "switch",
                                   "array"
                                   )

Старое решение

Я нашел временное решение на github.

Закомментируйте или удалите строки 100 и 101 в SublimeCodeIntel/codeintel2/tree_php.py.

"array": "array(<list>)\n"
"Create a PHP array.",

Затем удалите папку ~/.codeintel в пользовательском каталоге в OS X, не зная, где находится этот кеш в Windows.

person Matthew Nie    schedule 02.01.2014
comment
где находится SublimeCodeIntel/codeintel2/tree_php.py? нигде не могу найти - person Claire; 16.01.2014
comment
Если вы используете OSX, вы можете попробовать ~/Library/Application Support/Sublime Text 3/Packages/SublimeCodeIntel/libs/codeintel2/tree_php.py - person Jason McClellan; 26.01.2014
comment
В Win7 я нашел файл в SublimeCodeIntel/libs/codeintel2/. Я удалил строки и удалил .codeintel, но это не помогло. - person Mihai Scurtu; 29.01.2014
comment
Я плачу на коленях. - person sepehr; 07.06.2014
comment
В Sublime Text 3 пакеты устанавливаются как бинарные (через Package Control), поэтому это решение не работает. - person aaronbauman; 11.11.2014
comment
@aaronbauman Я установил это через управление пакетами, вышеуказанное изменение будет работать, оно просто требует переопределения изменений при получении обновления. Это боль, но она решает проблему, которая, я думаю, стоит того. - person Matthew Nie; 16.12.2014
comment
@MatthewNie спасибо - в конце концов я понял, как вручную загрузить исходный код пакета и реализовать это изменение. Пожалуйста, обратитесь к сопровождающим, чтобы они объединили этот запрос на извлечение! github.com/SublimeCodeIntel/SublimeCodeIntel/pull/390 - person aaronbauman; 16.12.2014

Только начал использовать Sublime Text 3, и эта проблема не дает мне покоя уже пару недель. Даже с «auto_complete_commit_on_tab»: false и «tab_completion»: false, он сохранялся. В итоге я заглянул на форумы Sublime и нашел эту тему, который предлагает вам добавить этот код в ваши привязки клавиш:

{ "keys": ["tab"], "command": "insert", "args": {"characters": "\t"}, "context":
    [
        { "key": "auto_complete_visible" },
        { "key": "setting.tab_completion", "operator": "equal", "operand": false }
    ]
}

По сути, он переназначает вашу клавишу табуляции, чтобы вызвать вкладку, вместо того, чтобы позволить автозаполнению фрагмента работать.

person Paul B.    schedule 23.12.2013
comment
Это решение полезно, но оно деактивирует все мои автозаполнения, и я просто хочу деактивировать это конкретное автозаполнение, а не все. - person kaal; 24.12.2013
comment
Спасибо Спасибо спасибо! Это сводило меня с ума. Следует отметить, что tab_completion: false все еще должен быть установлен, чтобы это работало. - person Lukas; 26.08.2014