`
liugang594
  • 浏览: 990757 次
  • 性别: 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 java

    ADT是Eclipse的一个扩展,为Android开发者提供了一整套工具,包括项目创建、编辑器、调试器和构建工具等,使得在Eclipse中开发安卓应用变得方便快捷。"安装包自行下载,即时安装,立刻使用"意味着用户可以快速地下载...

    eclipse-win32位 java编辑器

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

    RCP版JAVA 编辑器

    在RCP环境中,我们可以构建自己的JAVA编辑器,这正是“精简版rcp JAVA 编辑器”所关注的核心。 RCP的基础是SWT(Standard Widget Toolkit),这是一个由Eclipse项目开发的GUI库,它提供了与操作系统原生界面元素...

    eclipse RCP开发的编辑器

    在实现编辑器功能时,我们可能会用到SWT(Standard Widget Toolkit)和JFace。SWT是Eclipse提供的原生UI库,提供了丰富的控件,如文本框、按钮等。JFace则提供了一层抽象,简化了SWT的使用,使代码更易于理解和维护...

    扩展չEclipse的Java开发工具.pdf

    - **用户界面的扩展**:图1展示了如何通过扩展`Java编辑器`的`Outline`视图上下文菜单来实现这一点。这样的扩展看起来像是Eclipse JDT原生的一部分,因此用户界面更加统一且易于使用。 - **菜单标识**:为了避免...

    eclipse 属性文件编辑器

    Eclipse是一款广泛使用的Java开发集成环境,而"eclipse 属性文件编辑器"则是Eclipse中的一个重要组件,专门用于编辑属性文件。属性文件在Java编程中扮演着关键角色,它们通常用于存储配置信息,如应用的国际化设置、...

    Java编辑工具eclipse

    1. **代码编辑**: Eclipse的代码编辑器支持语法高亮、自动完成、错误检查等功能,帮助开发者快速编写代码。它还可以识别并标记代码中的潜在问题,如未使用的变量、空指针异常等。 2. **项目管理**: Eclipse允许你...

    根据javaeditor改写的bat编辑器

    【描述】提到的"Eclipse示例程序javaeditor"是Eclipse IDE中用于教学和学习Java编辑器开发的一个例子。它展示了如何构建一个能够解析、高亮和提供代码辅助的编辑器。在此基础上改写为bat编辑器,意味着开发者借鉴了`...

    jsp文本编辑器Java编辑器

    "Java编辑器"则可能指的是用于编写和调试Java代码的工具,如Eclipse、IntelliJ IDEA等,或者是指在JSP中嵌入的JavaScript代码编辑部分。 在实际应用中,使用这样的jsp文本编辑器有以下几点需要注意: 1. **集成**...

    eclipse-java-2023-09-R-linux-gtk-aarch64.tar.gz

    通过Eclipse Marketplace,用户可以找到并安装无数第三方插件,扩展Eclipse的功能以适应不同项目需求。 总结,"eclipse-java-2023-09-R-linux-gtk-aarch64.tar.gz"是专为Linux ARM平台设计的Eclipse Java版本,具备...

    Java开发环境EclipseSDK

    Java 开发工具 (JDT) 是Eclipse SDK中用于Java开发的核心组件,它提供了强大的Java编辑、编译和调试功能。主要特性包括: - **Java 编辑器**:提供语法高亮、自动完成、代码折叠等功能。 - **构建器**:负责项目的...

    eclipse资源文件编辑器插件

    总之,Eclipse资源文件编辑器插件是提升开发效率的重要工具,它让开发者在处理非代码资源时也能享受到Eclipse的强大功能和便捷性。选择合适的插件,可以根据项目需求和开发者个人习惯,使工作变得更加轻松高效。

    java编辑器 很好用

    在众多的Java编辑器中,有一些因其强大的功能和易用性而受到开发者们的喜爱。"java编辑器 很好用"这个标题所指的是这样一种编辑器,它能够提供高效的代码编写、调试和管理功能,使得Java开发者可以更便捷地进行编程...

    eclipse插件开发-编辑器详解

    ### Eclipse 插件开发——编辑器详解 在深入探讨Eclipse插件开发中编辑器的具体实现之前,我们首先需要明确几个关键概念。Eclipse作为一款强大的集成开发环境(IDE),其内部架构高度模块化,支持丰富的插件扩展机制...

    eclipseJAVA编译器安装文件

    3. 编辑器会打开新创建的Java源文件,输入你的代码,例如: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("你好,世界!"); } } ``` 编译和运行: 1. 保存...

    VB实现的Eclipse编辑器

    在编程世界中,Eclipse编辑器以其强大的功能和灵活性,成为Java开发者的重要工具。然而,你是否想过这个以Java为原生语言的编辑器可以用Visual Basic(VB)来实现呢?本文将深入探讨一个独特的项目——“VB实现的...

    eclipsejava-v4.4.7

    3. **插件系统**:Eclipse的一大特色是其插件系统,通过安装不同的插件,可以扩展Eclipse的功能,使其适应不同类型的开发需求。比如,Eclipse CDT用于C/C++开发,PyDev用于Python开发,Mylyn用于任务管理等。 4. **...

    eclipse-java-2022-09-R-win32-x86-64.zip

    解压后的"eclipse"文件夹包含了Eclipse IDE的所有组件,如工作台(Workbench)、编辑器、调试器、构建工具以及项目管理器等。在其中,你可以找到以下关键组件: 1. `eclipse.exe`:这是Eclipse的启动程序,双击即可...

    eclipse-java-2022-06-R-win32-x86_64.zip

    2. **JDT**:Java Development Tools是Eclipse的核心组件,提供了源代码编辑器、编译器、调试器和项目管理工具。它支持语法高亮、自动代码完成、重构等功能。 3. **项目管理**:在Eclipse中,项目是组织代码和资源...

Global site tag (gtag.js) - Google Analytics