it-swarm.com.de

Xcode mit FIXME, TODO, ???,?

Ich habe angefangen, die Tags FIXME, TODO, ??? und !!! in XCode zu verwenden, finde es jedoch schmerzhaft, dass die Tags nicht erkannt werden, wenn sie sich innerhalb einer Funktion befinden. Die Tags werden nur außerhalb einer bestimmten Funktion erkannt.

Wie kann ich diese Tags innerhalb einer Funktion erkennen lassen (da sich hier die Fehler befinden)?

39
Ben

Bearbeitet 2016-02-02

Xcode unterstützt jetzt die Markierungen // MARK :, // TODO: und // FIXME::, um Ihren Code mit Anmerkungen zu versehen, und listet sie in der Sprungleiste auf.


Um diese speziellen Markierungen (und eigentlich alle Markierungen, die Sie selbst festlegen) zu finden, können Sie den Such-Navigator verwenden. Geben Sie die folgende Zeichenfolge ein und wählen Sie "In Project, Übereinstimmung mit Regex" ... ", Fall ignorieren":

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

Dadurch wird Ihr Projekt nach all diesen speziellen Markups durchsucht. Sie können sogar beliebige Markierungen hinzufügen, z. "// REVIEW: Bitte überprüfen Sie den folgenden Code". Dies wäre dann die folgende Suchzeichenfolge:

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

Ich habe in meinem Arbeitsbereich eine Registerkarte erstellt, in der der Such-Navigator immer geöffnet und mit dieser Zeichenfolge gefüllt ist. Leider entfernt XCode diese Zeichenfolge manchmal aus dem Suchfeld. Sie müssen sie also jederzeit kopieren und einfügen.

19
Florian

In xcode 4.1 (weiß nicht, ob das in früheren Versionen funktioniert) schreibe ich

#warning TODO: fix this later...

eine Kompilierwarnung erhalten oder

#error FIXME: fix now!

einen Kompilierungsfehler erhalten.

Ich füge diese auch der Code-Snippet-Bibliothek hinzu, um das Hinzufügen von ToDos zu vereinfachen.

50
loomer

Eine Problemumgehung besteht darin, ein Build-Skript zu verwenden, das diese als Warnungen kennzeichnet:

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/"

Gutschrift an Benjamin Ragheb .

37
frank

Das FIXME :, TODO :, ???: und !!!: funktioniert in 4.3.3 innerhalb und außerhalb von Funktionen.

Sie können vor oder nach dem doppelten Schrägstrich eine beliebige Anzahl von Leerzeichen verwenden. Sie müssen jedoch Großbuchstaben verwenden und dem Tag einen Doppelpunkt folgen.

Nur um es klar zu machen - all diese Arbeiten:

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

wie wäre es mit diesem Xcode-Plugin? -> https://github.com/trawor/XToDo

4
Travis Worm

xCode 6 Beta 4 sollte Mark-, TODO- und FIXME-Orientierungspunkte unterstützen.

Xcode unterstützt jetzt // MARK :, // TODO: und // FIXME-Markierungen, um Ihren Code zu kommentieren, und Listet sie in der Sprungleiste auf. (14768427)!

3
Ramis

Nur ein Heads-Up, aber ich habe bemerkt, dass die TODOs nicht innerhalb von Blöcken funktionieren. Bewegen Sie es einfach über oder unter Ihrem Block.

2
Yarmoshy

Dies ist das Skript, das ich als zusätzliche Build-Phase verwende. Beachten Sie, dass Dateien, die über Carthage eingezogen wurden, ausgeschlossen werden.

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/"

Funktioniert gut mit xCode 9.3 mit Swift 4

0
HixField