У меня Eclipse 3.3.2 с PDT, занимающимся разработкой PHP. Все проекты, которые я создаю, даже проекты SVN имеют завершение кода. Теперь я только что открыл еще один проект SVN, и у него нет кода завершения или шаблонов PHP (CTRL-space ничего не делает в этом проекте). Тем не менее, я могу открыть другие проекты и завершить их работу.
Почему завершение кода и шаблоны будут «выключены» только в одном проекте и как я могу его снова включить?
Возможно, Eclipse не понимает, что проект имеет «природу PHP». Попробуйте сравнить файл .project в обоих проектах, чтобы найти различия. Он должен содержать что-то вроде:
<natures> <nature>org.eclipse.php.core.PHPNature</nature> </natures>
Файл .project будет находиться в вашей рабочей области в каталогах проектов.
Посмотрите на файл .buildpath в вашем проекте … поставьте эту строку между тегом:
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
Сохраните его и перезапустите eclipse. Теперь все должно быть в порядке … Это сработало для меня. 🙂
Спасибо! Я провел весь день, чтобы понять, почему у меня не было завершения кода …
Проблема в том, что если вы создаете проект SVN, .project является базовым файлом без ссылки на codecompletion. Вам нужно создать базовый проект PHP и сравнить два файла и заменить отсутствующую часть в проекте SVN.
Теперь у меня есть завершение кода для каждого файла в проекте, даже для библиотеки Zend Framework
Это просто одна строка для добавления в файл .project, а затем перезапуск eclipse, чтобы получить codecompletion: где он говорит
--- <natures> </natures> ---
после изменения должно быть
--- <natures> <nature>org.eclipse.php.core.PHPNature</nature> </natures> ---
Это нужно делать.
@Guido PHPNature не исправляет это.
@Edward Tanguay Да, это потому, что, когда вы создаете новый проект PHP, eclipse добавляет файл .buildpath с
<?xml version="1.0" encoding="UTF-8"?><buildpath> <buildpathentry kind="src" path=""/> <buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/></buildpath>
при импорте существующего проекта вы затмение не генерируете файл .buildpath, но вы можете добавить его вручную или создать новый проект PHP с существующим источником (вы можете выбрать в мастере).
Иногда у меня такая же проблема. Для меня это работает, чтобы перестроить проект PHP с помощью «Project» -> «Clean».
Если у вас есть эта проблема, выполните следующие действия:
Thats all 🙂 Надеюсь, что он решает вашу проблему, я решил мой 🙂
Убедитесь, что файл открывается с помощью «редактора PHP». Щелкните файл правой кнопкой мыши и выберите « открыть», чтобы выбрать правильный редактор.
Если окажется, что вы используете неправильный редактор, вы можете изменить ассоциацию в разделе « Настройки» »Общие» Типы содержимого
Щелкните правой кнопкой мыши на экране редактирования, перейдите в Java -> Editor -> Content Assist -> Advanced … выберите соответствующие предложения
ВНИМАНИЕ
Помимо уже упомянутых решений, чтобы получить всю работу автозаполнения, есть еще одна особенность: она не может быть включена.
Перейдите в «Окно»> «Свойства», а затем в «PHP»> «Редактор»> «Кодовая помощь» (JAVA имеет аналогичный вариант) и установите «Включить автоматическую активацию», предпочтительно с задержкой, которую вы видите удобной (0 мс). Если вам побеспокоена программа, которая внезапно решила сделать что-то для вас без подсказки (и делать это неправильно), отмените выбор «Вставить отдельные предложения автоматически», и все будет в порядке.
Иногда я замечал, когда вы проверяете проект из svn в eclipse (подрывная или подсеточная «проверка проекта как»), и даже если вы проверяете его как проект php, он либо удалит файл .project, либо будет общим проект. Я нашел, что просто зашел в этот каталог и удалил .project .settings / и .cach /
Затем создайте новый проект php и укажите каталог, в котором вы проверили файлы. И у вас должно быть завершение кода, а svn должно быть ссылкой на ваше репо.
У меня возникла проблема с тем, что путь сборки пуст, поэтому никакого кода для каких-либо файлов, которые я пытался отредактировать, не было. Убедитесь, что вы правильно настроили свой путь сборки, особенно если вы связываете источник с каким-либо другим местом, кроме рабочего пространства.
Например, например, папка apache htdocs.
Я решил это, включив Full C / C ++ indexer (Windows-> properties -> C / C ++ -> Indexer), а также ударил переключатель «Использовать конфигурацию активной кнопки». После этого «Очистите» и «Постройте все».
Это работало над Eclipse CDT 3.4
Если вы пришли сюда, ища завершение кода в php eclipse не работает, убедитесь, что ваш проект поддерживается как проект php. Щелкните правой кнопкой мыши по проекту, а затем перейдите к настройке -> Добавить поддержку php. Если у вас есть правильные настройки для поддержки кода, он должен работать мгновенно. Иногда новичков, когда я настраиваю проекты или начинаю проекты как чистые, а не как php, поэтому затмение не знает, как относиться к проекту.
Я должен был щелкнуть правой кнопкой мыши проект в Проводнике PHP, перейдите к «PHP Build Path». Это было пусто. Я нажал «Добавить папку», установил флажок рядом с корневой папкой моего проекта и нажал «ОК», затем «ОК» еще раз.
После этого завершение кода, похоже, сработало. Должно просто работать из коробки, если вы спросите меня, но что угодно.
Проверьте lib вашего проекта. Возможно, у вас есть два таких файла jar, в которых один и тот же класс доступен или говорят, что один класс в коде можно переопределить в двух файлах jar. В этом случае также затмение перестает помогать коду, так как оно полностью запутано.
Лучший способ проверить это – перейти к файлу, в котором помощь не работает, и прокомментировать весь импорт там, а затем добавить импорт один за другим и проверить при каждом импорте, если работает служба кодов. Нетрудно найти класс с дублирующими рефренсами ,
Одним из решений может быть включение фиктивного php-файла, для которого требуются все ваши классы PHP. Таким образом, парсер PHP также распознает эти классы. Пример фиктивного файла:
if(false) { require_once 'class/one.php'; require_once 'class/two.php'; require_once 'class/three.php'; }