【问题标题】:Embedding a text editor within another Eclipse editor在另一个 Eclipse 编辑器中嵌入文本编辑器
【发布时间】:2012-02-27 20:34:56
【问题描述】:

是否可以在我自己的自定义 Eclipse 编辑器中嵌入文本编辑器(带有语法着色和内容辅助)?我的印象是文本编辑器(具有语法着色等功能)需要扩展 IEditorPart 或其子类之一,但我认为不能嵌入 IEditorPart 子类是正确的,因为它不是Eclipse SWT?如果这是真的,还有其他方法可以实现该功能吗?

为了扩展这个“自定义 Eclipse 编辑器”:我指的是具有多个选项卡的编辑器,并且我想在其中一个选项卡中嵌入一个带有语法着色的文本编辑器,并且可能还有内容辅助。

【问题讨论】:

    标签: eclipse swt eclipse-plugin


    【解决方案1】:

    是的,使用 MultiPageEditorPart,其中每个页面都是 IEditorPart 或 SWT 控件。请记住,您嵌入的文本编辑器必须已经编写为在这种情况下仍能正常工作。

    【讨论】:

      【解决方案2】:

      是的,您不能嵌入 IEditorPart,而是可以从具体的 IEditorPart 实现者继承您的编辑器并覆盖其自定义方面。

      【讨论】:

      • 你能扩展一下吗?我不能嵌入像org.eclipse.ui.editors.text.TextEditor 这样的东西,因为它没有扩展Composite
      • 我不是在谈论嵌入,我是在谈论扩展一些现有的编辑器并覆盖可用的公共和受保护的方法(又名装饰)以实现所需的效果。如果您的“编辑器”不仅仅是一个带有 Eclipse 提供的花里胡哨(语法高亮、断点等)的文本编辑器,那么这种方法将不适合您。
      • 我用我所指的这个“自定义编辑器”的更多信息编辑了这个问题。
      • 现在事情清楚多了。假设您可以访问 Eclipse 源代码,我将查看 plugin.xml 编辑器是如何实现的(底部有许多选项卡:Overview、Dependencies、...、plugin.xml、...),其中“ plugin.xml" 似乎是使用 XML 编辑器或类似的东西实现的。
      • 我查看了MultiPageEditorPart,似乎我可以使用那个类,或者至少模仿它的功能来实现我需要的东西。感谢您的帮助...如果您改进答案,我会继续接受它。
      【解决方案3】:

      您可以将编辑器添加到 MultiPageEditPart。

        final IEditorPart = new YourEditor();
        int editorIndex = addPage(formJSEditor, editorInput);
        setPageText(editorIndex, "Your Editor");
      

      【讨论】:

        猜你喜欢
        • 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
        相关资源
        最近更新 更多