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

24
задан Edward Tanguay 20 January 2011 в 07:32
поделиться

13 ответов

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

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

.project файл будет в Вашей рабочей области под каталогами проекта.

42
ответ дан dev_musings 28 November 2019 в 22:32
поделиться

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

if(false) {
     require_once 'class/one.php';
     require_once 'class/two.php';
     require_once 'class/three.php';
}
-1
ответ дан powtac 28 November 2019 в 22:32
поделиться

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

Как апачская htdocs папка, например.

0
ответ дан Vanja 28 November 2019 в 22:32
поделиться

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

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

0
ответ дан Brendon-Van-Heyzen 28 November 2019 в 22:32
поделиться

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

, Если оказывается использованием неправильного редактора можно изменить ассоциацию под Предпочтения В» Общий В» Типы контента

1
ответ дан Sietse 28 November 2019 в 22:32
поделиться

У меня иногда есть та же проблема. Для меня это работает для восстановления проекта PHP с "Проектом"-> "Чистый".

3
ответ дан Joe Scylla 28 November 2019 в 22:32
поделиться

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

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

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

5
ответ дан 28 November 2019 в 22:32
поделиться

Щелкните правой кнопкой на экране редактирования, goto Java-> Редактор->, Содержание Помогает-> Усовершенствованный... выбирают предложения соответственно

1
ответ дан 28 November 2019 в 22:32
поделиться

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

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

6
ответ дан 28 November 2019 в 22:32
поделиться

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

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

0
ответ дан 28 November 2019 в 22:32
поделиться

Это может быть сделано, но это немного глупо IMO

        Dictionary<string,string> dictionary = new Dictionary<string, string>();
        Dictionary<string, string>.Enumerator enumerator = dictionary.GetEnumerator();
        for (int i = 0; i < attributeValues.Count;i++ )
        {
            KeyValuePair<string, string> current = enumerator.Current;
            //do something usefull
            enumerator.MoveNext();
        }

единственная вещь, приобретенная этим (довольно бесполезным) индексом, и если это является фактической целью, то вам лучше обслужить что-то подобное:

        int currentIndex = 0;
        foreach (KeyValuePair<string, string> keyValuePair in dictionary)
        {
            //do something usefull
            currentIndex++;
        }
-121--4144658-

Если вы не определяете сам DAO как транзакционный

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

С пружиной вы достигаете этого очень легко. Без него можно снова включить логику транзакций в DAO, т.е. dao.beginTransaction () и dao.commitTransaction () , и использовать ее с уровня обслуживания.

Насколько я понимаю, использование EntityManager непосредственно в классах служб, вероятно, лучше, чем использование класса DAO . Я не согласен по одной причине. При работе с классом DAO (интерфейс в лучшем случае) в классах услуг зависимость от API JPA отсутствует. Нет необходимости создавать объекты Query или «лайки». Это может оказаться не большим преимуществом, но вы согласитесь, что это лучшая практика. А позже можно переключиться на обычный JDBC, простой текст, XML или что угодно, только изменив DAO.

Это, хотя и широко используется в качестве примера того, почему вы должны абстрагироваться что-то в другом слое, чаще всего просто overdesign. Но иногда тот факт, что все ваши операции доступа к базе данных проходят через одно место, означает, что вы можете добавить ведение журнала, проверки уровня доступа и т.д. (Да, иногда DAO не является особенно подходящим способом для этого).

Так что в конечном счете, вернуться к своей точке - это зависит.

-121--1190780-

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

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

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

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

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

5
ответ дан 28 November 2019 в 22:32
поделиться

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

0
ответ дан 28 November 2019 в 22:32
поделиться

ВНИМАНИЕ

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

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

1
ответ дан 28 November 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: