Подтвердить что ты не робот

Почему завершение кода Eclipse не работает над некоторыми проектами?

У меня есть Eclipse 3.3.2 с PDT, делающим PHP-разработку. Все проекты, которые я создаю, даже проекты SVN имеют завершение кода. Теперь я только что открыл еще один проект SVN, и у него нет кода завершения или шаблонов PHP (CTRL-space ничего не делает в этом проекте). Тем не менее, я могу открыть другие проекты и завершить их работу.

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

4b9b3361

Ответ 1

Возможно, Eclipse не понимает, что проект имеет "природу PHP". Попробуйте сравнить файл .project в обоих проектах, чтобы найти различия. Он должен содержать что-то вроде:

 <natures>
  <nature>org.eclipse.php.core.PHPNature</nature>
 </natures>

Файл .project будет находиться в вашей рабочей области в каталогах проектов.

Ответ 2

Посмотрите на файл .buildpath в вашем проекте... поставьте эту строку между тегом:

<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>

Сохраните его и перезапустите eclipse. Теперь все должно быть в порядке... Это сработало для меня.:)

Ответ 3

Спасибо! Я провел весь день, чтобы понять, почему у меня не было завершения кода...

Проблема заключается в том, что если вы создаете проект SVN,.project является базовым файлом без ссылки на codecompletion. Вам нужно создать базовый проект PHP и сравнить два файла и заменить отсутствующую часть в проекте SVN.

Теперь у меня есть завершение кода для каждого файла в проекте, даже для библиотеки Zend Framework

Ответ 4

Это только одна строка, которую нужно добавить в файл .project, а затем перезапустить eclipse, чтобы получить codecompletion: Где он говорит

---
 <natures>
 </natures>
---

после изменения должно быть

---
 <natures>
  <nature>org.eclipse.php.core.PHPNature</nature>
 </natures>
---

Это должно сделать.

Ответ 5

@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 с помощью существующего источника (вы можете выбрать его в мастере).

Ответ 6

У меня такая же проблема. Для меня это работает, чтобы перестроить проект PHP с помощью "Project" → "Clean".

Ответ 7

Если у вас есть эта проблема, выполните следующие действия:

  • Выберите "PHP Include Path" в дереве проектов
  • Щелкните правой кнопкой мыши по нему, затем нажмите "Путь сборки" > "Настроить путь сборки"
  • В открывшемся окне добавьте папку, которую вы хотите создать, чтобы она могла помочь с кодом.

Вот и все:) Надеюсь, он решает вашу проблему, я решил один:)

Ответ 8

Убедитесь, что файл открывается с помощью "PHP-редактора". Щелкните файл правой кнопкой мыши и выберите "открыть", чтобы выбрать правильный редактор.

Если окажется, что вы используете неправильный редактор, вы можете изменить связь в разделе "Настройки" Общие "Типы содержимого

Ответ 9

Щелкните правой кнопкой мыши на экране редактирования, перейдите в Java → Editor → Content Assist → Advanced... выберите соответствующие предложения

Ответ 10

ВНИМАНИЕ

Помимо уже упомянутых решений, чтобы помочь справиться с полной работой автозаполнения, есть еще одна особенность: она не может быть включена.

Перейдите в "Окно" > "Свойства", а затем в "PHP" > "Редактор" > "Кодовая помощь" (JAVA имеет аналогичный вариант) и установите "Включить автоматическую активацию", предпочтительно с задержкой, которую вы видите удобной (0 мс). Если вам побеспокоена программа, которая внезапно решила сделать что-то для вас без подсказки (и делать это неправильно), снимите флажок "Вставить отдельные предложения автоматически", и все будет в порядке.

Ответ 11

Иногда я замечал, когда вы проверяете проект из svn в eclipse (подрывная или подсеточная "проверка проекта как" ), и даже если вы проверяете его как проект php, он либо удалит файл .project, либо он будет быть общим проектом. Я нашел, что просто зашел в этот каталог и удалил .project.settings/и .cach/

Затем создайте новый проект php и укажите каталог, в котором вы проверили файлы. И вы должны иметь завершение кода, а svn должен быть ссылкой на ваше репо.

Ответ 12

У меня возникла проблема с тем, что путь сборки пуст, поэтому никакого завершения кода для каких-либо файлов, которые я пытался редактировать. Убедитесь, что вы правильно настроили свой путь сборки, особенно если вы связываете источник с каким-либо другим местом, кроме рабочей области.

Как например папка apache htdocs.

Ответ 13

Я решил это, включив Full C/С++ indexer (Windows- > properties → C/С++ → Indexer), а также ударил переключатель "Использовать конфигурацию активной кнопки". После этого Clean и Build all.

Это работало на Eclipse CDT 3.4

Ответ 14

Если вы пришли сюда в поисках завершения кода в php eclipse, он не работает, убедитесь, что ваш проект поддерживается как проект php. Щелкните правой кнопкой мыши по проекту, а затем перейдите к настройке → Добавить поддержку php. Если у вас есть правильные настройки для поддержки кода, он должен работать мгновенно. Иногда новичков, когда я настраиваю проекты или начинаю проекты как чистые, а не как php, поэтому затмение не знает, как относиться к проекту.

Ответ 15

Мне нужно было щелкнуть правой кнопкой мыши проект в PHP Explorer, перейдите к "PHP Build Path". Это было пусто. Я нажал "Добавить папку", установил флажок рядом с корневой папкой моего проекта и нажал "ОК", затем "ОК" еще раз.

После этого завершение кода, похоже, сработало. Должен просто работать из коробки, если вы спросите меня, но что бы то ни было.

Ответ 16

Проверьте lib вашего проекта. Возможно, у вас есть два таких файла jar, в которых один и тот же класс доступен или говорят, что один класс в коде можно переопределить в двух файлах jar. В этом случае также затмение перестает помогать коду, поскольку оно полностью запутано.

Лучший способ проверить это - перейти к файлу, в котором помощь не работает, и прокомментировать весь импорт там, а затем добавлять импорт по одному и проверять при каждом импорте, если работает служба кодов. Нетрудно найти класс с повторяющимися рефрексами.

Ответ 17

Одним из решений может быть включение фиктивного php файла, для которого требуются все ваши классы PHP. Таким образом, парсер PHP также распознает эти классы. Пример фиктивного файла:

if(false) {
     require_once 'class/one.php';
     require_once 'class/two.php';
     require_once 'class/three.php';
}