我最近几天一直在尝试扩展默认编辑器(java,xml,所有这些)的功能,
我想要做的是在每个编辑器的旁边添加一个带有文本的大标尺。
例如: 默认编辑器页面如下所示:
|-----------|
|source |
|code |
| |
|-----------|
但我希望它像这样
|------|----|
|source| |
|code |line|
| |text|
|------|----|
我也不能使用视图,因为我的标尺中的文字对应于某一行,并且必须与源代码一起滚动。
我试图通过实现IEditorActionDelegate来做到这一点 因为我不想要新的编辑器,但要添加功能,但我找不到任何解决方案。
想要提一下,为了实现我的解决方案,我扩展了AbstractContributedRulerColumn
public class MyRuler extends AbstractContributedRulerColumn {
....
}
答案 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。主要优点是您可以选择新显示的位置,您可以使用您喜欢的任何控件,如果显示的文字太多,用户可以滚动。