我正在尝试将openDeclaration
函数添加到我自己的Eclipse插件编辑器中。到目前为止,我并没有真正理解f3功能是如何工作的(我读了一些关于超链接的内容,openAction
和compilationUnit.findDeclaringNode()
),但我不能将这些内容放在一起并理解它是如何工作的。
直到现在我认为它的工作方式如下:
在解析代码时,读取的标记将被添加到ast中。层次结构级别为IJavaProject/IPackageFragmentRoot/IPackageFragment/ICompilationUnit/{IType / IField / IMethod}
使用jdt可以使用此ast。每个Java文件都用编译单元表示。如果我按f3,会启动ActionHandler
,这会占用我此时悬停的IjavaElement
。
现在我的编辑器插件中有IJavaElement
,但我不知道如何跳转到与编译单元中的声明关联的相应类型/方法。
我不知道如果声明节点不在同一个编译单元中会发生什么,比如它是基本类型(如字符串或整数)。
也许如果一切都更清楚,我可以按照默认Java编辑器执行此任务的方式。 如何将各个部分组合在一起或如何调试功能?