Existe-t-il un moyen de forcer Xcode à couper les blancs de fin de ligne lorsque je sauvegarde le fichier ?
J'utilise la version 3.1.3 si cela compte.
Existe-t-il un moyen de forcer Xcode à couper les blancs de fin de ligne lorsque je sauvegarde le fichier ?
J'utilise la version 3.1.3 si cela compte.
À partir de Xcode 4.4, les espaces blancs seront automatiquement coupés par défaut, sauf si la ligne est entièrement composée d'espaces blancs. Vous pouvez également activer Including whitespace-only lines
pour corriger ce problème, qui n'est pas actif par défaut.
Aller à Xcode > Preferences > Text Editing > While editing
Ce paramètre ne supprime les espaces blancs de fin de ligne qu'une fois que le curseur a quitté la ligne. Ainsi, il vous permet toujours d'enregistrer un fichier avec une ligne d'espacement de fin de ligne, si le curseur se trouve sur cette ligne au moment de l'enregistrement.
Pourquoi diable n'est-ce pas le cas par défaut ? Si vous avez un fichier existant avec des espaces blancs de fin, il suffit de tout marquer, couper, enregistrer, coller, enregistrer.
J'utilise le Google Toolbox pour Mac Xcode Plugin il ajoute un paramètre "Corriger les espaces blancs à la sauvegarde" qui coupe les espaces blancs de fin de ligne à la sauvegarde. Cela m'a beaucoup manqué dans emacs.
Vous pouvez créer un script et le lier à un raccourci clavier :
Ensuite, entrez le script suivant :
#!/usr/bin/perl
while (<>) {
s/\s+$//;
print "$_\n";
}
Ah, oui, si simple... Merci. Y a-t-il un moyen d'associer cela à l'enregistrement du fichier ?
Pour travailler sur un fichier entier (ce qui est probablement ce que vous voulez faire), réglez l'entrée sur "Document entier" et la sortie sur "Remplacer le contenu du document". Cependant, cela laisse le curseur au bas du fichier.
Ceci n'est pas possible dans Xcode 3.2
Edit :
J'ai répondu à cette question si brièvement parce qu'il n'y a aucun moyen de faire ça. correctement .
Bien sûr, puisqu'il s'agit d'un logiciel, vous pouvez faire n'importe quoi : en commençant par des piratages d'Input Manager ou d'autres moyens d'injection de code jusqu'à l'interception du clavier à l'échelle du système, vous pouvez modifier votre système local pour faire n'importe quoi à tout moment. Vous pouvez mettre en place une action de dossier Applescript (arrgh) ou utiliser un démon de lancement et la fonction FSEvents pour surveiller vos fichiers de code source.
Vous pouvez également ajouter quelques scripts à Xcode (scripts de l'utilisateur dans le menu, phases scripts dans les cibles, actions personnalisées dans l'organisateur, il y a même la possibilité très inconnue d'un scripts de démarrage), mais toutes ces solutions sont imparfaites, car cela implique l'utilisateur ou une configuration personnalisée sur la machine de l'utilisateur.
Je n'ai pas connaissance d'une solution qui fonctionne simplement après avoir extrait un projet de SCM. Je pense qu'il y a un besoin pour cela et pour des personnalisations similaires scripts, donc j'ai déposé un bug (radar 7203835, "Feature : more user scripts triggers in Xcode workflow"). Je n'ai pas encore reçu de commentaires.
Voici le texte intégral de l'entrée du radar :
Il serait utile d'avoir plus d'endroits pour exécuter des scripts dans Xcode.
Exemples :
Pré construire scripts
Les scripts pré-construits pourraient être utilisés pour construire des pré-requis comme les fichiers *.xcconfig ou les en-têtes config.h. Ceci n'est pas possible avec un "Run scripts Build phases", puisque le suivi des dépendances a lieu avant le déclenchement de toute phase de construction.Post build scripts
Similaire au précédent, mais exécuté après la construction (y compris la signature du code, etc.). Utile pour un emballage supplémentaire, la vérification de la validité, etc.Pré/post SCM Commit scripts.
Pour vérifier l'intégrité du projet.Sauvegarde pré/post fichier script.
Pour vérifier/modifier un fichier avant de l'enregistrer. Par exemple, exécuter cody beautifiersActions de projet personnalisées.
Je suis conscient de la capacité de l'organisateur à définir des actions arbitraires. Mais il s'agit d'une fonctionnalité par utilisateur (qui ne fait pas partie du projet). J'aimerais définir des actions comme construire ou nettoyer qui apparaissent dans le menu de construction et qui font partie d'un projet.
Modifié pour expliquer pourquoi les solutions de contournement ne sont pas satisfaisantes dans ce cas.
Voir ici pour Xcode4 : http://www.wezm.net/technical/2011/08/strip-trailing-whitespace-xcode-4/
Cool, Google toolbox pour Mac ajoute maintenant une option "trim whitespace" pour Xcode4.
http://code.google.com/p/google-toolbox-for-mac/downloads/list
Merci, Google !
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.