Eclipse plugin 如何接收鼠标和键盘事件并覆盖Eclipse ITextEditor的默认行为?

Eclipse plugin 如何接收鼠标和键盘事件并覆盖Eclipse ITextEditor的默认行为?,eclipse-plugin,Eclipse Plugin,我想创建一个模拟vi文本编辑器行为的Eclipse插件。这需要更改鼠标和键盘事件的处理方式。因此,例如,如果用户在正常模式下按下“h”,光标应该向左移动,而不是将“h”字符插入文本缓冲区。我发现它描述了如何侦听文档中的更改和演示文稿中的更改,但没有描述如何拦截低级键盘和鼠标事件,从而可以覆盖默认行为。实现这一点的最佳方法是什么?一个想法是,对于一个特定的活动文本编辑器,您需要获取底层的StyledText小部件,该小部件呈现实际文本并接受键盘输入,并在那里添加一个键盘侦听器 AbstractTe

我想创建一个模拟vi文本编辑器行为的Eclipse插件。这需要更改鼠标和键盘事件的处理方式。因此,例如,如果用户在正常模式下按下“h”,光标应该向左移动,而不是将“h”字符插入文本缓冲区。我发现它描述了如何侦听文档中的更改和演示文稿中的更改,但没有描述如何拦截低级键盘和鼠标事件,从而可以覆盖默认行为。实现这一点的最佳方法是什么?

一个想法是,对于一个特定的活动文本编辑器,您需要获取底层的
StyledText
小部件,该小部件呈现实际文本并接受键盘输入,并在那里添加一个键盘侦听器

AbstractTextEditor textEditor = ...
ITextViewer viewer = textEditor.getSourceViewer();
StyledText textWidget = viewer.getTextWidget();
textWidget.addKeyListener(...);