2008-10-04 4 views
15

Ich habe eine etwas unordentlich formatierte Objective-C-Codebasis. Gibt es eine Möglichkeit, Xcode ein gesamtes Projekt neu formatieren zu lassen, um einem Codierungsstandard zu entsprechen (d. H. Richtig eingerückt, Leerzeichen v. Tabs usw.)? Gibt es andere Tools, die dies erreichen könnten?Objective-C Tidy

Antwort

22

Uncrustify: http://uncrustify.sourceforge.net/

Source Code Beautifier für C, C++, C#, Objective, D, Java, Pfand und Vala

Wenn Sie etwas einfachere wollen, könnten Sie wahrscheinlich Gehen Sie in eine andere Richtung, indem Sie einfach alle Leerstellen/Zeilenumbrüche entfernen und einen neuen Zeilenumbruch unter ;{ hinzufügen und den Code manuell neu einrücken. Es wird nicht annähernd perfekt platzierten Code sein, und Reindentting könnte bei großem Code ein Problem sein, aber es wird konsistent sein.

+1

graben nur wegen des Namens des Projekts – slf

+0

Ich benutze jetzt für eine ganze Weile uncrustify, und ich kann auch dafür stimmen. – Moszi

7

Nach diesem blog post funktioniert bcpp mit Objective-C.

Darüber hinaus könnte der Werkzeugeinzug Ihnen helfen. Es ist auf Ebene C ausgerichtet, hat aber eine Vielzahl von Optionen, die helfen könnten. Ich weiß nicht, ob es unter Mac OS X standardmäßig kommt.

NAME 
     indent - changes the appearance of a C program by inserting or deleting 
     whitespace. 

SYNOPSIS 
     indent [options] [input-files] 

     indent [options] [single-input-file] [-o output-file] 

     indent --version 

DESCRIPTION 
     This man page is generated from the file indent.texinfo. This is Ediâ 
     tion of "The indent Manual", for Indent Version , last updated . 

     The indent program can be used to make code easier to read. It can 
     also convert from one style of writing C to another. 

     indent understands a substantial amount about the syntax of C, but it 
     also attempts to cope with incomplete and misformed syntax. 
+0

Es ist auf meinem OS X 10.5.5-Rechner. Ich stelle mir vor, dass es möglicherweise als Teil der Entwicklerwerkzeuge installiert wird. – dbr

+0

Es ist installiert auf 10.6 – Joe

8

Eine einfache, aber begrenzte Lösung ist Bearbeiten-> Formatieren-> Neu einrücken in Xcode, die Ihre aktuellen Einrückungseinstellungen (Xcode-> Einstellungen ... -> Einrückung) anwendet.

+0

Ausfüllen der Ellipsen: Xcode-> Einstellungen-> Textbearbeitung-> Einrückung – tomblah

5

Von Xcode:

1) die Einrückungen Einstellungen ändern entsprechen, was Sie wollen.

2) Wählen eine Datei auf arbeiten und wählen Sie alle (cmd-A)

3) links schieben (CMD- [) mehrmals, bis alle Zeilen an der linken Kante des Fensters liegen.

4) Verwenden Sie Re-einrücken Selection (von Bearbeiten-> Format-> oder von der rechten Maustaste das Kontextmenü)

funktioniert nur auf eine Datei zu einem Zeitpunkt, nicht das gesamte Projekt. Behandelt auch nur die Einrückung.

2

Nachdem ich mit mehreren externen Formatierern und dem schwachen internen xcode-Formatierer herumgebastelt hatte, entschied ich mich schließlich für unkrustig. Uncrustify hat eine ziemlich gute Objective-C-Unterstützung, kann einfach in xcode als Benutzerskript integriert werden und bietet einen zentralisierten Formatierer für fast alle Sprachen, die xcode nativ unterstützt.

Die größte Hürde mit Unkrustierung ist die entmutigende Konfigurationsdatei. Meine Empfehlung, nimm eine der mitgelieferten Beispielkonfigurationen (ben2.cfg ist sehr gut), füge in das objc.cfg-Beispiel ein und tweeze wie nötig.

0

Das einzige Merkmal der "GTMXcodePlugin", auch bekannt als Google Toolbox für Mac Xcode Plugin - hat eine große Aufgabe der Aufräumen von Ziel-C-Code, indem Whitespaces effektiv und sicher abgeschnitten werden.

The GTM Xcode 4 plugin derzeit fügt nur ein „Clean Up Whitespace“ Menüpunkt zum Ende des Menü „Bearbeiten“ unnötige Zeilenende Leerraum von Textdateien zu entfernen. Hoffentlich werden wir bald weitere Funktionen hinzufügen. Es wurde nur gegen Xcode 4.2 getestet.

0

Der neueste, beste Weg, dies zu tun, ist SpaceCommander. Es basiert auf der Spitze des Klangs und hat viele andere nette Eigenschaften, und wird beim Schreiben beibehalten und aktiv.