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






Возможно, Eclipse не понимает, что проект имеет «PHP-природу». Попробуйте сравнить файл .project в обоих проектах, чтобы найти различия. Он должен содержать что-то вроде:
<natures>
<nature>org.eclipse.php.core.PHPNature</nature>
</natures>
Файл .project будет находиться в вашей рабочей области в каталогах проектов.
Это все еще не показывает автозаполнение для встроенных функций PHP.
Большое спасибо! Это просто сделало мой день лучше.
Убедитесь, что файл открывается с помощью «редактора PHP». Щелкните файл правой кнопкой мыши и выберите открыть с, чтобы выбрать нужный редактор.
Если окажется, что вы использовали не тот редактор, вы можете изменить ассоциацию в разделе Настройки »Общие» Типы контента
Иногда у меня такая же проблема. Для меня это работает, чтобы перестроить проект PHP с помощью «Проект» -> «Очистить».
Одним из решений может быть включение фиктивного файла php, для которого требуются все ваши классы PHP. Так что парсер PHP тоже распознает эти классы. Пример фиктивного файла:
if (false) {
require_once 'class/one.php';
require_once 'class/two.php';
require_once 'class/three.php';
}
Я иногда замечал, что когда вы проверяете проект из svn в eclipse (subversive или subsclipe «проверить проект как»), и даже если вы проверяете его как проект php, он либо удаляет файл .project, либо это будет общий проект. Я нашел, что просто зайдите в этот каталог и удалите .project .settings / и .cach /
Затем создайте новый проект php и укажите каталог, в котором вы извлекли файлы. И у вас должно быть завершение кода, а svn должен быть ссылкой на ваше репо.
Спасибо! Я потратил весь день, чтобы выяснить, почему у меня не было автозавершения кода ...
Проблема в том, что если вы создаете проект SVN, .project - это базовый файл без ссылки на завершение кода. Вам нужно создать базовый проект PHP и сравнить два файла и заменить недостающую часть в проекте SVN.
Теперь у меня есть автозавершение кода для каждого файла в проекте, даже для библиотеки Zend Framework.
У меня возникла проблема с тем, что путь сборки был пуст, поэтому не было завершения кода ни для одного из файлов, которые я пытался редактировать. Убедитесь, что вы правильно настроили свой путь сборки, особенно если вы связываете источник из другого места, а не из рабочей области.
Например, папка apache htdocs.
Щелкните правой кнопкой мыши на экране редактирования, перейдите к Java -> Editor -> Content Assist -> Advanced ... выберите предложения соответственно
Найдите в своем проекте путь к файлу .build ... поместите эту строку между тегами:
<buildpathentry kind = "con" path = "org.eclipse.php.core.LANGUAGE"/>
Сохраните его и перезапустите eclipse. Теперь все должно быть в порядке ... У меня это сработало. :)
Это, вместе с изменением .project, является недостающей частью для правильного отображения в Eclipse функции автозаполнения как встроенных функций, так и материалов проекта.
Я решил эту проблему, включив индексатор Full C / C++ (Windows-> properties -> C / C++ -> Indexer), а также нажав радиокнопку «Использовать активную конфигурацию кнопки». После этого очистите и соберите все.
Это работало на Eclipse CDT 3.4
Это всего лишь одна строка, которую нужно добавить в файл .project, а затем перезапустить eclipse, чтобы получить завершение кода: Где это говорит
---
<natures>
</natures>
---
после изменения должно быть
---
<natures>
<nature>org.eclipse.php.core.PHPNature</nature>
</natures>
---
Это должно сработать.
Да, это работает. Природу можно изменить из контекстного меню -> Свойства -> Свойства проекта -> выберите PHP и нажмите ОК.
Если вы пришли сюда в поисках завершения кода в php eclipse, который не работает, убедитесь, что ваш проект поддерживается как проект php. Щелкните правой кнопкой мыши проект и перейдите к настройке -> Добавить поддержку php. Если у вас есть правильные настройки для помощника по коду, он должен работать мгновенно. Иногда новички, как я, настраивают проекты или начинают проекты как чистые, а не как php, поэтому eclipse не знает, как относиться к проекту.
ВНИМАНИЕ
Помимо уже упомянутых решений, позволяющих заставить работать всю справку по автозаполнению, есть еще одна причуда: она может быть не включена.
Перейдите в «Окно»> «Свойства», а затем в «PHP»> «Редактор»> «Помощник по кодам» (в JAVA есть аналогичная опция) и установите «Включить автоматическую активацию», желательно с удобной для вас задержкой (0 мс). Если вас беспокоит, что программа внезапно решает что-то делать за вас без подсказки (и делает это неправильно), снимите флажок «Вставлять отдельные предложения автоматически», и все будет в порядке.
Если у вас возникла эта проблема, выполните следующие действия:
Вот и все :) Надеюсь, это решит вашу проблему, я решил свою :)
он работает для проекта eclipse, но когда я открываю отдельные файлы php с использованием eclipse, завершение кода не работает, как это сделать
Мне пришлось щелкнуть проект правой кнопкой мыши в проводнике PHP и перейти в «Путь сборки PHP». Это было пусто. Я щелкнул «Добавить папку», установил флажок рядом с корневой папкой моего проекта и нажал «ОК», затем снова «ОК».
После этого завершение кода, похоже, работало. Должно работать из коробки, если вы спросите меня, но неважно.
@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>
когда вы импортируете существующий проект, вы eclipse не генерируете файл .buildpath, но вы можете добавить его вручную или создать новый проект PHP с исходным кодом existin (вы можете выбрать в мастере).
Я как раз занимался этой проблемой (завершение кода для моих классов, но не ядра PHP) почти год, и я наконец сломал и исправил ее, благодаря вашему совету о .buildpath - спасибо!
Просто примечание, так как я использую более новую версию Eclipse: переход в свойствах проекта и проверка поля природы PHP исправили это для меня. По умолчанию он был настроен на Web (первичный) и js-характер. Я использую плагин Aptana Studio и версию Eclipse: 4.0.0.201206120848
Проверьте библиотеку вашего проекта. Возможно, вы включили два таких файла jar, в которых доступен один и тот же класс, или скажем, что на один класс в коде можно ссылаться в двух файлах jar. В этом случае eclipse также перестает помогать коду, поскольку он полностью запутан.
Лучший способ проверить это - перейти к файлу, в котором не работает помощник, и прокомментировать там весь импорт, чем добавлять импорт один за другим и проверять при каждом импорте, работает ли помощник кода или нет. Вы можете легко найти класс с повторяющимися ссылками. .
Поскольку в репозитории был файл .project, это не давало мне возможности открыть его с помощью мастера проектов PHP, мы удалили файл .project, перепроверили его, и теперь все в порядке, спасибо!