Расширение Eclipse JavaEditor:Как добавить строку с правильным отступом?
-
22-08-2019 - |
Вопрос
Что нужно?
Мы пишем расширение для затмения 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
:-(.Это все еще необходимо.