Код Visual Studio предоставляет API-интерфейс, поэтому сторонние расширения и встроенные модули могут предлагать варианты всплывающих окон с автозаполнением.В настоящее время система спроектирована таким образом, что предложения просто добавляются - нет обнаружения или удаления дубликатов (возможно, потому что расширения могут также позаботиться о сортировке предложений, и такой алгоритм будет на подходе).Это означает, что если у вас есть несколько расширений или модулей для данного языка, вы можете легко получить дубликаты записей.
Наличие нескольких расширений для PHP не обязательно является плохой идеей, поскольку они могут удовлетворять различные потребности (например,PHP DocBlocker просто создает аннотации, он не предоставляет подсказки для автозаполнения), но у вас есть как минимум два расширения (PHP Intelephense и PHP Intellisense), которые выполняют абсолютно одинаковые действия.Это может снизить производительность (все ваши файлы рабочей области будут сканироваться несколько раз) и просто добавить шум.
Я предлагаю вам внимательно прочитать описания расширений, чтобы узнать, что именно они делают, а затем выяснить, какие из них вам нужны.Помните, что расширения могут быть включены / отключены для каждой рабочей области.
Следующее - только мое собственное субъективное мнение.Среди расширений PHP, которые обеспечивают интеллектуальный анализ кода, только два из них кажутся достаточно зрелыми:
- PHP Intelephense
- PHP Intellisense
Я пробовал оба.PHP Intelephense работает лучше для меня, чем PHP Intellisense, так что это тот, который я сохранил.Я также отключил php.suggest.basic
, следуя инструкциям по установке , потому что основные предложения не добавили мне значения (они были слепыми совпадениями):
Отключить *Настройка 1022 * для достижения наилучших результатов.
... а также прирученная встроенная поддержка Emmet, которая предоставляла действительно глупые предложения:
"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFilesOnly"
YMMV.