web-dev-qa-db-fra.com

Formatage automatique de la source Xcode

En tant que développeur C #, je suis devenu très dépendant du formatage automatique de Visual Studio 2008. Plus précisément, je vais utiliser la CTRL + K , D raccourci clavier pour forcer les choses à remettre en forme après ma mise en œuvre bâclée.

J'essaie maintenant d'apprendre Objective-C et certaines fonctionnalités de Xcode manquent, mais aucune n'est probablement aussi douloureuse que le raccourci de formatage. Mes recherches sur Google n'ont rien révélé, bien qu'il semble y avoir des piratages. Est-ce que je manque quelque chose ou cette fonctionnalité n'existe pas nativement dans Xcode?

170
jslatts

Malheureusement, Xcode ne propose rien de plus complet que VS ou Jalopy pour Eclipse. Il existe CERTAINES fonctionnalités disparates, telles que Structure > Re-Indent ainsi que le formatage automatique utilisé lorsque vous collez du code dans votre fichier source. Je suis totalement avec vous, cependant; il y a certainement devrait quelque chose pour aider à résoudre les problèmes de formatage.

123
Marc W

C'est Ctrl + i.

Ou pour la technologie de pointe, coupez puis collez. Ça va reformater sur la pâte.

410
Ken

Je voudrais recommander deux options à considérer. Tous deux assez nouveaux et en évolution.

ClangFormat-Xcode (gratuit) - sur chaque cmd + s, le fichier est reformaté en un style spécifique et enregistré, facile à déployer au sein de l'équipe

Un plug-in Xcode pour formater votre code à l'aide des outils de formatage de Clang, par @travisjeffery.

Avec le format Clang, vous pouvez utiliser Clang pour formater votre code en utilisant des styles tels que comme LLVM, Google, Chrome, Mozilla, WebKit ou votre propre configuration.

Objective-Clean (payé, je n'ai pas encore essayé) - des erreurs de construction de l'application lorsque les règles de style prédéfinies sont violées - peut-être assez difficile à utiliser au sein de l'équipe, je ne l'ai donc pas essayée.

Avec une configuration très minimale, vous pouvez faire en sorte que Xcode utilise notre application pour appliquer vos règles. Si vous êtes surpris en train de violer l'une de vos règles, Xcode jettera une erreur de construction et vous mènera directement à la ligne fautive.

35
matm

Dans xcode, vous pouvez utiliser ce raccourci pour formater (réindenter) votre code source

  • Command + A sélectionner tous les codes sources

  • Ctrl + I se re-indenter

J'espère que cela t'aides.

26
Nguyen Minh Binh

Mon favori personnel PrettyC Wantabe est uncrustify: http://uncrustify.sourceforge.net/ . Il a quelques milliards d'options cependant, donc je vous suggère également de télécharger UniversalIndentGUI_macx, (également sur sourceforge) une interface graphique que quelqu'un a écrite pour aider à définir les options comme vous les aimez.

Vous pouvez ensuite ajouter ce script utilisateur personnalisé pour décompresser le texte sélectionné:

#! /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

Vous pouvez utiliser Command + A pour sélectionner tout le contenu et ensuite Ctrl + I pour formater le contenu sélectionné.

13
Paweł Walaszek

CmdA + CtrlI

Ou CmdA Et ensuite clic droit. Goto Structure -> Re-Indent

9
yuvi

Je pense aussi que xcode devrait avoir cette fonction . J'ai donc fait une extension pour le faire: Swimat

Installation simple par brew cask install swimatpreview

Vous pouvez essayer, voir https://github.com/Jintin/Swimat pour plus d'informations.

5
Jintin

Envisagez de vous acheter une licence pour AppCode , un Objective-C IDE intelligent aidant les développeurs iOS/OS X. AppCode est entièrement compatible avec Xcode, mais va au-delà de Xcode en ajoutant des fonctionnalités puissantes .

AppCode une variante Objective-C du Intellij IDEA IDE de JetBrains . Ils sont également les auteurs de l'extension populaire ReSharper de Visual Studio, dont l'objectif principal semble être une tentative désespérée d'apporter une touche d'expérience IDEA à un produit Microsoft.

AppCode utilise son propre analyseur de code, qui offre un support de refactoring et de navigation du code presque parfait. Il est également possible de réindenter et de reformater complètement le code (même si je manque toujours quelques paramètres de formatage dans les cas difficiles, mais la plupart du temps, cela fonctionne bien).

Vous pouvez essayer la version d'essai, bien sûr.

5
jazzcat

Vous pouvez également consulter https://github.com/octo-online/Xcode-formatter , qui est un programme de formatage basé sur Uncrustify et intégré à Xcode. Fonctionne comme un charme.

4
omartin

Vous pouvez essayer ce plugin XCode https://github.com/benoitsan/BBUncrustifyPlugin-Xcode

Il suffit de cloner le référentiel github, d'ouvrir le projet de plug-in dans XCode et de l'exécuter. Il sera installé automatiquement. Redémarrez Xode avant d'utiliser le plugin formatter.

Ne pas oublier d'installer uncrustify util avant. Homebrew, par exemple

brew install uncrustify

P.S. Vous pouvez activer la fonction "après la mise en forme enregistrée" dans Édition> Code de format> Préférences BBUncrustifyPlugin> Formatage à l'enregistrement.

J'espère que cela vous sera utile ;-) 

4
romanvbabenko

Je suggère d'utiliser ClangFormat. Pour installer, procédez comme suit:

  1. Installez le gestionnaire de paquets Alcatraz pour XCode Prend en charge Xcode 5+ et OS X 10.9+.
  2. Après l'installation, redémarrez XCode.
  3. Ouvrez XCode -> Menu Fenêtre -> Gestionnaire de paquets
  4. Recherchez (trouvez) ClangFormat et installez-le. Après l'installation, redémarrez XCode.
  5. Maintenant, dans le menu XCode, vous pouvez utiliser le sous-menu Éditer -> Format de gravure pour le formatage.

Vous pouvez choisir différents types de formatage. En activant également Format lors de l'enregistrement, vous pouvez obtenir une fonctionnalité de formatage automatique.

 enter image description here

3
csonuryilmaz

CTRL + i

c'est tout.

(non COMMAND + i)

2
LianY

Commencez par examiner la section "Mise en retrait" des préférences XCode. Vous pouvez personnaliser un peu les choses là-bas ...

Pour un contrôle plus fin, reportez-vous au document XCode User Defaults d’Apple. (Peut nécessiter un identifiant de développeur à afficher). Par exemple, j'ai pu désactiver le "retrait sur pâte" en entrant le texte suivant dans le terminal:

defaults write com.Apple.XCODE PBXIndentOnPaste No

pour relire votre réglage:

defaults read com.Apple.XCODE PBXIndentOnPaste
1
SteveS

Cela ne fonctionne que pour les langues dont les espaces ne sont pas délimités, mais ma solution consiste à supprimer tous les espaces, à l'exception des espaces, puis d'ajouter une nouvelle ligne après les caractères qui délimitent généralement EOL (par exemple, remplacer ';' par ';\n') ^ + i Solution.

J'utilise Python. 

Exemple de code, il suffit de remplacer les noms de fichiers:

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

Ce n'est pas parfait (exemple: pour les boucles), mais j'aime bien.

1
blerbl

Si votre Xcode version 3.x, vous devez utiliser "Script utilisateur" avec Uncrustify , voici un exemple:

#!/bin/sh

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

ajoutez ci-dessus à votre "script utilisateur" Xcode.

si Xcode version 4.x, je pense que vous devriez lire ce blog: Formatage de code dans Xcode 4 ,

De cette façon, utilisé les "Services Apple", mais ce n'est pas assez bon, car l'expérience est trop lente, est-ce que quelqu'un a la même chose?

pourquoi Apple abandonne le "script utilisateur" .... xD

1
poplax

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

Il fournit une extension Xcode ainsi qu'une option CLI.

1
jaym

Nous pouvons utiliser Xcode Formatter, qui utilise uncrustify pour formater facilement votre code source comme votre équipe le souhaite! 

Installation La méthode recommandée consiste à cloner le projet GitHub ou à le télécharger depuis https://github.com/octo-online/Xcode-formatter et d’ajouter le répertoire CodeFormatter dans votre projet Xcode pour obtenir: Formatage du code basé sur un raccourci Xcode: un raccourci pour formater les sources modifiées dans l’espace de travail actuel mise en forme automatique du code: ajoutez une phase de construction à votre projet pour formater les sources actuelles lorsque l'application génère toutes les sources de formatage: formatez tout votre code avec une ligne de commande vos règles de formatage partagées par projet: éditez et utilisez un même fichier de configuration avec votre équipe de développement de projet 1) Comment configurer le formateur de code pour votre projet Install uncrustify Le moyen le plus simple consiste à utiliser brew: $ Brew install uncrustify

Pour installer infusion: $ Ruby –e “$ (curl –fsSkl raw.github.com/mxcl/homebrew/go)”

Vérifiez que le fichier uncrustify se trouve dans /usr/local/bin$, ce qui nettoie

Si votre version non incrustée est inférieure à 0.60, vous devrez peut-être l'installer manuellement car la syntaxe moderne Objective-C a été ajoutée récemment . Ajoutez le répertoire CodeFormatter à côté de votre fichier .xcodeproj

Vérifiez que votre application Xcode s'appelle "Xcode" (nom par défaut) Vous pouvez voir ce nom dans le répertoire Applications/(ou dans votre répertoire d'installation Xcode personnalisé). Faites attention si vous avez plusieurs instances de Xcode sur votre Mac: assurez-vous que celle du projet porte bien le nom "Xcode"! (Pourquoi ceci? Ce nom est utilisé pour rechercher les fichiers Xcode actuellement ouverts. Voir CodeFormatter/Uncrustify_opened_Xcode_sources.workflow appleScript) . Installez le service automate Uncrustify_opened_Xcode_sources.workflow Copiez ce fichier dans votre dossier ~/Library/Services/(créez ce dossier si nécessaire). Faites attention: en double-cliquant sur le fichier .workflow, vous l'installerez. mais le fichier sera supprimé! Veillez à en laisser une copie aux autres utilisateurs.

Comment formater les fichiers ouverts lors de la construction du projet Ajoutez un "script d'exécution" de la phase de construction contenant la ligne suivante:

sh CodeFormatter/scripts/formatOpendSources.sh

Comment formater les fichiers en ligne de commande

Pour formater les fichiers actuellement ouverts, utilisez formatOpenedSources.sh:

$ sh CodeFormatter/scripts/formatOpendSources.sh

Pour formater tous les fichiers, utilisez formatAllSources.sh:

$ sh CodeFormatter/scripts/formatAllSources.sh PATH

PATH doit être remplacé par votre chemin de sources.

Par exemple; si le nom du projet est TestApp, la commande sera

$ sh CodeFormatter/scripts/formatAllSources.sh TestApp

il recherchera tous les fichiers du projet et formatera tous les fichiers tels que configurés dans le fichier uncrustify_objective_c.cfg.

Comment changer les règles du formateur

Éditez CodeFormatter/uncrustify_objective_c.cfg ouvert avec TextEdit

1
Ajeet Sharma

Eh bien, je cherchais un moyen facile. Et découvrez sur moyen .

Tout d’abord, copiez le texte JSON et validez-le sur jsonlint ou quelque chose de similaire. Ensuite, pour copier de jsonlint, le json est déjà formaté. Et collez le code sur Xcode en préservant le format, raccourci shift + option + command + v

0
Shad

Vous pouvez voir et modifier n’importe quel raccourci sur ce chemin: Xcode -> Préférences -> Liaisons de touches.

0
erdikanik