Pregunta

¿Qué se necesita?

Nos dirigimos una extensión de a eclipsar JavaEditor. Necesitamos una manera de añadir una línea antes y después de la línea está el cursor.

El cursor en la nueva línea debe estar en la posición correcta (correctamente indeted).

Muestra (# es el cursor):

antes (I):

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

después querido (II):

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

después de no querido (también conocido como el estado actual) (III):

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

Estado actual:

La transformación de I a III puede hacerse a través IDocument.replace(), un InsertEdit o vía rewriteSessions de IDocumentExtension4.

El problema es cómo llamar a la función de guión JavaEditor después de insertar la nueva línea de la extensión. O es posible incluso para sangrar la línea directa correcto (I a II)? (La longitud del guión debe no siempre será el uno de la línea actual, pero la correcta. Paquetes internal no se deben utilizar si es posible, de lo contrario IndentUtil sería la solución.)

¿Fue útil?

Solución

Una solución parece ser no utilizar IDocument.replace(), por ejemplo.

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

pero insert(), por ejemplo.

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

Esto funciona, pero aún no es una solución completa a llamar a la función guión sin generar dependencias a org.eclipse.jdt :-(. Eso todavía se necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top