it-swarm.com.de

Automatische Formatierung der Xcode-Quelle

Als C # -Entwickler bin ich in hohem Maße von der automatischen Formatierung in Visual Studio 2008 abhängig geworden. Insbesondere werde ich die verwenden CTRL + K , D Tastaturkürzel, um die Dinge nach meiner schlampigen Implementierung wieder in Form zu bringen.

Ich versuche jetzt, Objective-C zu lernen und vermisse bestimmte Funktionen in Xcode, aber wahrscheinlich ist keine so schmerzhaft wie die Formatierungsverknüpfung. Meine Google-Suchanfragen haben nichts Eingebautes ergeben, obwohl es anscheinend einige Hacks gibt. Vermisse ich etwas oder existiert diese Funktion nicht in Xcode?

170
jslatts

Leider ist Xcode nicht so umfangreich wie VS oder Jalopy for Eclipse. Es gibt einige unterschiedliche Funktionen, z. B. Structure > Re-Indent sowie die automatische Formatierung, die beim Einfügen von Code in die Quelldatei verwendet wird. Ich bin aber total bei dir. Es sollte definitiv sollte etwas dabei sein, um bei Formatierungsproblemen zu helfen.

123
Marc W

Das ist Ctrl + i.

Oder für Low-Tech, schneiden und dann einfügen. Es wird beim Einfügen neu formatiert.

410
Ken

Ich möchte zwei Optionen empfehlen, die eine Überlegung wert sind. Beide sind recht neu und entwickeln sich weiter.

ClangFormat-Xcode (kostenlos) - Jede cmd + s-Datei wird in einem bestimmten Stil formatiert und gespeichert. Sie kann problemlos im Team bereitgestellt werden

Ein Xcode-Plug-In zum Formatieren Ihres Codes mithilfe der Formatierungswerkzeuge von Clang von @ travisjeffery.

Mit dem Clang-Format können Sie Clang verwenden, um Ihren Code in Formaten wie .__ zu formatieren. als LLVM, Google, Chromium, Mozilla, WebKit oder Ihre eigene Konfiguration.

Objective-Clean (bezahlt, habe es noch nicht probiert) - App-Fehler beim Build-Fehler, wenn vordefinierte Stilregeln verletzt werden - möglicherweise ziemlich schwierig im Team zu verwenden, daher habe ich es nicht ausprobiert.

Mit einem minimalen Setup können Sie Xcode verwenden, um unsere App zur Durchsetzung von .__ zu verwenden. deine Regeln. Wenn Sie jemals gegen eine Ihrer Regeln verstoßen werden, Xcode wird einen Build-Fehler auslösen und Sie direkt zur fehlerhaften Zeile bringen.

35
matm

In xcode können Sie diese Verknüpfung verwenden, um Ihren Quellcode zu formatieren (neu einzurücken)

  • Command + A um alle Quellcodes auszuwählen

  • Ctrl + I neu einrücken

Hoffe das hilft.

26

Mein persönlicher Favorit PrettyC wantabe ist nicht crustify: http://uncrustify.sourceforge.net/ . Es gibt jedoch ein paar Milliarden Optionen, also empfehle ich Ihnen, UniversalIndentGUI_macx herunterzuladen, eine GUI, die jemand geschrieben hat, um die Optionen nach Ihren Wünschen festzulegen.

Sie können dieses benutzerdefinierte Benutzerskript dann hinzufügen, um den ausgewählten Text zu entkrustigen:

#! /bin/sh
#
# uncrustify!
echo -n "%%%{PBXSelection}%%%"
/usr/local/bin/uncrustify -q -c /usr/local/share/uncrustify/geo_uncrustify.cfg -l oc+ <&0
echo -n "%%%{PBXSelection}%%%"
18
geowar

Sie können verwenden Command + A um alle Inhalte auszuwählen und weiter Ctrl + I um den ausgewählten Inhalt zu formatieren.

13
Paweł Walaszek

CmdA + CtrlI

Oder CmdA Und dann Rechtsklick. Gehe zu Struktur -> Erneut einrücken

9
yuvi

Ich denke auch, dass xcode diese Funktion haben sollte ..__ Also habe ich eine Erweiterung dazu gemacht: Swimat

Einfache Installation durch brew cask install swimatpreview

Sie können es ausprobieren, siehe https://github.com/Jintin/Swimat für weitere Informationen.

5
Jintin

Erwägen Sie den Kauf einer Lizenz für AppCode , eines intelligenten Objective-C IDE, das iOS/OS X-Entwicklern hilft. AppCode ist vollständig kompatibel mit Xcode, geht aber über das Hinzufügen von leistungsstarken Funktionen hinaus.

AppCode eine Objective-C-Variante der Intellij IDEA IDE von JetBrains . Sie sind auch Autoren der beliebten ReSharper -Erweiterung für Visual Studio, deren Hauptzweck von hier aus wie ein verzweifelter Versuch erscheint, einem Microsoft-Produkt einen Hauch von IDEA Erfahrung zu verleihen.

AppCode verwendet einen eigenen Code-Analysator, der ein nahezu perfektes Refactoring und Code-Navigationsunterstützung bietet. Es gibt auch die Möglichkeit, Code erneut einzurücken und komplett neu zu formatieren (obwohl ich in harten Fällen immer noch einige Formatierungseinstellungen verpasse, aber meistens funktioniert es gut).

Sie können natürlich die Testversion ausprobieren.

5
jazzcat

Sie können auch einen Blick auf https://github.com/octo-online/Xcode-formatter werfen, einen auf Uncrustify basierenden und in Xcode integrierten Formatierer. Klappt wunderbar.

4
omartin

Sie könnten das XCode-Plugin https://github.com/benoitsan/BBUncrustifyPlugin-Xcode ausprobieren

Einfach das github-Repository klonen, das Plugin-Projekt in XCode öffnen und ausführen. Es wird automatisch installiert. Starten Sie Xode neu, bevor Sie das Formatierungs-Plugin verwenden.

Vergessen Sie nicht, Uncrustify util vorher zu installieren. Homebrew, zum Beispiel

brew install uncrustify

P.S. Sie können die Funktion "after save formatatting" unter Bearbeiten> Formatcode> BBUncrustifyPlugin-Voreinstellungen> Format beim Speichern aktivieren

Hoffe, das wird für dich nützlich sein ;-) 

4
romanvbabenko

Ich schlage vor, ClangFormat zu verwenden. Um zu installieren, folgen Sie bitte diesen Schritten:

  1. Installieren Sie den Alcatraz Package Manager für XCode Unterstützt Xcode 5+ und OS X 10.9+
  2. Nach der Installation starten Sie XCode neu.
  3. Öffnen Sie XCode -> Fenstermenü -> Paket-Manager
  4. Suchen Sie nach ClangFormat und installieren Sie es. Nach der Installation starten Sie XCode erneut.
  5. Im XCode-Menü können Sie nun das Untermenü Bearbeiten -> Clang-Format zum Formatieren verwenden.

Sie können verschiedene Formatierungsarten auswählen. Durch Aktivieren von Format On Save können Sie die automatische Formatierung aktivieren.

 enter image description here

3
csonuryilmaz

CTRL + i

das ist es.

(Nein COMMAND + i)

2
LianY

Untersuchen Sie zunächst den Abschnitt "Einzug" der XCode-Einstellungen. Sie können dort einiges anpassen ...

Weitere Informationen finden Sie im Dokument " XCode User Defaults " von Apple. (Eventuell ist ein Entwickler-Login erforderlich). Zum Beispiel konnte ich den "Einzug beim Einfügen" deaktivieren, indem Sie Folgendes in terminal eingeben:

defaults write com.Apple.XCODE PBXIndentOnPaste No

um Ihre Einstellung zurückzulesen:

defaults read com.Apple.XCODE PBXIndentOnPaste
1
SteveS

Dies funktioniert nur für Sprachen, bei denen kein Leerzeichen definiert ist. Meine Lösung besteht jedoch darin, alle Leerzeichen außer Leerzeichen zu entfernen und dann nach den Zeichen, die normalerweise EOL (z. B. Ersetzen von;; durch ';\n') angeben, eine neue Zeile hinzuzufügen ^ + i Lösung.

Ich benutze Python. 

Beispielcode, ersetzen Sie einfach die Dateinamen:

python -c "import re; open(outfile,'w').write(re.sub('[\t\n\r]','',open(infile).read()).replace(';',';\n').replace('{','{\n').replace('}','}\n'))"

Es ist nicht perfekt (Beispiel: für Loops), aber ich mag es.

1
blerbl

Bei Ihrer Xcode-Version 3.x sollten Sie "User Script" mit Uncrustify verwenden, hier ein Beispiel:

#!/bin/sh

echo -n "%%%{PBXSelection}%%%"
$YOURPATH_TO_UNCRUSTIFY/uncrustify -q -c $YOURPATH_TO_UNCRUSTIFY_CONFIG/CodeFormatConfig.cfg -l OC+
echo -n "%%%{PBXSelection}%%%"

fügen Sie oben zu Ihrem Xcode "User Script" hinzu.

wenn Xcode Version 4.x, sollten Sie dieses Blog lesen: Code Formatierung in Xcode 4 ,

Auf diese Weise nutzten die "Apple Services", aber es ist nicht gut genug, weil zu langsame Erfahrung, hat jemand das gleiche?

warum Apple "Benutzerskript" ablegt .... xD

1
poplax

Swift - https://github.com/nicklockwood/SwiftFormat

Es bietet eine Xcode-Erweiterung sowie eine CLI-Option.

1
jaym

Wir können Xcode Formatter verwenden, der uncrustify verwendet, um Ihren Quellcode so zu formatieren, wie es Ihr Team genau sein möchte. 

Installation. Die empfohlene Methode ist, das GitHub-Projekt zu klonen oder von https://github.com/octo-online/Xcode-formatter herunterzuladen und das CodeFormatter-Verzeichnis in Ihrem Xcode-Projekt hinzuzufügen, um Folgendes zu erhalten: Xcode-Shortcut-basierte Code-Formatierung: Eine Verknüpfung zum Formatieren geänderter Quellen im aktuellen Arbeitsbereich Automatische Code-Formatierung: Fügen Sie Ihrem Projekt eine Erstellungsphase hinzu, um die aktuellen Quellen zu formatieren, wenn die Anwendung erstellt wird. Formatierung aller Quellen: Formatieren Sie Ihren gesamten Code mit einer Befehlszeile Ihren Formatierungsregeln, die von project gemeinsam genutzt werden: Bearbeiten Sie eine Projektdatei und verwenden Sie dieselbe Konfigurationsdatei für Ihr Project-Entwicklerteam 1) So richten Sie den Code-Formatierer für Ihr Projekt ein Install uncrustify Der einfachste Weg ist die Verwendung von brew: $ Brew install uncrustify

Zum Installieren von brew: $ Ruby –e “$ (curl –fsSkl raw.github.com/mxcl/homebrew/go)”

Vergewissern Sie sich, dass sich uncrustify in /usr/local/bin$ befindet, das nicht crustify ist

Wenn Ihre nicht-vertrauenswürdige Version niedriger als 0,60 ist, müssen Sie sie möglicherweise manuell installieren, da vor kurzem die moderne Objective-C-Syntax hinzugefügt wurde .. .. Fügen Sie das CodeFormatter-Verzeichnis neben Ihrer .xcodeproj-Datei hinzu

Stellen Sie sicher, dass Ihre Xcode-Anwendung "Xcode" (Standardname) .__ heißt. Sie können diesen Namen im Verzeichnis Applications/(oder in Ihrem benutzerdefinierten Xcode-Installationsverzeichnis) finden. Seien Sie vorsichtig, wenn Sie mehrere Xcode-Instanzen auf Ihrem Mac haben: Stellen Sie sicher, dass der Name des Projekts tatsächlich "Xcode" lautet!. (Warum wird dieser Name verwendet, um aktuell geöffnete Xcode-Dateien zu finden. Siehe CodeFormatter/Uncrustify_opened_Xcode_sources.workflow appleScript) . Installieren Sie den Automator-Dienst. Uncrustify_opened_Xcode_sources.workflow Kopieren Sie diese Datei in Ihren Ordner ~/Library/Services/(erstellen Sie diesen Ordner ggf.). Achtung: Durch Doppelklicken auf die .workflow-Datei installieren Sie sie aber die datei wird entfernt! Lassen Sie eine Kopie davon für andere Benutzer.

So formatieren Sie geöffnete Dateien beim Erstellen des Projekts Fügen Sie eine Erstellungsphase "Skript ausführen" mit der folgenden Zeile hinzu:

sh CodeFormatter/scripts/formatOpendSources.sh

So formatieren Sie Dateien in der Befehlszeile

Verwenden Sie formatOpenedSources.sh zum Formatieren der aktuell geöffneten Dateien:

$ sh CodeFormatter/scripts/formatOpendSources.sh

Um alle Dateien zu formatieren, verwenden Sie formatAllSources.sh:

$ sh CodeFormatter/scripts/formatAllSources.sh PFAD

PATH muss durch den Quellpfad ersetzt werden.

Z.B; Wenn der Projektname TestApp lautet, lautet der Befehl

$ sh CodeFormatter/scripts/formatAllSources.sh TestApp

es sucht nach allen Dateien im Projekt und formatiert alle Dateien wie in der Datei uncrustify_objective_c.cfg konfiguriert.

So ändern Sie die Formatierungsregeln

Bearbeiten Sie CodeFormatter/uncrustify_objective_c.cfg mit TextEdit

1
Ajeet Sharma

Nun, ich suchte nach einem einfachen Weg. Und finde es heraus auf mittel .

Kopieren Sie zuerst den json-Text und validieren Sie ihn mit jsonlint oder ähnlichem. Um dann von jsonlint zu kopieren, ist bereits der json formatiert. Fügen Sie den Code unter Beibehaltung des Formats und der Verknüpfung in Xcode ein shift + option + command + v

0
Shad

Sie können alle Verknüpfungen unter diesem Pfad anzeigen und ändern: Xcode -> Voreinstellungen -> Tastaturbelegung.

0
erdikanik