2012-12-15 14 views
20

Wystąpił problem z formantem Eclipse. Nie będzie poprawnie formatować mojego kodu podczas deklarowania metod w deklaracji klasy. Umieszcza nową linię po typie zwracanym przez metodę.Program formatujący Eclipse C++ umieszcza nową linię przed identyfikatorami metod.

Wyeksportowałem już plik stylu xml i sprawdziłem w nim ustawienia, ale żadne z ustawień nie ma żadnego widocznego związku z tym problemem, a edytor ustawień w Eclipse nie pokazał tego samego problemu w jego przykładowym kodzie dla deklaracje metod.

Oto przykładowy fragment kodu za to, co chcę mieć zdarzyć:

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

Jednak to, co mam:

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

Ponownie w edytorze stylów, kod nie ma tego problemu i wygląda tak, jak tego chcę, ale w samym kodzie historia jest inna.

Używam wersji 3.8.0. Każda pomoc jest doceniana.

Edytuj: Usunąłem te pliki źródłowe, które zostały niepoprawnie sformatowane (po kilkakrotnym sformatowaniu kodu bezskutecznie) i zastąpiłem je "identycznymi" plikami tymi samymi metodami, tą samą strukturą itp. Tym razem sformatowałem kod i zadziałało. To prawdopodobnie błąd, ale pozostawiam to na wszelki wypadek, gdy ktoś inny napotka podobny problem lub ma rozwiązanie, które pozwoli uniknąć tego problemu.

Odpowiedz

18

ja ręcznie edytować dwa pliki w głównym katalogu projektów Eclipse

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

dwóch plików:

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 

Uwaga widziałem ten problem na indygo i Juno, poprawka opisana powyżej była w Juno .

+2

Ten sam problem w Kepler, rozwiązany za pomocą tej techniki. Dlaczego nie ma tego w menu Preferencje? – belial

+2

Dlaczego nie jest to w menu preferencji, ustawienie domyślne (przerwa bez powodu) jest okropne. – dashesy

+0

To nadal istnieje w Lunie. Powyższe modyfikacje rozwiązują problem. To powinno być ustawienie w Eclipse. – eluong

6

Jeśli masz niestandardową konfigurację formatera, najpierw wyeksportuj ją (ustawienia> C/C++ Ogólne> Formatter> Edytuj> Eksportuj). Następnie zmień następujący wiersz na "nie wstawiaj". Zapisz kod XML.

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

Usuń bieżącą konfigurację i zaimportuj tę, którą zmieniono.

+0

Czy możesz wyjaśnić, jak to zmienić za pomocą interfejsu Eclipse? – einpoklum

Powiązane problemy