Eclipse JavaEditor扩展:如何添加正确的缩进行?

时间:2009-03-27 13:33:26

标签: java eclipse eclipse-plugin eclipse-rcp eclipse-3.4

需要什么?

我们正在将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!");
    }

现状:

IIII的转换可以通过IDocument.replace()InsertEditIDocumentExtension4的rewriteSessions完成。

问题是如何在从扩展插入新行后调用JavaEditor的缩进功能。或者甚至可以直接缩进该行(III)? (缩进的长度应始终是当前行的长度,但如果可能,则不应使用正确的。internal包,否则IndentUtil将是解决方案。)

1 个答案:

答案 0 :(得分:0)

一个解决方案似乎不是使用IDocument.replace(),例如

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

insert(),例如

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

虽然有效,但还不是一个完整的解决方案来调用缩进函数而不会产生org.eclipse.jdt的依赖关系:-(。这仍然需要。