Я использую Eclipse Helios (Eclipse Platform: 3.6.0.I20100608-0911, Eclipse IDE для разработчиков PHP: 1.3.0.20100617-0520) все время на OS X (Snow Leopard), и кажется, что у меня возникают проблемы только при редактировании файла PHP, который является частью платформы ведения блогов WordPress , Когда я перемещаю курсор к имени переменной или функции, это часто вызывает «пляжный мяч смерти». Я подозреваю, что Eclipse пытается найти эту переменную / функцию и по какой-то причине вызывает бесконечный цикл.
Иногда это не просто переменные или функции. Только сегодня я пытался заменить все вхождения строки в кавычках. Каждый раз, когда я нажимал "Заменить все", программа зависала сразу после замены строки и перемещения текстового курсора в положение замены. Я думаю, что перемещение текстового курсора важно, потому что я получил тот же результат, когда искал строку (таким образом, перемещая курсор), но НЕ, когда я искал несуществующую строку.
Я пытался отключить все в своих настройках, связанных с отмеченными вхождениями, зависанием, поддержкой кода и т.д. Ничего не помогает.
Я использую Eclipse для всех своих проектов и обнаруживаю, что это происходит только в проектах WordPress. Вот мой файл eclipse.ini:
-запускать
../../../plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.0.v20100503
-товар
org.eclipse.epp.package.php.product
--launcher.defaultAction
открыть файл
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
открыть файл
-vmargs
-Dosgi.requiredJavaVersion = 1,5
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:PermSize = 128m
-XX:MaxPermSize = 128m
-XX:MaxGCPauseMillis = 10
-XX:MaxHeapFreeRatio = 70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold = 5
-Xms128m
-Xmx512m
-Xss2m
-Xdock: значок = ../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-фреймворк
../../../plugins/org.eclipse.osgi.services_3.2.100.v20100503.jar
У меня 4 ГБ ОЗУ, поэтому я не знаю, в чем проблема, я недоиспользую свои ресурсы. Вот что я вижу снова и снова в журнале ошибок:
!ENTRY org.eclipse.jface 2 0 2011-01-16 16:26:21.533
!СООБЩЕНИЕ Возникли конфликты связывания клавиш. Они могут мешать нормальной работе акселератора.
!SUBENTRY 1 org.eclipse.jface 2 0 2011-01-16 16:26:21.533
!СООБЩЕНИЕ Возник конфликт для ALT+COMMAND+ QP:
Связывание (ALT+COMMAND+ QP,
ParameterizedCommand (Команда (org.eclipse.ui.views.showView, Показать представление,
Показывает конкретный вид,
Категория (org.eclipse.ui.category.views, Views, Команды для открытия представлений, true),
org.eclipse.ui.handlers.ShowViewHandler @ 2a46d1,
[Lorg.eclipse.ui.internal.commands.Параметр; @ 18f50c2,, true), [Lorg.eclipse.core.commands.Параметризация; @ 1ff1855),
org.eclipse.ui.defaultAcceleratorConfiguration,
org.eclipse.ui.contexts.window ,, какао, система)
Связывание (ALT+COMMAND+ QP,
ParameterizedCommand (Команда (org.eclipse.ui.views.showView, Показать представление,
Показывает конкретный вид,
Категория (org.eclipse.ui.category.views, Views, Команды для открытия представлений, true),
org.eclipse.ui.handlers.ShowViewHandler @ 2a46d1,
[Lorg.eclipse.ui.internal.commands.Параметр; @ 18f50c2,, true), [Lorg.eclipse.core.commands.Параметризация; @ 96b40c),
org.eclipse.ui.defaultAcceleratorConfiguration,
org.eclipse.ui.contexts.window ,, какао, система)!ENTRY org.eclipse.core.net 1 0 2011-01-16 16:26:22.217
!СООБЩЕНИЕ Системное свойство http.proxyHost было установлено на 127.0.0.1 внешним источником. Это значение будет перезаписано с использованием значений из настроек!ENTRY org.eclipse.core.net 1 0 2011-01-16 16:26:22.217
!СООБЩЕНИЕ Системное свойство http.proxyPort было установлено на 8888 из внешнего источника. Это значение будет перезаписано с использованием значений из настроек!ENTRY org.eclipse.core.net 1 0 2011-01-16 16:26:22.218
!СООБЩЕНИЕ Системное свойство https.proxyHost было установлено на 127.0.0.1 внешним источником. Это значение будет перезаписано с использованием значений из настроек!ENTRY org.eclipse.core.net 1 0 2011-01-16 16:26:22.219
!СООБЩЕНИЕ Системное свойство https.proxyPort было установлено на 8888 из внешнего источника. Это значение будет перезаписано с использованием значений из настроек
Я экспериментировал с конкретным сценарием, который доставлял мне неприятности. Это гибрид HTML и PHP, поэтому Eclipse должен выполнять проверку HTML и PHP. Я подумал, что проверка HTML как-то связана с этим, поэтому я создал новый файл, скопировал его содержимое и перепутал с элементом doctype. Я обнаружил, что если бы я заменил правильно сформированный элемент doctype XHTML 1.0 Strict на общий тип документа (как таковой: <!DOCTYPE html>), тогда я не остановил программу, просто переместив курсор.
Я установил все правила проверки HTML на "Игнорировать", но это все равно не решило мои проблемы. Сейчас я просто собираюсь повторить doctype с использованием PHP, а не вводить его буквально. Это, кажется, предотвращает сбои. Я заметил, что когда я перемещаю курсор по документу, Eclipse отображает "xpath" в моем текущем местоположении в нижней части экрана. Иногда происходит задержка, пока он выясняет мой текущий путь. Возможно, при проверке на соответствие строгому типу документа возникают проблемы с быстрым вычислением xpath при перемещении курсора? Возможно, у него переполнение стека, что приводит к его падению.