我正在做一個Eclipse插件,我想利用內置在Eclipse「撤消」動作(org.eclipse.core.commands.operations)每當用戶按下與插件相關的撤銷按鈕。如何在Eclipse插件中腳本化撤消操作?
理想的情況下,它只是複製,當您按下CTRL + Z會發生什麼,但我沒有得到模擬按鍵的工作。
我已經試過這些代碼片段:
撤消在工作臺上進行:
IWorkbenchOperationSupport operationSupport = PlatformUI.getWorkbench().getOperationSupport();
IUndoContext context = operationSupport.getUndoContext();
IOperationHistory operationHistory = operationSupport.getOperationHistory();
IStatus status = operationHistory.undo(context, null, null);
撤消在工作區中進行:
IWorkbenchOperationSupport operationSupport = PlatformUI.getWorkbench().getOperationSupport();
IUndoContext context= (IUndoContext)ResourcesPlugin.getWorkspace().getAdapter(IUndoContext.class);
IOperationHistory operationHistory = operationSupport.getOperationHistory();
IStatus status = operationHistory.undo(context, null, null);
什麼我再想找,類似,是這樣的,但它不工作:
撤消編輯/文件執行:
IWorkbenchOperationSupport operationSupport = PlatformUI.getWorkbench().getOperationSupport();
IEditorPart currentEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IUndoContext context = (IUndoContext) currentEditor.getAdapter(IUndoContext.class);
IOperationHistory operationHistory = operationSupport.getOperationHistory();
IStatus status = operationHistory.undo(context, null, null);
我工作在這個問題上也是如此。我發現這樣的例子功能使用此更新站點(http://download.eclipse.org/eclipse/updates/4.2)(org.eclipse.sdk.examples.feature),並且它有一個很好的實現工作得很好。我只需要弄清楚如何讓我的視圖部分參與IUndoContext,以便撤消和重做操作在Eclipse Undo和Redo菜單項中顯示。奇怪的是,只有當示例視圖部分處於活動狀態時,撤消重做操作才能正常工作,而當視圖部分處於活動狀態時則無法正常工作。我想我還沒完全理解IUndoContext。 – twindham
使用安裝新軟件對話框嘗試安裝Eclipse SDK示例時,請使用過濾器框並鍵入'示例',但一定要取消選中按類別分組的項目,否則您將看不到任何結果。 – twindham
對於這種工作方式,您應該在編輯器中執行所有更改,方法是向操作堆棧添加可撤消命令。 – Basilevs