JavaEditor拡張子を日食:適切にインデントの行を追加する方法は?
-
22-08-2019 - |
質問
必要なものは?
私たちは、の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のインデント機能を呼び出す方法です。それとも、ラインに直接正しい(I
にII
)をインデントすることも可能でしょうか? (インデントの長さは、のを常に現在の行のいずれかが、正しいものであってはならない。可能であればinternal
パッケージを使用すべきではない、そうでなければIndentUtil
は溶液であろう。)
解決
一つの解決策は、例えば、IDocument.replace()
を使用していないようです。
myTextViewer.getDocument().replace(...)
しかしinsert()
、例えばます。
textViewer.getTextWidget().insert(...)
に動作しますが、まだ:-( org.eclipse.jdt
する依存関係を生成せずにインデント機能を呼び出すための完全なソリューションではないこと。それはまだ必要とされます。
所属していません StackOverflow