nokia / RED

RED - Robot Editor
Other
339 stars 112 forks source link

Cannot use Undo in Eclipse #432

Open DjeeThomas opened 2 years ago

DjeeThomas commented 2 years ago

Eclipse version: Eclipse IDE for Enterprise Java and Web Developers (includes Incubating components) Version: 2021-09 (4.21.0) Build id: 20210910-1417 OS: Windows 10, v.10.0, x86_64 / win32 Java vendor: Oracle Corporation Java runtime version: 15.0.1+9-18 Java version: 15.0.1

Latest RED Version available in the Marketplace.

I cannot use the Undo/Ctrl+z feature in Eclipse. It works just fine in other editors, such as Python Editor or Text Editor, but in RED it's disabled. It has been happening for quite some time already, even in previous Eclipse versions.

Is this some configuration that I don't have enabled, or is it a bug in RED?

NikitaOstr commented 2 years ago

As I know by default in key bindings the 'undo' is defined for table context. So I changed this behavior to 'content for source page'. Hope it will help you)

DjeeThomas commented 2 years ago

I installed some updates in Eclipse Marketplace that were not automatically installed, EGradle Editor was one of those IIRC. It seems that the Undo option works now. RED was not updated, so maybe was related to some dependencies some dependencies.

@NikitaOstr Thanks for the tip! I will try that, if this stops working again.

DjeeThomas commented 2 years ago

This is still an issue. @NikitaOstr suggestion does not help. In fact I get an execution exception when I change the key binding values.

`eclipse.buildId=4.21.0.I20210906-0500 java.version=15.0.1 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -data file:/C:/Users/tomega/eclipse-workspace/ -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

org.eclipse.e4.ui.workbench Error Wed Nov 03 11:19:03 EET 2021 Execution exception for: ParameterizedCommand(Command(org.robotframework.ide.eclipse.undoInTable,Undo, , Category(org.robotframework.ide.eclipse.robotCommands,Robot,null,true), org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@1d43cbb8, ,,true),null) in context chain: WorkbenchContext -> TrimmedWindowImplContext -> PerspectiveImpl (org.eclipse.rse.ui.view.SystemPerspective) Context -> PartImpl (org.eclipse.e4.ui.compatibility.editor) removeOnHide org.robotframework.ide.tableditor (Decker_test_suite.robot) Context -> MultiPageEditorSite (org.robotframework.ide.eclipse.main.plugin.tableeditor.source.SuiteSourceEditor)

org.eclipse.core.commands.ExecutionException: Error executing 'org.robotframework.ide.eclipse.undoInTable': org.eclipse.e4.core.di.InjectionException: Unable to process "E4UndoHandler#undo()": no actual value was found for the argument "RobotEditorCommandsStack". at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:170) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:308) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:580) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:647) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:439) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:96) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1270) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1059) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1084) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1069) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1111) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1107) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1536) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4875) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4753) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4958) at org.eclipse.swt.internal.win32.OS.DispatchMessage(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3624) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1041) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596) at org.eclipse.equinox.launcher.Main.run(Main.java:1467) at org.eclipse.equinox.launcher.Main.main(Main.java:1440) Caused by: org.eclipse.e4.core.di.InjectionException: org.eclipse.e4.core.di.InjectionException: Unable to process "E4UndoHandler#undo()": no actual value was found for the argument "RobotEditorCommandsStack". at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:317) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:251) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156) ... 45 more Caused by: org.eclipse.e4.core.di.InjectionException: Unable to process "E4UndoHandler#undo()": no actual value was found for the argument "RobotEditorCommandsStack". at org.eclipse.e4.core.internal.di.InjectorImpl.reportUnresolvedArgument(InjectorImpl.java:478) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:313) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:232) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:129) at org.robotframework.red.commands.DIParameterizedHandler.execute(DIParameterizedHandler.java:44) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97) at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58) ... 49 more `

NikitaOstr commented 2 years ago

Agreed, it's weird: org.eclipse.core.commands.ExecutionException: Error executing 'org.robotframework.ide.eclipse.undoInTable': org.eclipse.e4.core.di.InjectionException: Unable to process "E4UndoHandler#undo()": no actual value was found for the argument "RobotEditorCommandsStack".