2

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

我想做的是在每个编辑器的侧面添加一个带有文本的大尺子。

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

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

但我希望它是这样的

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

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

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


想提一下,为了将我的解决方案付诸实践,我扩展了 AbstractContributedRulerColumn

public class MyRuler extends AbstractContributedRulerColumn {
 ....
}
4

3 回答 3

5

Arne 的回答给出了一些很好的建议,但我仍然花了一段时间才弄清楚如何编写一个在编辑器旁边添加一列文本的插件。

发布了一个示例,该示例仅在每行之后显示带有“x”的行号。我在此过程中发现的一些有用资源是:

于 2012-05-15T06:14:44.890 回答
1

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

API 文档中的示例:

<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>
于 2011-03-08T10:51:41.730 回答
0

在使用标尺列扩展点一段时间后,我了解了org.python.pydev.pydev_pyedit_listener可以让您拦截 PyEdit 创建事件并围绕它包装其他控件的扩展点。在SWT 小部件参考中的一些挖掘让我在右侧添加了另一个带有拆分器的窗格,并且我发布了一个示例项目。主要优点是您可以选择新显示的显示位置,可以使用任何您喜欢的控件,并且如果显示的文本过多,用户可以滚动。

于 2012-09-15T13:50:42.547 回答