2012-12-15 10 views
20

Ho riscontrato un problema con il formattatore di Eclipse. Non formatterà correttamente il mio codice quando dichiari metodi all'interno di una dichiarazione di classe. Mette una nuova riga dopo il tipo di ritorno del metodo.Il formatter di Eclipse C++ inserisce una nuova riga prima degli identificatori di metodo

Ho già esportato il file xml di stile e ho esaminato le impostazioni al suo interno, ma nessuna delle impostazioni ha alcuna connessione apparente a questo problema e l'editor delle impostazioni in Eclipse non ha mostrato lo stesso problema nel suo codice di esempio per dichiarazioni di metodo.

Ecco un po 'esempio di codice per quello che voglio che accada:

class MyClass 
{ 
    public: 
     MyClass(); 
     void myMethod(); 
}; 

Tuttavia, questo è ciò che ottengo:

class MyClass 
{ 
    public: 
     MyClass(); 
     void 
     myMethod(); 
}; 

Anche in questo caso, nell'editor stili, il codice non ha questo problema e sembra proprio come lo voglio, ma nel codice reale, la storia è diversa.

Sto usando la versione 3.8.0. Qualsiasi aiuto è apprezzato.

Modifica: Ho cancellato quei file di origine che sono stati formattati in modo errato (dopo aver formattato il codice più volte senza alcun risultato) e li ho sostituiti con file "identici" con gli stessi metodi, stessa struttura, ecc. Ho formattato il codice questa volta e ha funzionato. Questo è probabilmente un bug, ma lo lascio solo nel caso in cui qualcun altro incontri un problema simile o abbia una soluzione per evitare questo problema in primo luogo.

risposta

18

Ho mano modificato due file nella directory principale progetti Eclipse

.metadata\.plugins\org.eclipse.core.runtime\.settings 

I due file:

file 1: org.eclipse.cdt.core.prefs, change this line from "insert" to "do not insert" 
org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert 


file 2: org.eclipse.cdt.ui.prefs, 
scan this file for "insert_new_line_before_identifier_in_function_declaration" and make a similar change from insert to do not insert next to it, should be obvious 

Nota ho visto questo problema su indaco e Giunone, la correzione descritta in precedenza è stato a Juno .

+2

Stesso problema in Keplero, risolto con questa tecnica. Perché non è presente nei menu Preferenze? – belial

+2

Perché non è presente nel menu delle preferenze, l'impostazione predefinita (interruzione senza una buona ragione) è orribile. – dashesy

+0

Questo esiste ancora in Luna. Le modifiche sopra riportate risolvono il problema. Questa dovrebbe essere un'impostazione all'interno di Eclipse. – eluong

6

Se si dispone di una configurazione di formattazione personalizzata, esportarla prima (impostazioni> C/C++ Generale> Formatter> Modifica> Esporta). Quindi cambia la seguente linea in "non inserire". Salva l'XML.

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration" value="do not insert"/> 

Elimina la configurazione corrente e importa quella che hai modificato.

+0

Puoi spiegare come modificarlo tramite l'interfaccia utente di Eclipse? – einpoklum

Problemi correlati