2012-06-22 24 views
6

Estoy usando Eclipse para el desarrollo de Android y ya he configurado mi estilo de formato de código pero todavía tengo los métodos anónimos que no pude encontrar para formatear en Eclipse . Así es como Eclipse forma métodos anónimos ahora:Cómo configurar Code Formatter for Java Métodos anónimos en Eclipse

// The BroadcastReceiver that listens for discovered devices and 
    // changes the title when discovery is finished 
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
                @Override 
                public void onReceive(Context context, Intent intent) { 
                 String action = intent.getAction(); 
                 Utils.Log.i("BLUETOOTH: " + action); 
                 if (BluetoothDevice.ACTION_FOUND.equals(action)) { 
                  // Get the 
                  // BluetoothDevice 
                  // object from the 
                  // Intent 
                  BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
                  // If it's already 
                  // paired, skip it, 
                  // because it's been 
                  // listed already 
                  if (device.getBondState() != BluetoothDevice.BOND_BONDED) { 
                   if (mNewDevicesArrayAdapter.getCount() == 0) { 
                    mNewDevicesArrayAdapter.add(device); 
                   } 
                   btDevicesUpdateList.add(device); 
                  } 
                 } 
                 else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { 
                  mNewDevicesArrayAdapter.setItems(btDevicesUpdateList); 
                  mNewDevicesArrayAdapter.notifyDataSetChanged(); 
                  btDevicesUpdateList.clear(); 
                  mBtAdapter.startDiscovery(); 
                 } 
                 else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) { 
                  if (mBtAdapter.getState() == BluetoothAdapter.STATE_ON) { 
                   switchToView(viewBluetoothOn); 
                   firstTimeDiscover(); 
                  } 
                  else if (mBtAdapter.getState() == BluetoothAdapter.STATE_OFF) { 
                   switchToView(viewBluetoothOff); 
                  } 
                 } 
                } 
               }; 

Ver? Es muy malo. ¿Cuál es la configuración correcta para formatear la declaración del método anónimo para que permanezca en el lado izquierdo y no entre en el carácter igual a =?

+0

Por favor, publique contenido de sus .settings/org.eclipse.jdt.core.prefs –

+3

pasé unos buenos cinco minutos limpiando ese terrible formato, sólo para darse cuenta que la pregunta es sobre * * terribles dicho formato. **** headdesk **** –

+0

@EugeneKuleshov que es la configuración específica del proyecto. – papaiatis

Respuesta

0

Parece que tiene algún tipo de configuración personalizada de formateador. Vaya a Propiedades del proyecto/Estilo de código Java/Formateador/Habilite la configuración específica del proyecto y luego seleccione el perfil del formateador incorporado "Convenciones de Java".

+0

Sí, tengo. Como ya mencioné en mi pregunta, ya configuré algunas opciones de formato personalizado, pero no sé qué hacer con el formato de los métodos de Anonymus ... – papaiatis

3

Creo que la configuración que causa este formato incorrecto es "Alinear campos en columnas", si lo desactivas, la implementación de la clase/interfaz debe sangrarse desde el inicio de la línea en lugar de los iguales.

Abrí un error en eclipse para corregir el comportamiento predeterminado o para agregar otra configuración para las implementaciones de clase/interfaz.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=385901

2

El trabajo a una ronda para este problema es cambiar un poco su estilo de codificación. Corte y pegue lo siguiente y ejecute su formateador. Estilo # 2 se verá menos horrible.

// **Style #1** - Formatter handles poorly 
JDialog jDialog1 = new JDialog(new JFrame()) { 
    public void setBackground(final Color c) { 
     super.setBackground(c); 
    } 
}; 

// **Style #2** - Formatter handles well. 
JDialog jDialog2; 
{ 
    jDialog2 = new JDialog(new JFrame()) { 
     public void setBackground(final Color c) { 
      super.setBackground(c); 
     } 
    }; 
} 
+1

¡Funciona! Eclipse debería arreglar el formateador como @RedLenses sugerido, pero esta es una buena solución por ahora. –

Cuestiones relacionadas