Eclipse插件开发:如何向编辑器添加功能

时间:2011-03-07 23:32:43

标签: plugins eclipse-pde eclipse-plugin

我最近几天一直在尝试扩展默认编辑器(java,xml,所有这些)的功能,

我想要做的是在每个编辑器的旁边添加一个带有文本的大标尺。

例如: 默认编辑器页面如下所示:

|-----------|
|source     |
|code       |
|           |
|-----------|

但我希望它像这样

|------|----|
|source|    |
|code  |line|
|      |text|
|------|----|

我也不能使用视图,因为我的标尺中的文字对应于某一行,并且必须与源代码一起滚动。

我试图通过实现IEditorActionDelegate来做到这一点 因为我不想要新的编辑器,但要添加功能,但我找不到任何解决方案。


想要提一下,为了实现我的解决方案,我扩展了AbstractContributedRulerColumn

public class MyRuler extends AbstractContributedRulerColumn {
 ....
}

3 个答案:

答案 0 :(得分:6)

Arne's answer提供了一些很好的建议,但我还是花了一些时间来弄清楚如何编写一个插件,在编辑器旁边添加一列文字。

published a sample只显示每行后面带有“x”的行号。我沿途发现的一些有用资源是:

答案 1 :(得分:2)

我认为你是在扩展点org.eclipse.ui.workbench.texteditor.rulerColumns之后。使用此点添加在文本编辑器中显示行号的组件,因此也应该可以添加其他信息。

API doc中的示例:

<extension
  point="org.eclipse.ui.workbench.texteditor.rulerColumns">
  <column
    id="org.eclipse.ui.editors.columns.linenumbers"
    name="Line Numbers"
    class="org.eclipse.ui.internal.texteditor.LineNumberColumn"
    enabled="false"
    global="true"
    includeInMenu="false">
    <placement
       gravity="0.9">
       <after id="org.eclipse.ui.editors.columns.annotations"/>
    </placement>
    <targetClass
       class="org.eclipse.ui.texteditor.AbstractDecoratedTextEditor">
    </targetClass>
  </column>
</extension>

答案 2 :(得分:0)

使用标尺列扩展点一段时间之后,我了解了org.python.pydev.pydev_pyedit_listener扩展点,它允许您拦截PyEdit创建事件并围绕它包装其他控件。在SWT widget reference中进行一些挖掘,让我在右侧添加另一个带有拆分器的窗格,我published a sample project。主要优点是您可以选择新显示的位置,您可以使用您喜欢的任何控件,如果显示的文字太多,用户可以滚动。