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.)

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top