【发布时间】:2019-01-13 14:36:16
【问题描述】:
我目前正在开发一个 Eclipse CDT 插件,基于鼠标单击当前活动的编辑器,我想做一些过滤 - 只有当点击的元素是函数名称(IFunction 实例)时,我才想显示一个动作。
我已经设法实现了这一点,但仅限于活动编辑器中光标的当前插入符号位置(通过 ISelection 对象)。 但是,我想在发生右键单击时执行此操作,而不是插入符号所在的位置。
到目前为止,我已经设法获取鼠标单击事件(org.eclipse.swt.events.MouseEvent 类型的对象)并保存它。但是,我还没有找到一种方法如何通过此对象中的任何信息获取当前选定的 AST 元素 - 点击的小部件、X、Y 位置。
我虽然以某种方式改变插入符号的位置来改变当前的选择,但没有找到如何做到这一点,或者如果这是要走的路。
任何想法和帮助将不胜感激!
谢谢。
【问题讨论】:
-
只是一个健全的检查:暂时忘记 filter,action 本身 - 假设它与“点击的元素”有关-- 知道根据点击位置而不是插入符号位置来确定“点击的元素”吗?
-
我不太确定您在问什么,但该操作本身使用与 filter 相同类型的选择/过滤。因此,它们都使用相同的方法 - 插入符号位置。
-
好的,我明白了。只要您可以控制动作和过滤器,并且可以将它们都更改为使用鼠标位置,那应该没问题。
标签: eclipse eclipse-plugin editor mouseevent eclipse-cdt