0

必要なもの?

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!");
    }

望まれなくなった後 (別名、現在の状態) ( III):

public class Test {
#
    public static void main(String[] args) {
        System.out.println("Test!");
    }

現在の状態:

Iからへの変換は、 、 、またはの rewriteSessionsを介しIIIて行うことができます。IDocument.replace()InsertEditIDocumentExtension4

問題は、拡張子から改行を挿入した後に、JavaEditor の indent 関数を呼び出す方法です。または、行を直接正しくインデントすることも可能ですか ( Ito II)? (インデントの長さは常に現在の行のものである必要はありませんが、正しいものです。internal可能な場合はパッケージを使用しないでください。そうしないIndentUtilと解決策になります。)

4

1 に答える 1

0

IDocument.replace()1つの解決策は、使用しないことです。

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

しかしinsert()、例えば

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

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

于 2009-03-27T19:39:05.843 に答える