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

StackOverflow https://stackoverflow.com/questions/177569

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Обратите внимание на file .buildpath в вашем проекте...поместите эту строку между тегом:

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

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

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

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

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

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

---
 <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 с помощью & Quot; Project & Quot; - GT &; & Quot; Clean Quot &;.

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

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

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

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

Если окажется, что вы использовали не тот редактор, вы можете изменить ассоциацию в Предпочтения & # 187; Генерал & # 187; Типы контента

Щелкните правой кнопкой мыши на экране редактирования, перейдите на Java - > Редактор - & Gt; Помощник по контенту - & Gt; Дополнительно ... выберите предложения соответственно

ВНИМАНИЕ

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

Перейдите в Window > Properties, а затем в PHP > Editor> Code Assist (в JAVA есть аналогичная опция) и установите "Включить автоматическую активацию", желательно с задержкой, которую вы считаете удобной (0 мс).Если вас беспокоит, что программа внезапно решает что-то сделать за вас без запроса (и делает это неправильно), снимите флажок "Автоматически вставлять отдельные предложения", и все будет в порядке.

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

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

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

Например, в папке apache htdocs.

Я решил эту проблему, включив индексатор Full C / C ++ (Windows - > свойства - > C / C ++ - > Indexer), а также установил переключатель quot; Использовать активную конфигурацию кнопок " ;. После этого очистите и соберите все.

Это сработало в Eclipse CDT 3.4

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

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

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

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

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

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

if(false) {
     require_once 'class/one.php';
     require_once 'class/two.php';
     require_once 'class/three.php';
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top