我使用shift + alt + r来重命名javascript变量。
“输入新名称,按Enter键重构”出现在工具提示中。
当我按Enter键时,应该进行重构,而是将变量名恢复为之前的状态。
为什么?
我对错误日志显示的内容有疑问。 它来了:
java.lang.reflect.InvocationTargetException
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421)
at org.eclipse.ui.internal.WorkbenchWindow$13.run(WorkbenchWindow.java:1812)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1809)
at org.eclipse.wst.jsdt.internal.ui.refactoring.RefactoringExecutionHelper.perform(RefactoringExecutionHelper.java:172)
at org.eclipse.wst.jsdt.ui.refactoring.RenameSupport.perform(RenameSupport.java:191)
at org.eclipse.wst.jsdt.internal.ui.refactoring.reorg.RenameLinkedMode.doRename(RenameLinkedMode.java:329)
at org.eclipse.wst.jsdt.internal.ui.refactoring.reorg.RenameLinkedMode$EditorSynchronizer.left(RenameLinkedMode.java:103)
at org.eclipse.jface.text.link.LinkedModeModel.exit(LinkedModeModel.java:341)
at org.eclipse.jface.text.link.LinkedModeUI$4.run(LinkedModeUI.java:1193)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: java.lang.NullPointerException
at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1125)
at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1186)
at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1309)
at org.eclipse.wst.jsdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:104)
at org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:264)
at org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:513)
at org.eclipse.wst.jsdt.core.search.SearchEngine.search(SearchEngine.java:243)
at org.eclipse.wst.jsdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:138)
at org.eclipse.wst.jsdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:125)
at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor.getOccurrences(RenameNonVirtualMethodProcessor.java:129)
at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameMethodProcessor.doCheckFinalConditions(RenameMethodProcessor.java:353)
at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor.doCheckFinalConditions(RenameNonVirtualMethodProcessor.java:82)
at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:43)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:224)
at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:162)
at org.eclipse.wst.jsdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:69)
at org.eclipse.wst.jsdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.wst.jsdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:742)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
at org.eclipse.wst.jsdt.core.JavaScriptCore.run(JavaScriptCore.java:3844)
at org.eclipse.wst.jsdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:83)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Root exception:
java.lang.NullPointerException
at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1125)
at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1186)
at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1309)
at org.eclipse.wst.jsdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:104)
at org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:264)
at org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:513)
at org.eclipse.wst.jsdt.core.search.SearchEngine.search(SearchEngine.java:243)
at org.eclipse.wst.jsdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:138)
at org.eclipse.wst.jsdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:125)
at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor.getOccurrences(RenameNonVirtualMethodProcessor.java:129)
at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameMethodProcessor.doCheckFinalConditions(RenameMethodProcessor.java:353)
at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor.doCheckFinalConditions(RenameNonVirtualMethodProcessor.java:82)
at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:43)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:224)
at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:162)
at org.eclipse.wst.jsdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:69)
at org.eclipse.wst.jsdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.wst.jsdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:742)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
at org.eclipse.wst.jsdt.core.JavaScriptCore.run(JavaScriptCore.java:3844)
at org.eclipse.wst.jsdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:83)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
答案 0 :(得分:1)
我认为现在很清楚,重构失败了,因为它是一个NPE,它可能是JavaScript开发工具中的一个错误。
我建议在产品JSDT
,组件General
中的https://bugs.eclipse.org/bugs/buglist.cgi?component=General&product=JSDT&resolution=---处打开错误。
你需要提供一个(最好是最小的)js文件来表明这个bug。
同时尝试下载更新的Eclipse / JSDT(无需升级,只需创建另一个Eclipse文件夹并尝试在那里重构代码)也许它已经修复了你只是没有使用最新版本。
还值得尝试重启Eclipse(在重启之前关闭所有打开的文件)。
注意:我已经转移到Sublime,因为Eclipse中的JS编辑器没有给我适当的支持/有错误。