Разработка плагина Eclipse: как добавить функциональность в редактор - PullRequest
2 голосов
/ 08 марта 2011

В последние дни я пытался расширить функциональность редактора по умолчанию (java, xml, все из них),

я хочу добавить большую линейку с текстом на стороне каждого редактора.

пример: страница редактора по умолчанию выглядит следующим образом:

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

, но я хочу, чтобы это было так

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

также я не могу использоватьпотому что текст в моей линейке соответствует определенной строке и должен прокручиваться вместе с исходным кодом.

Я попытался сделать это, реализовав IEditorActionDelegate, так как я не хочу новый редактор, но добавляюфункциональность, но я не мог найти какие-либо решения.


Хотел бы упомянуть, что для практического применения своего решения я расширил AbstractContributedRulerColumn

public class MyRuler extends AbstractContributedRulerColumn {
 ....
}

Ответы [ 3 ]

6 голосов
/ 15 мая 2012

Ответ Арне дал несколько хороших советов, но мне все еще понадобилось время, чтобы понять, как написать плагин, который добавляет колонку текста рядом с редактором.

I опубликовал образец , который просто отображает номера строк со знаком «x» после каждой строки.В процессе поиска я нашел несколько полезных ресурсов:

2 голосов
/ 08 марта 2011

Я думаю, что вы после точки расширения 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>
0 голосов
/ 15 сентября 2012

Поработав некоторое время с точкой расширения столбцов линейки, я узнал о точке расширения org.python.pydev.pydev_pyedit_listener, которая позволяет перехватывать событие создания PyEdit и оборачивать вокруг него другие элементы управления. Некоторое копание в справочнике SWT позволило мне добавить еще одну панель справа с разделителем, и я опубликовал пример проекта . Основным преимуществом является то, что вы можете выбирать, где появится новый дисплей, можете использовать любые элементы управления, которые вам нравятся, и пользователь может прокручивать, если на дисплее слишком много текста.

...