Java-Editor Erweiterung Eclipse: Wie man eine richtig gegliederte Zeile hinzufügen?
-
22-08-2019 - |
Frage
Was ist erforderlich?
Wir schreiben eine Erweiterung der Java-Editor verdunkeln. Wir brauchen einen Weg, um eine Zeile vor und nach der Zeile hinzufügen den Cursor in ist.
Der Cursor auf die neue Linie auf der richtigen Position sein sollte (richtig indeted).
Probe (# ist der Cursor):
vor (I
):
public class Test {
public static void main#(String[] args) {
System.out.println("Test!");
}
}
nach wollte (II
):
public class Test {
#
public static void main(String[] args) {
System.out.println("Test!");
}
nach nicht gesucht (auch bekannt als der gegenwärtigen Zustand) (III
):
public class Test {
#
public static void main(String[] args) {
System.out.println("Test!");
}
Zustand des Gebäudes:
Die Transformation von I
zu III
über IDocument.replace()
, ein InsertEdit
oder über IDocumentExtension4
des rewriteSessions erfolgen.
Das Problem ist, wie Java-Editor des Einzugs Funktion nach dem Einlegen die neue Linie von der Nebenstelle anzurufen. Oder ist es sogar möglich, die Linie direkt korrekt (I
II
) einrücken? (Die Länge des Eindrucks sollte nicht immer derjenige sein, der der aktuellen Zeile, aber die richtigen. internal
Pakete sollten nach Möglichkeit nicht verwendet werden, sonst wäre IndentUtil
die Lösung sein.)
Lösung
Eine Lösung scheint nicht zu sein IDocument.replace()
zu verwenden, z.
myTextViewer.getDocument().replace(...)
aber insert()
, z.
textViewer.getTextWidget().insert(...)
Das funktioniert aber noch nicht eine komplette Lösung ist die Einzugsfunktion ohne Erzeugung von Abhängigkeiten zu nennen :-( org.eclipse.jdt
. Das ist nach wie vor erforderlich.