Supprimer les espaces de fin dans Xcode

Existe-t-il un moyen de forcer Xcode à réduire les espaces blancs lorsque je sauvegarde un fichier?

J’utilise la version 3.1.3 si cela compte.

Vous pouvez créer un script et le lier à un raccourci clavier:

  • Sélectionnez Menu Scripts> Modifier les scripts utilisateur …
  • Appuyez sur le bouton + et sélectionnez Nouveau script shell
  • Donnez-lui un nom comme “Ssortingp Trailing Spaces”, et donnez-lui un raccourci comme ⌃⇧R.
  • Définissez Input sur “Selection” et Output sur “Replace Selection”

Ensuite, entrez le script suivant:

#!/usr/bin/perl while (<>) { s/\s+$//; print "$_\n"; } 

À partir de Xcode 4.4, les espaces blancs seront automatiquement supprimés par défaut, sauf si la ligne est entièrement blanche. Vous pouvez également activer les Including whitespace-only lines pour résoudre ce problème, qui n’est pas actif par défaut.

Accédez à Xcode > Preferences > Text Editing > While editing

Capture d'écran des préférences Xcode

J’utilise le plug-in Xcode de Google Toolbox For Mac , il ajoute un paramètre “Corriger les espaces sur la sauvegarde” qui supprime les espaces blancs lors de l’enregistrement. Cela m’a beaucoup manqué d’emacs.

Pour Xcode 8, j’ai installé le plug-in swimat Xcode, pour le formatage du code Swift, qui supprime tous les espaces de fin et les lignes contenant uniquement des espaces.

Méthodes d’installation

  1. Installez via homebrew-cask:

     brew cask install swimat 
  2. Téléchargez l’application directement:
    https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. Cloner la twig d’ extension et l’archiver sur l’application Mac.

Usage

Une fois installé, vous pouvez lancer Swimat dans Xcode via l’ Editor -> Swimat -> Format .

Ce n’est pas possible dans Xcode 3.2

Modifier:

J’ai répondu à cette question si brièvement car il n’y a aucun moyen de le faire correctement .

Bien sûr, puisque c’est le logiciel, vous pouvez tout faire: en commençant par les hacks du gestionnaire d’entrée ou d’autres méthodes d’injection de code jusqu’à l’interception du clavier à l’échelle du système, vous pouvez modifier votre système local à tout moment. Vous pouvez configurer une action de dossier Applescript (arrgh) ou utiliser un démon de lancement et la fonctionnalité FSEvents pour regarder vos fichiers de code source.

Vous pouvez également append quelques scripts à Xcode (scripts d’utilisateur dans le menu, phases de script dans les cibles, Actions personnalisées dans l’organiseur, possibilité même inconnue de lancer un script), mais toutes ces solutions sont imparfaites car elles impliquent la configuration utilisateur ou personnalisée sur la machine de l’utilisateur.

Je ne suis pas au courant d’une solution qui fonctionne simplement après avoir vérifié un projet de SCM. Je crois qu’il y a un besoin pour cela et des scripts de personnalisation similaires, j’ai donc déposé un bug (radar 7203835, “Fonctionnalité: plus de déclencheurs de script utilisateur dans le workflow Xcode”). Je n’ai pas encore reçu de commentaires.

Voici le texte intégral de l’entrée radar:

Il serait utile d’avoir plus d’endroits pour exécuter des scripts dans Xcode.

Exemples:

  1. Scripts de pré-construction
    Les scripts de pré-construction peuvent être utilisés pour créer des prérequirejs tels que les fichiers * .xcconfig ou les en-têtes config.h. Cela n’est pas possible avec une “Exécuter des phases de construction de script”, car le suivi des dépendances a lieu avant toute phase de génération.

  2. Post script de construction
    Similaire à ci-dessus, mais en cours d’exécution après la construction (y compris la signature de code, etc.). Utile pour un emballage supplémentaire, vérification de validité, etc.

  3. Pré / Post Scripts de validation SCM.
    Pour vérifier l’intégrité du projet.

  4. Pré / Post File Save Script.
    Pour vérifier / modifier un fichier avant de l’enregistrer. Par exemple, lancez des esthétiseurs cody

  5. Actions de projet personnalisées.
    Je suis conscient de la capacité de l’organisateur à définir des actions arbitraires. Mais ceci est une fonctionnalité par utilisateur (ne faisant pas partie du projet). J’aimerais définir des actions comme build ou clean qui apparaissent dans le menu de construction et qui font partie d’un projet.

Voir ici pour Xcode4: http://www.wezm.net/technical/2011/08/ssortingp-trailing-whitespace-xcode-4/

Cool, la boîte à outils de Google pour Mac ajoute désormais une option “réduire les espaces” pour Xcode4.

http://code.google.com/p/google-toolbox-for-mac/downloads/list

Merci, Google!