`
liugang594
  • 浏览: 977862 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

扩展Eclipse Java编辑器的链接功能

阅读更多

在JDT中,可以在一个类,或者是方法,或者是变量上进行跳转。这个功能相当方便、实用;使用也很简单:在欲跳转的对象上按ctrl+鼠标左键即可。

 

但是如果我们想提供一个自定义的跳转功能怎么办?这个功能可能用到的机会不多,但是如果我们需要,那我们就需要知道怎么用。对吧?

 

为了演示,这里我假定我想实现一个以下功能的跳转:

 

在方法或其他地方注释里可以声明一个“@super”标签,然后在这个标签上点链接的时候,会跳到这个类的父类里去。

 

为了实现跳转,首先我们需要知道扩展哪个扩展点才能实现这个功能:org.eclipse.ui.workbench.texteditor.hyperlinkDetectors

 

这个扩展点就是用来扩展链接功能的扩展点,当然这后面的话就比较多,总体说来就是在editor的configuration里有一个getHyperlinkDetects()方法,用来得到所有的链接侦听定义。

 

你可以直接在这个方法中返回你的定义,不过在jdt,它是通过读取上面这个扩展点的所有定义来实现的。这也给我们一个提示:如果我们要实现一个自已的链接,最好也是去读这个扩展点。

 

下面就是扩展点的声明了。下面是一个例子:

 

   </extension>	
      <extension
         point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectors">
      <hyperlinkDetector
            activate="true"
            class="#className"
            id="#id"
            name="Link Control"
            targetId="org.eclipse.jdt.ui.javaCode">
      </hyperlinkDetector>
   </extension>

 

这里要注意的就是这个targetId,表示这个链接侦听是对谁来说的。否则真要把所有的扩展都加到java上去了。所以如果想扩展java,这个targetId就应该像上面这样写。

 

最后剩下的就是实现那个类了。

 

这个类需要继承:AbstractHyperlinkDetector,然后实现他的一个方法:

detectHyperlinks(ITextViewer textViewer,
			IRegion region, boolean canShowMultipleHyperlinks) 

 

在这个方法里返回一个IHyperLink[]对象,或者是返回空。你需要做的其实就是判断你当前选中的内容范围,然后判断是否要起用一个链接。例如上面说的“@super”,当前的内容是“super”,你可以往前追加一个,判断是否是"@",然后再往最前和最后追加一个,判断是否是空格。如果是,那你就应该返回一个IHyperLink[]对象。

 

如果返回空,那按ctrl+鼠标左键时没有反应,否则会出现一个手形和一条链接线,就像其他的链接一样。

 

最后就是实现你的IHyperLink对象了,显然,这个需要实现IHyperLink接口。

 

最后试试效果,如果你做的没错的话,那就OK了。

 

当然你要有什么疑问,欢迎咨询!

分享到:
评论
2 楼 zxjlwt 2015-08-17  
学习了。

http://surenpi.com
1 楼 防晒霜 2015-08-04  
org.eclipse.ui.workbench.texteditor.hyperlinkDetectors是在哪个包下的?建哪种类型的插件?

相关推荐

    eclipse-win32位 java编辑器

    eclipse,window32位。Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。简单的理解是eclipse是java编辑器。

    Eclipse3.2绿色中文版无需安装

    Java 编辑器演示为定制文本编辑器提供的标准功能。 SWT:使用独立的 SWT 启动程序或者作为集成的工作台视图来运行 SWT 样本。 工作台视图和独立应用程序:SWT 示例启动程序可启动许多 SWT 示例。其中一些示例可独立...

    xeedit:扩展Eclipse编辑器

    编辑 扩展Eclipse编辑器

    Eclipse(Neon 版本)详细安装教程

    开发者可以根据自己的需求,定制和扩展Eclipse的功能,提高开发效率。 多语言支持:Eclipse支持多种编程语言,包括Java、C/C++、Python等,使得开发者可以使用自己熟悉的编程语言进行开发。 跨平台性:Eclipse可以在...

    eclipse工具集(4/4)

    Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development...

    eclipse3.2官方简体中文版.rar

    Java 编辑器演示为定制文本编辑器提供的标准功能。SWT:使用独立的 SWT 启动程序或者作为集成的工作台视图来运行 SWT 样本。工作台视图和独立应用程序:SWT 示例启动程序可启动许多 SWT 示例。其中一些示例...

    eclipse-wtp-json:基于WTP Eclipse(POC)的JSON编辑器

    WTP JSON编辑器将提供扩展点,以使用自定义,完成,验证,超链接和文本悬停来定制编辑器,以提供与例如相同的功能。 这些扩展名可能对为bower.json , .jshintrc等提供自定义编辑器.jshintrc 。 Eclipse WTP JSON...

    Eclipse权威开发指南2.pdf

    3.2.1 Java编辑器概述..... 71 3.2.2 键入辅助..... 76 3.2.3 代码辅助..... 77 3.2.4 代码生成..... 80 3.2.5 导航Java错误和警告..... 81 3.2.6 使用快速修正功能来修改Java错误..... 82 3.2.7 重构..... 83 ...

    java开源包4

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    Eclipse编辑器多点输入插件,支持选中同名字符,选中位置同时输入

    Eclipse编辑器多点输入插件,支持选中同名字符,选中位置同时输入。

    Eclipse权威开发指南3.pdf

    4.2.4 使用Java编辑器进行调试..... 116 4.2.5 对当前所调试的程序进行操作..... 117 4.2.6 Console视图中的程序输出..... 119 4.2.7 有关断点的更多知识..... 119 4.2.8 Java异常断点..... 121 4.2.9...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    Eclipse权威开发指南1.pdf

    4.2.4 使用Java编辑器进行调试..... 116 4.2.5 对当前所调试的程序进行操作..... 117 4.2.6 Console视图中的程序输出..... 119 4.2.7 有关断点的更多知识..... 119 4.2.8 Java异常断点..... 121 4.2.9...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性...

    java高手真经 光盘源码

    javaawt.zip 16.AWT图形界面开发——Java文本编辑器 javamedia.zip 17.AWT多媒体编程——录音机、MP3播放器、视频拍照、视频播放器 javaswing.zip 18.Swing图形界面开发——Java文本编辑器 javaswt.zip 19.SWT...

    Eclipse in Action

    第二部分是讲述如何扩展eclipse使其具有新功能 第八章:介绍eclipse插件,以及插件开发的环境,你将学习怎样建立简单的插件,发布插件以使别人可以使用 第九章:更多的插件代码显示如何建立定制编辑器,视图,参数...

    java开源包11

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包6

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包9

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

Global site tag (gtag.js) - Google Analytics