Расширение Eclipse JavaEditor: Как добавить строку с отступом? - PullRequest
0 голосов
/ 27 марта 2009

Что нужно?

Мы пишем расширение для затмения JavaEditor. Нам нужен способ добавить строку до и после строки, в которой находится курсор.

Курсор на новой строке должен быть в правильном положении (правильно установлен).

Пример (# - курсор):

до (I):

public class Test {
    public static void main#(String[] args) {
        System.out.println("Test!");
    }
}

после разыскиваемого (II):

public class Test {
    #
    public static void main(String[] args) {
        System.out.println("Test!");
    }

после неиспользования (a.k.a. текущее состояние) (III):

public class Test {
#
    public static void main(String[] args) {
        System.out.println("Test!");
    }

Текущее состояние:

Преобразование из I в III может быть выполнено через IDocument.replace(), InsertEdit или через IDocumentExtension4 rewriteSessions.

Проблема заключается в том, как вызвать функцию отступа JavaEditor после вставки новой строки из расширения. Или вообще можно сделать прямой отступ строки (I до II)? (Длина отступа должна , а не всегда быть той из текущей строки, но правильной. * Пакеты internal не должны использоваться, если это возможно, иначе IndentUtil будет решением.) 1038 *

1 Ответ

0 голосов
/ 27 марта 2009

Похоже, одно решение не использовать IDocument.replace(), например

myTextViewer.getDocument().replace(...)

но insert(), например

textViewer.getTextWidget().insert(...)

Это работает, но еще не является полным решением для вызова функции отступа без генерации зависимостей для org.eclipse.jdt :-(. Это все еще необходимо.

...