java如何在Eclipse插件中编写撤销操作脚本?
我正在为Eclipse制作一个插件,每当用户按下与插件相关联的撤销按钮时,我希望利用内置的Eclipse“撤销”操作(org.Eclipse.core.commands.operations)
理想情况下,它只会重现按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);
# 1 楼答案
我不确定我是否正确地理解了你,但我想这可能对你有帮助:http://www.eclipsezone.com/eclipse/forums/t80577.html#92048329
虽然有点过时,但这个想法还不错
# 2 楼答案
如果编辑器上有一个查看器(例如TextViewer、SourceViewer、ProjectionViewer),则可以添加一个撤销操作,调用查看器上的撤销操作,例如