web-dev-qa-db-fra.com

Xcode utilisant FIXME, TODO, ???,?

J'ai commencé à utiliser les balises FIXME, TODO, ??? et !!! dans XCode, mais je trouve douloureux qu'il ne reconnaisse pas les balises lorsqu'elles font partie d'une fonction. Les étiquettes ne sont reconnues qu'en dehors d'une fonction donnée.

Comment puis-je faire reconnaître ces balises dans une fonction (car c'est là que se trouvent les bugs)?

39
Ben

Édité 2016-02-02

Xcode prend maintenant en charge // MARK :, // TODO: et // FIXME: points de repère pour annoter votre code et les énumérer dans la barre de saut.


Pour rechercher ces annotations spéciales (et en fait toutes les annotations que vous spécifiez vous-même), vous pouvez utiliser le navigateur de recherche, entrer la chaîne suivante, puis choisir "Dans le projet, expression régulière" ... ", ignorer la casse":

(//FIXME|//!!!|//\?\?\?|//TODO)

Cela va rechercher dans votre projet toutes ces annotations spéciales. Vous pouvez même ajouter les balises que vous souhaitez, par exemple "// REVIEW: veuillez revoir le code suivant". Ce serait alors la chaîne de recherche suivante:

(//FIXME|//!!!|//\?\?\?|//TODO|//REVIEW)

J'ai créé un onglet dans mon espace de travail dans lequel le navigateur de recherche est toujours ouvert et rempli avec cette chaîne. Malheureusement, XCode supprime parfois cette chaîne de la boîte de recherche, vous devez donc la copier-coller lorsque vous en avez besoin.

19
Florian

Dans xcode 4.1 (je ne sais pas si cela fonctionne dans les versions précédentes) j'écris

#warning TODO: fix this later...

pour obtenir un avertissement de compilation ou

#error FIXME: fix now!

pour obtenir une erreur de compilation.

J'ajoute également ces éléments à la bibliothèque d'extraits de code pour faciliter l'ajout de tâches.

50
loomer

Une solution de contournement consiste à utiliser un script de construction qui les marque comme des avertissements:

KEYWORDS="TODO|FIXME|\?\?\?:|\!\!\!:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | \
xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | \
Perl -p -e "s/($KEYWORDS)/ warning: \$1/"

Crédit à Benjamin Ragheb .

37
frank

Le FIXME :, TODO :, ???: and !!!: fonctionne en 4.3.3 à l'intérieur et à l'extérieur des fonctions.

Vous pouvez avoir n'importe quel nombre de blancs avant ou après la double barre oblique, mais vous devez utiliser des majuscules et suivre la balise avec deux points.

Juste pour que ce soit clair - tous ces travaux fonctionnent:

//          FIXME: This works.
  //TODO: This works.
    //                  !!!: Working.
// // //???: Works as well.
8
Johan

que diriez-vous de ce plugin Xcode? -> https://github.com/trawor/XToDo

4
Travis Worm

xCode 6 beta 4 devrait prendre en charge les repères MARK, TODO et FIXME.

Xcode supporte maintenant // MARK :, // TODO: et // les repères FIXME pour annoter votre code et les répertorie dans le (14768427)!

3
Ramis

Juste une tête, mais j'ai remarqué que le TODO: ne fonctionne pas dans les blocs de toute sorte. Il suffit de le déplacer juste au-dessus ou au-dessous de votre bloc.

2
Yarmoshy

Ceci est le script que j'utilise en tant que phase de construction ajoutée, notez qu'il exclut les fichiers introduits via Carthage (très ennuyeux pour les obtenir également, car ce n'est pas votre code):

TAGS="WARNING:|TODO:"
echo "searching ${SRCROOT} for ${TAGS}"
find "${SRCROOT}" \( -name "*.Swift" \) -not -path "${SRCROOT}/Carthage/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | Perl -p -e "s/($TAGS)/ warning: \$1/"

Fonctionne bien sur xCode 9.3 avec Swift 4

0
HixField