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

У меня 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».

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

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

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'; }