質問

必要なものは?

私たちは、のJavaEditorをEclipseに拡張を書いています。私たちは、カーソルが入っている行の前と後の行を追加する方法が必要になります。

新しい行にカーソルを正しい位置(正確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のインデント機能を呼び出す方法です。それとも、ラインに直接正しい(III)をインデントすることも可能でしょうか? (インデントの長さは、を常に現在の行のいずれかが、正しいものであってはならない。可能であればinternalパッケージを使用すべきではない、そうでなければIndentUtilは溶液であろう。)

役に立ちましたか?

解決

一つの解決策は、例えば、IDocument.replace()を使用していないようです。

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

しかしinsert()、例えばます。

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

に動作しますが、まだ:-( org.eclipse.jdtする依存関係を生成せずにインデント機能を呼び出すための完全なソリューションではないこと。それはまだ必要とされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top