2012-12-15 6 views
20

Ich stieß auf ein Problem mit dem Eclipse-Formatierer. Es wird meinen Code nicht korrekt formatieren, wenn Methoden in einer Klassendeklaration deklariert werden. Nach dem Rückgabetyp der Methode wird eine neue Zeile eingefügt.Eclipse C++ - Formatierer legt neue Zeile vor Methodenbezeichnern

Ich habe bereits die XML-Datei exportiert und die Einstellungen darin untersucht, aber keine der Einstellungen hat eine Verbindung zu diesem Problem, und der Einstellungs-Editor in Eclipse zeigte nicht das gleiche Problem in seinem Beispielcode für Methodendeklarationen. Hier

ist ein Beispiel Stück Code für das, was ich haben will passieren:

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

Dies ist jedoch, was ich bekommen:

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

Wieder im Stil-Editor, der Code hat dieses Problem nicht und sieht genau so aus, wie ich es möchte, aber im eigentlichen Code ist die Geschichte anders.

Ich benutze Version 3.8.0. Jede Hilfe wird geschätzt.

Bearbeiten: Ich löschte die Quelldateien, die falsch formatiert wurden (nach dem Formatieren des Codes mehrmals ohne Erfolg) und ersetzte sie mit "identischen" Dateien mit den gleichen Methoden, gleiche Struktur, etc. Ich formatierte den Code dieses Mal und es hat funktioniert. Dies ist wahrscheinlich ein Fehler, aber ich lasse ihn für den Fall, dass jemand anderes auf ein ähnliches Problem stößt oder eine Lösung hat, um dieses Problem zu vermeiden.

Antwort

18

I edited Hand zwei Dateien unter dem Haupt-Eclipse-Projekte Verzeichnis

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

Die beiden Dateien:

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 

Hinweis ich dieses Problem auf Indigo und juno gesehen, die fix oben beschrieben wurde in juno .

+2

Das gleiche Problem in Kepler, mit dieser Technik gelöst. Warum ist das nicht in den Voreinstellungen? – belial

+2

Warum ist dies nicht in den Einstellungen, ist die Standardeinstellung (Pause ohne Grund) schrecklich. – dashesy

+0

Diese existiert noch in Luna. Die obigen Änderungen lösen das Problem. Dies sollte eine Einstellung in Eclipse sein. – eluong

6

Wenn Sie eine benutzerdefinierte Formatiererkonfiguration haben, exportieren Sie sie zuerst (Einstellungen> C/C++ Allgemein> Formatierer> Bearbeiten> Exportieren). Dann ändern Sie die folgende Zeile zu "nicht einfügen". Speichere das XML.

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

Löschen Sie die aktuelle Konfiguration und importieren Sie die geänderte Datei.

+0

Können Sie erklären, wie Sie dies über die Eclipse-Benutzeroberfläche ändern? – einpoklum

Verwandte Themen