2016-06-18 4 views
-1

Ich benutze Xcode sehr - für plattformübergreifende Projekte. Manchmal, wenn ich drücke Cmd-A Strg-I (auto-indent alles), wird es mis-indent nach einer Zeile wie der Begegnung:Xcode - verhindert Autoformatfehler

std::cout << something; 

Statt dessen:

if(some_condition()) { 
    std::cout << something; 
} 
other_things(); 

Es wird tun dies:

if(some_condition()) { 
    std::cout << something; 
    } 
    other_things(); 

ich keine Konsistenz, wann die Fehler werden gemacht finden, so ein MCSE Bereitstellung ist keine leichte Aufgabe.

Ich habe einen Workaround gefunden (als Antwort geliefert), aber wenn es einen besseren Weg gibt, würde ich gerne wissen!

Vielen Dank.

Antwort

0

Die Verwirrung in dem Auto-Formatierer scheint den Interpreter verwandt zu sein x << y als Ausdruck ohne linke Seite zu sehen, was sie natürlich, wenn x etwas anderes als ein ostream waren wäre.

Die Formatierungsfehler geht, wenn Sie weg diese ersetzen:

if(some_condition()) { 
    std::cout << something; 
    } 

mit diesem:

if(some_condition()) { 
    auto& os = std::cout << something; 
    // but note we now get a warning about an unused variable 
} 

oder dies:

if(some_condition()) { 
    void(std::cout << something); 
    // deliberately discard the returned ostream& 
} 

Weder hübsch ist und beide sind wahrscheinlich zu veran zukünftige Betreuer (vor allem, wenn sie Netbeans, Codeblocks, vi, Emacs oder Eclipse verwenden), um sich zu wundern w Hut auf der Erde meine Absicht war.

0

Ich mache das immer und es macht mich glücklich.

Zuerst tun Cmd + A

dann Cmd + do [wie 5-10 mal

Dann mache ich Strg + I, es richtig jedes Mal einrückt.

+0

oh ... mein ... Gott ... nun, ich werde es versuchen. Vielen Dank. –