eclipse 中的Link with Editor功能是如何实现

本文介绍Eclipse中LinkwithEditor的功能及其实现原理。该功能可以帮助开发者快速定位编辑器中的文件到Navigator视图,提高开发效率。文章还探讨了如何通过简单修改源代码来自定义Navigator的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天向大家介绍Eclipse中很有用的一个功能: Link with Editor。

当打开很多文件,而左边的Navigator又有很多资源,很深层次时, 找到当前的编辑器对应的是哪个项目的那个文件,是一件困难的事情。

Link with Editot自动在Navigator中定位资源,并选中, 如下图所示,双向箭头就是Link with Editor未选中时:

启用后,选中右边的java文件,左边也会自动选中相应的文件:

这个功能是如何实现的呢?

查看ResourceNavigator的editorActivated方法,可以看到实现代码。

protected void editorActivated(IEditorPart editor) {
if (!isLinkingEnabled()) {
return;
}

IFile file = ResourceUtil.getFile(editor.getEditorInput());
if (file != null) {
ISelection newSelection = new StructuredSelection(file);
if (getTreeViewer().getSelection().equals(newSelection)) {
getTreeViewer().getTree().showSelection();
} else {
getTreeViewer().setSelection(newSelection, true);
}
}
}

当Link with Editor启用后,程序会获得当前编辑器的文件, 并在左边的Navigator树形结构里选中。

我们可以继承ResourceNavigator并对代码做一些修改,做一个自己的Navigator: 比如选中编辑器时,选中左边对应的父文件夹。

只需修改一句代码:

ISelection newSelection =newStructuredSelection(file.getParent());

本文介绍了 Link with Editor功能,实现原理,以及如何做一个定制的。

注:在最新的Eclipse中,类ResourceNavigator已经弃用

【完】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值