Eclipse зависает при копировании / вставке в файлы JavaScript - PullRequest
17 голосов
/ 18 августа 2010

Я запускал Eclipse Helios 3.6 с использованием IDE Java / CFEclipse и обнаружил некоторые очень странные и отягчающие ошибки при попытке редактировать файлы Javascript.После того, как файл .js достигнет определенного размера (~ 250 строк кода), Eclipse будет случайным образом зависать, когда я пытаюсь выбрать, скопировать или вставить выбранные варианты или сохранить.Нажатие после начала зависания приведет к тому, что строка «источник редактирования файла ... справка» будет удалена, а повторный щелчок приведет к появлению сообщения «не отвечает» окна, отображаемого в заголовке программы.Затем зависание проходит через 5-10 секунд ожидания.Это относится ко всем файлам JavaScript, которые я пытаюсь отредактировать, хотя более короткие файлы не зависают так долго и не вызывают сообщение «(не отвечает)».

Я думал, что это былопроблема с опциями проверки / автозаполнения Javascript, и соответственно отключили их;Однако проблема с копированием-вставкой все еще сохраняется.Я также пробовал Javascript IDE - та же проблема.Это проблема с обработкой Eclipse Javascript, точка?Кто-нибудь еще получил такие ошибки?И если это принципиально проблема Eclipse, сможет ли кто-нибудь предложить лучший редактор Javascript / Coldfusion?

РЕДАКТИРОВАТЬ: для получения дополнительной информации, вывод журнала из последнего зависания:

!ENTRY org.eclipse.wst.jsdt.ui 4 2 2010-08-18 11:25:54.699
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.wst.jsdt.ui".
!STACK 0
java.lang.NullPointerException
    at org.eclipse.wst.jsdt.internal.compiler.lookup.ArrayBinding.getExactMethod(ArrayBinding.java:233)
    at org.eclipse.wst.jsdt.internal.compiler.lookup.Scope.findExactMethod(Scope.java:401)
    at org.eclipse.wst.jsdt.internal.compiler.lookup.Scope.getMethod(Scope.java:1813)
    at org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:307)
    at org.eclipse.wst.jsdt.internal.compiler.ast.Expression.resolve(Expression.java:477)
    at org.eclipse.wst.jsdt.internal.compiler.ast.Block.resolve(Block.java:89)
    at org.eclipse.wst.jsdt.internal.compiler.ast.ForStatement.resolve(ForStatement.java:280)
    at org.eclipse.wst.jsdt.internal.compiler.ast.Block.resolve(Block.java:89)
    at org.eclipse.wst.jsdt.internal.compiler.ast.ForStatement.resolve(ForStatement.java:280)
    at org.eclipse.wst.jsdt.internal.compiler.ast.Block.resolve(Block.java:89)
    at org.eclipse.wst.jsdt.internal.compiler.ast.IfStatement.resolve(IfStatement.java:191)
    at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:337)
    at org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:139)
    at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:291)
    at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:362)
    at org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:394)
    at org.eclipse.wst.jsdt.core.dom.JavaScriptUnitResolver.resolve(JavaScriptUnitResolver.java:859)
    at org.eclipse.wst.jsdt.core.dom.JavaScriptUnitResolver.resolve(JavaScriptUnitResolver.java:527)
    at org.eclipse.wst.jsdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:862)
    at org.eclipse.wst.jsdt.core.dom.ASTParser.createAST(ASTParser.java:647)
    at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider$1.run(ASTProvider.java:581)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:574)
    at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:509)
    at org.eclipse.wst.jsdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:150)
    at org.eclipse.wst.jsdt.internal.ui.viewsupport.SelectionListenerWithASTManager$3.run(SelectionListenerWithASTManager.java:135)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

!ENTRY org.eclipse.wst.jsdt.ui 4 0 2010-08-18 11:25:54.824
!MESSAGE Error in JSDT Core during AST creation
!STACK 0
java.lang.NullPointerException
    at org.eclipse.wst.jsdt.internal.compiler.lookup.ArrayBinding.getExactMethod(ArrayBinding.java:233)
    at org.eclipse.wst.jsdt.internal.compiler.lookup.Scope.findExactMethod(Scope.java:401)
    at org.eclipse.wst.jsdt.internal.compiler.lookup.Scope.getMethod(Scope.java:1813)
    at org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:307)
    at org.eclipse.wst.jsdt.internal.compiler.ast.Expression.resolve(Expression.java:477)
    at org.eclipse.wst.jsdt.internal.compiler.ast.Block.resolve(Block.java:89)
    at org.eclipse.wst.jsdt.internal.compiler.ast.ForStatement.resolve(ForStatement.java:280)
    at org.eclipse.wst.jsdt.internal.compiler.ast.Block.resolve(Block.java:89)
    at org.eclipse.wst.jsdt.internal.compiler.ast.ForStatement.resolve(ForStatement.java:280)
    at org.eclipse.wst.jsdt.internal.compiler.ast.Block.resolve(Block.java:89)
    at org.eclipse.wst.jsdt.internal.compiler.ast.IfStatement.resolve(IfStatement.java:191)
    at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:337)
    at org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:139)
    at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:291)
    at org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:362)
    at org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:394)
    at org.eclipse.wst.jsdt.core.dom.JavaScriptUnitResolver.resolve(JavaScriptUnitResolver.java:859)
    at org.eclipse.wst.jsdt.core.dom.JavaScriptUnitResolver.resolve(JavaScriptUnitResolver.java:527)
    at org.eclipse.wst.jsdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:862)
    at org.eclipse.wst.jsdt.core.dom.ASTParser.createAST(ASTParser.java:647)
    at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider$1.run(ASTProvider.java:581)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:574)
    at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:509)
    at org.eclipse.wst.jsdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:150)
    at org.eclipse.wst.jsdt.internal.ui.viewsupport.SelectionListenerWithASTManager$3.run(SelectionListenerWithASTManager.java:135)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Ответы [ 3 ]

14 голосов
/ 24 января 2015

Для меня решением было отключить эту опцию ...

Настройки / JavaScript / Редактор / Набор текста {При вставке} / Обновление импорта

7 голосов
/ 12 марта 2013

Хорошо, я думаю, что нашел решение для грубой силы. Я вошел в windows> предпочтения> javascript> [все подменю] и просто снял галочку с столько вещей, сколько смог снять. Я сделал это пару недель назад, и с тех пор он зависал только один раз (я думаю, что это было не связано, так как мне пришлось принудительно выйти через 5 минут).

3 голосов
/ 30 декабря 2014

Впервые встретился как Eclipse зависает при копировании / вырезке для файлов JavaScript и https://github.com/Nodeclipse/nodeclipse-1/issues/159

Текущее резюме:

  • имеет значение: большой проект может вызвать зависание Eclipse JSDT (это старая проблема, так как @andreialecu собрала https://github.com/Nodeclipse/nodeclipse-1/issues/159#issuecomment-68098716)
  • молоток 100% решение состоит в том, чтобы удалить JsNature для этого одного проекта
  • более тонким является отключение только некоторых функций JSDT
    Window>Preferences>JavaScript>Editor>Mark Occurrences а может даже Window->Preferences->General->Editors->Text Editors->Hyperlinking
  • рекомендовано сопровождающими JSDT (для дальнейшего наблюдения): (@vrubezhny)
    • получить последнюю версию JSDT
    • увеличить доступные настройки памяти
  • использовать фильтры ресурсов, чтобы скрыть больше файлов в таких папках, как build / dist / bower / vendor (автор @ppartida)

И вообще:

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

Пожалуйста, добавьте больше ответов здесь (первый вопрос, поднятый 18 августа 2010 года)

...