【发布时间】:2016-05-04 09:05:51
【问题描述】:
我正在开发一个 eclipse 插件,我想使用一个编辑器,在当前页面上设置一些监听器(好的术语?),并在用户切换到另一个页面时删除这些监听器(基本上,用户是编辑多个文件,就像使用默认的 JAVA 编辑器一样)。
目前我已经编写了一个扩展 StructuredTextEditor 的类。插件的行为是预期的,但是当我尝试处理多个文件时,会出现很多问题。在我看来,主要问题是当用户打开另一个页面时我无法收到通知。
我阅读(并测试了)一些关于 MultiPageEditor 的内容,但它似乎没有将 XML 编辑器集成为默认编辑器。我应该如何进行以获得具有 XML 语法着色的 MultiPageEditor,并在用户更改当前页面以调整我的侦听器时收到通知?
感谢阅读。
【问题讨论】:
-
默认的 Java 编辑器不会编辑多个文件。为每个文件启动一个单独的编辑器副本。现有的 Eclipse WST XML 编辑器使用多页编辑器来显示单个 XML 文件的不同视图。
-
所以我可能是在 Java 编辑器的情况下:每次都会启动一个编辑器。但是如果我打开 3 个文件,我打开了 3 个编辑器,当我对其中一个执行操作时,来自所有编辑器的侦听器会同时被触发。这是我不太明白的事情
-
文本选择监听器:ISelectionListener,以及打开编辑器时的监听器:IPartListener2
-
IPartListener2告诉您每个部分,因此您需要检查它报告的内容。ISelectionListener提供选择服务,告诉您各地的选择 - 这可能不是您想要的。 -
你说得对,这绝对不是我想要使用的。在这种情况下你会建议什么?我需要在文本选择发生时立即注意(或简单地单击文本)。