Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse plugin Eclipse Jface投影查看器-对Ctrl-Z没有反应_Eclipse Plugin_Text Editor_Jface_Undo - Fatal编程技术网

Eclipse plugin Eclipse Jface投影查看器-对Ctrl-Z没有反应

Eclipse plugin Eclipse Jface投影查看器-对Ctrl-Z没有反应,eclipse-plugin,text-editor,jface,undo,Eclipse Plugin,Text Editor,Jface,Undo,在我当前的项目中,我正在使用jface ProjectionViewer的一个特定实现,它连接到嵌套在多页面编辑器中的文本编辑器。 我现在的任务是实现对Ctrl-Z的自定义反应,从我得到的信息来看,最好是将IUndoHandler的特定实现附加到查看器,所有这些都不会有问题 但是,在文本编辑器聚焦的同时按Ctrl-Z键并没有引起预期的任何反应。在显示相关组合键Ctrl-Z的关联菜单中单击“撤消键入”时,会调用TextViewerUndoManager.DocumentUndoListener的通

在我当前的项目中,我正在使用jface ProjectionViewer的一个特定实现,它连接到嵌套在
多页面编辑器中的
文本编辑器
。 我现在的任务是实现对Ctrl-Z的自定义反应,从我得到的信息来看,最好是将
IUndoHandler
的特定实现附加到查看器,所有这些都不会有问题

但是,在文本编辑器聚焦的同时按Ctrl-Z键并没有引起预期的任何反应。在显示相关组合键Ctrl-Z的关联菜单中单击“撤消键入”时,会调用
TextViewerUndoManager.DocumentUndoListener
的通知方法,按Ctrl-Z时不会触摸
TextViewerUndoManager
中的任何代码行

作为这个问题的一个可能来源,我假设可能在一个扩展点中为这个键组合定义了一个处理程序,因为我以前曾尝试过这个机制,但是plugin.xml没有定义任何键组合或撤销处理程序,除了与不同小部件的特殊上下文菜单相关联的处理程序之外

可能值得注意的是,Ctrl-C和Ctrl-V按预期工作

我需要了解按下Ctrl-Z时会发生什么,以及为什么没有任何内容被中继到
TextViewerUndoManager

如果有人能够描述eclipse如何正常处理这些键组合并决定哪个命令是合适的,这将非常有帮助


提前感谢

Cntrl+Z-使用
操作历史支持
处理撤消操作。查看
UndoActionHandler

绑定支持是通过使用
WorkbenchKeyboard
使用按键事件过滤器实现的(所有按键事件首先使用此类进行过滤。这就是
BindingService
的实现方式)。这将为密钥绑定找到相应的命令


DocumentUndoManager.UndoableTextChange
是处理撤消操作的地方。

关于密钥绑定,似乎旧的扩展仍在覆盖它。对UndoActionHandler的提示起到了作用。非常感谢你。