我们正在将an extension写入eclipse的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
将是解决方案。)
答案 0 :(得分:0)
一个解决方案似乎不是使用IDocument.replace()
,例如
myTextViewer.getDocument().replace(...)
但insert()
,例如
textViewer.getTextWidget().insert(...)
虽然有效,但还不是一个完整的解决方案来调用缩进函数而不会产生org.eclipse.jdt
的依赖关系:-(。这仍然需要。