Расширение Eclipse JavaEditor:Как добавить строку с правильным отступом?

StackOverflow https://stackoverflow.com/questions/689777

Вопрос

Что нужно?

Мы пишем расширение для затмения 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!");
    }

после того, как не хотел (т.нынешнее состояние)(III):

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

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

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

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

Это было полезно?

Решение

Кажется, что одним из решений является не использовать IDocument.replace(), например

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top