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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
24
0
40 257
17
Перейти к ответу Данный вопрос помечен как решенный

Ответы 17

Ответ принят как подходящий

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

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

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

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

Edward Tanguay 07.10.2008 12:58

Это все еще не показывает автозаполнение для встроенных функций PHP.

bruno.braga 31.01.2012 05:23

Большое спасибо! Это просто сделало мой день лучше.

Denis Lins 29.01.2013 21:41

Убедитесь, что файл открывается с помощью «редактора 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 функции автозаполнения как встроенных функций, так и материалов проекта.

bruno.braga 31.01.2012 05:24

Я решил эту проблему, включив индексатор 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 и нажмите ОК.

Marek Bar 14.07.2012 14:37

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

ВНИМАНИЕ

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

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

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

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

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

он работает для проекта eclipse, но когда я открываю отдельные файлы php с использованием eclipse, завершение кода не работает, как это сделать

n92 05.07.2011 08:35

Мне пришлось щелкнуть проект правой кнопкой мыши в проводнике 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 - спасибо!

SteveK 26.02.2012 00:20

Просто примечание, так как я использую более новую версию Eclipse: переход в свойствах проекта и проверка поля природы PHP исправили это для меня. По умолчанию он был настроен на Web (первичный) и js-характер. Я использую плагин Aptana Studio и версию Eclipse: 4.0.0.201206120848

Logan 26.08.2012 20:21

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

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

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