【问题标题】:In an eclipse plugin: How can I programmatically highlight lines of codes in the java editor?在 Eclipse 插件中:如何以编程方式突出显示 Java 编辑器中的代码行?
【发布时间】:2012-11-27 22:27:56
【问题描述】:

我正在尝试开发一个 eclipse 插件,它对 java 代码进行一些文档检查并在编辑器中突出显示一些代码行。

为了实现我的目标,我不想在 Eclipse 中创建新的编辑器,我只是想扩展默认的 java 编辑器,在不满足某些预定要求的方法下画一条线(或突出显示) .

我需要创建一个 PresentationReconciler 吗?如果是,我如何让 JDT 或工作台使用我的协调器。

我从未做过插件开发,这是我的第一次尝试。

【问题讨论】:

  • 顺便说一句,您应该阅读 JDT 代码,它已经对代码进行了许多检查,并且应该有一种方法可以让插件挂钩到该子系统。或者至少得到启发。
  • @Kos,是否可以突出显示 javadoc cmets?如果我能克服这个障碍,那么我可以尝试引导自己实现我的目标。
  • 我发现这个链接真的很有帮助http://cubussapiens.hu/tag/markers/

标签: eclipse eclipse-plugin editor


【解决方案1】:

我假设你已经有一个插件项目。

在你的plugin.xml中,打开标签Extensions,点击Add...,搜索org.eclipse.ui.editors,然后你应该会看到一个名为Editor的模板,它会生成一个简单的xml编辑器来试验和使用.此外,您将能够看到定义自定义编辑器所需的结构。

希望这会有所帮助...

【讨论】:

  • 我猜这个扩展了标准的 Eclipse 编辑器。如果你想扩展另一个,你需要他们各自的扩展点。
【解决方案2】:

Eclipse Java 编辑器位于org.eclipse.jdt.internal.ui.javaeditor.JavaEditor 包中。

包名中的“internal”表示 Eclipse 开发团队可以更改 Java 编辑器对新版本的工作方式。

【讨论】:

  • 我该怎么做?我是否打算使用“扩展”扩展org.eclipse.jdt.internal.ui.javaeditor.JavaEditor
  • @Lai:您根本不打算扩展 Java 编辑器。如果要修改 Java 编辑器,可以将完整的 Eclipse 源代码设置为 Eclipse 项目。
  • 虽然 Java 编辑器是“内部的”,但编辑器本身可以像 Eclipse 的任何其他部分一样通过插件扩展点进行扩展
  • @Kos:按照 OP 的要求,随意概述使用扩展点突出显示其他 Java 行的步骤。
【解决方案3】:

试试这个帮助页面:Juno Help on syntax highlighting

在页面末尾,它描述了如何动态添加一个PresentationReconciler,用于语法高亮。看看这是否适合您要解决的问题。

【讨论】:

    【解决方案4】:

    为您提供几个起点:

    • AnnotationsJFace 的文本编辑器 的 UI 功能,可让您在打开的编辑器中直观地标记某些位置。

    • Markers 是一个 Workbench 功能,更高级。它们是通用的“可能与 Workbench 资源相关联的对象”,它们可以显示在多个位置:例如,在文本编辑器中(作为注释)或问题视图中。

    根据您想要做什么,您可以将插件插入到与其中任何一个相关的扩展点中。

    【讨论】:

      【解决方案5】:

      我不知道你是否仍然需要这个,但你会想要使用 Annotations 来跟踪你需要突出显示的编辑器的哪些部分。

      为了真正实现高亮的图形效果,您可以通过 PresentationReconciler 进行语法高亮,但我没有这方面的经验。

      我们使用了从http://editbox.sourceforge.net/ 借来的技术,替换了编辑器 Shell 的背景图像。它是开源的,所以检查一下。 (我们的代码也可能有所帮助——位于https://github.com/IDE4edu/EclipseEditorOverlay

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多