Я использую Visual Studio Code, в основном для работы с PHP. Каждый раз, когда я ударил ., IntelliSense запускает и предлагает мне глобальные PHP-функции и функции, начиная с $_COOKIE
, Я обычно знаю, какой глобальный или функцию я хочу, так что это немного раздражает. Это даже происходит, когда я в пределах блока комментариев (/* ... */
или же // ...
), что гораздо более раздражает. Большая часть моего времени уходит на возвращение и удаление $_COOKIE
,
Пример (не PHP, но вы поняли):
Я пытался отключить его как предложено в документах:
// Controls if quick suggestions should show up while typing
"editor.quickSuggestions": false,
// Controls if suggestions should be accepted with "Enter" - in addition to "Tab". Helps to avoid ambiguity between inserting new lines and accepting suggestions.
"editor.acceptSuggestionOnEnter": true,
// Controls the delay in ms after which quick suggestions will show up.
"editor.quickSuggestionsDelay": 10000,
// Enable word based suggestions
"editor.wordBasedSuggestions": true
… но это абсолютно не имеет никакого эффекта. Я все еще получаю список, когда я попал в точку. Задержка увеличения от 100
в 1000
тоже не имеет никакого эффекта.
Обновить: Как уже упоминалось Вот, отключение быстрых подсказок для триггерных символов достигается с помощью:
// Controls if suggestions should automatically show up when typing trigger characters
"editor.suggestOnTriggerCharacters": false
Тем не менее, другие варианты, упомянутые выше, по-прежнему ничего не делают.
Обновление 2: это можно связываться с . переплет добавив это к keybindings.json
файл:
{
"key": ".",
"command": "x",
}
Однако это приводит к появлению предупреждающего сообщения в верхней части экрана с надписью «команда« x »не найдена». Если вы оставите это поле пустым или попытаетесь передать значение null command
, он по-прежнему не работает, так как не перезаписывает привязку ключа по умолчанию. Согласно документации, можно отключить определенное действие, добавив к нему префикс -
, но это не работает для меня:
"command": "-^acceptSelectedSuggestion"
или же
"command": "-acceptSelectedSuggestion"
В любом случае, acceptSelectedSuggesdtion
на самом деле не команда, которая выполняется, когда я ударил ., это, вероятно, больше похоже на:
"command": "-editor.action.triggerSuggest"
Но это тоже не работает.
Примерно с марта или апреля 2017 года это было исправлено, а также значение по умолчанию было изменено, и в комментариях не было автозаполнения. По умолчанию это:
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": false
},
Я не указал это явно в моих настройках, а просто провел тест со свежим файлом PHP, и я могу напечатать global.
затем пробел, и не получайте ничего автоматически завершенного. (Я пробовал как основной код, так и в комментариях.) Я вижу $COOKIE
всплывающее окно в качестве первого предложения, но мне нужно использовать стрелки вверх / вниз, а затем ввести, чтобы ввести его.
Ага, global.
тогда ENTER дает мне global.$COOKIE
(даже в комментариях, что немного странно). Я могу это исправить с помощью:
"editor.acceptSuggestionOnEnter": "off",
Чтобы увидеть другие настройки, к которым вы можете прикоснуться, перейдите на страницу настроек и введите «предложение» в поле поиска. Каждый комментируется. Например. "editor.suggestOnTriggerCharacters": false,
полностью избавляется от авто-предложений.
Вы также можете указать настройки только для одного языка, например,
"[php]": {
"editor.suggestOnTriggerCharacters": false,
},
Несмотря на Даррен Кук ответ и документы, editor.quickSuggestions
настройки ничего не делают для предложений, которые появляются из-за триггерных символов (увидеть этот вопрос на GitHub). Похоже, что они подчиняются своим собственным правилам. А именно, при вводе символа триггера в строке вы никогда получить предложения, независимо от того, что вы сказали в editor.quickSuggestions
; и при вводе символа триггера в комментарии или «другой», вы всегда получить предложения, независимо от того, что вы сказали в editor.quickSuggestions
,
Таким образом, единственный надежный способ избавиться от того, что я называю «предложениями триггерных символов» (которые на сегодняшний день являются самым раздражающим видом!), Это использовать параметр, специально предназначенный для этого:
"editor.suggestOnTriggerCharacters": false
Если кто-то может оставить комментарий о том, как узнать, какие символы запуска являются, или, что еще лучше, как их указать, я бы с радостью отредактировал свой ответ, чтобы учесть это.
Обратите внимание, что всплывающие подсказки появляются из-за фактического сопоставления вводимых символов с известными модулями, переменными, функциями и т. Д., являются все еще контролируется editor.quickSuggestions
а также не от editor.suggestOnTriggerCharacters
,