Eclipse的JavaEditor扩展:如何添加适当的缩进线?
-
22-08-2019 - |
题
所需要的?
我们正在编写扩展以Eclipse的JavaEditor。我们需要一种方法之前和行的光标是在后添加一行。
在新的行中的光标应该在正确的位置(正确indeted)。
样品(#是光标):
之前(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
的rewriteSessions。
问题是如何调用JavaEditor的缩进函数插入从扩展新的行之后。或者是它甚至有可能缩进线直达正确的(I
到II
)? (缩进的长度应的不始终是当前行中的所述一个,但正确的。internal
包不应该被使用,如果可能的话,否则IndentUtil
将是解决办法。)
解决方案
的一个解决方案似乎是不使用IDocument.replace()
,e.g。
myTextViewer.getDocument().replace(...)
但insert()
,e.g。
textViewer.getTextWidget().insert(...)
这作品但还不是完整的解决方案来调用函数缩进而不产生依赖于:-( org.eclipse.jdt
,这仍需要。
不隶属于 StackOverflow