2011-09-14 14 views
14

A menudo confío en el código fuente de JDK para comprender cómo debo implementar una interfaz, y a menudo encuentro un estilo de sangría muy extraño en uso. Por ejemplo, en DefaultCellEditor.java:¿Por qué el código fuente de la biblioteca Java tiene una sangría extraña?

public DefaultCellEditor(final JTextField textField) { 
    editorComponent = textField; 
this.clickCountToStart = 2; 
    delegate = new EditorDelegate() { 
     public void setValue(Object value) { 
    textField.setText((value != null) ? value.toString() : ""); 
     } 

    public Object getCellEditorValue() { 
    return textField.getText(); 
    } 
    }; 
textField.addActionListener(delegate); 
} 

Me pregunto si esto es debido a mi IDE o no, ya que me parece este tipo de sangrado bastante extraño y difícil de leer.

+2

¿Qué IDE estás usando? –

+0

¿Este código fuente o descompilación del IDE? –

+0

@david Netbeans 6.9.1, y el mismo resultado con 7.0.1. Puedo investigar si los paquetes centrales también tienen el mismo aspecto o no. –

Respuesta

3

Si la sangría es consistente en diferentes métodos, entonces es probable que haya alguna razón (no escrita) por la que es así.

Si no hay rima o razón, entonces (a) el codificador (es) no se preocupó por la sangría, o (b) al codificador le importó, y sucedió algo en el camino a su computadora. El posible culpable es que no se prestó suficiente atención a cómo se usaron las pestañas y los espacios para estructurar el código, y la configuración de sangría de su IDE para las pestañas es diferente a la de la última persona que tocó el código.

Si puede hacer que los caracteres en blanco sean visibles en su editor de texto, eso debería mostrarle si se utilizó una combinación de pestañas y espacios.

+1

Lástima que no puedo aceptar las respuestas de todos. El error en realidad vino de una inconsistencia en el código fuente: algunas líneas están sangradas con pestañas, algunas otras con espacios. Obligar a que las pestañas se procesen con 8 espacios resolvió el problema, pero esto lleva a otra pregunta: ¿por qué están mezclando pestañas y espacios? Diferentes committers con diferentes estilos de codificación tal vez ... Deberían prestarle atención a eso. –

+0

Derecha. La conversión de pestañas a espacios se puede hacer dentro del IDE. En el mío, cada vez que presiono la tecla TAB, se insertan cuatro espacios. Las pestañas nunca ingresan mi código. – John

3

Sospecho que su IDE está ignorando o malinterpretando los caracteres de las pestañas.

+4

Luego la pregunta cambia a "por qué están mezclando pestañas y espacios". – delnan

+0

Como ya comenté la pregunta, delnan, de hecho es el caso: las pestañas parecen estar mezcladas con espacios, para la felicidad de todos :) –

+0

No, el IDE es correcto. La sangría es realmente así. –

1

Una posibilidad es un problema de IDE/editor por parte del autor.

De vuelta en mis días de PHP utilicé el editor de PSPad, que hace algo muy similar a esto - en la indentación de PSPad se ve bien, pero en otros espectadores/editores de sangría es mutilado. AFAIK tiene algo que ver con mezclar espacios con tabuladores y ancho de pestañas diferente.

2

Parece que NetBeans formatea el código del código fuente de Java (src.jar). Extraje el jar manualmente y abrí javax/swing/DefaultCellEditor.java usando un editor de texto plano y la sangría es realmente tan mala. Por lo tanto, es no el IDE.

Pero por qué la sangría es tan mala; lo siento, no sé.

+0

Sí, el buen editor de texto antiguo puede estar usando 4 espacios para pestañas, y no 8 :) –

Cuestiones relacionadas