Wie kann ich "To Do" -Kommentare in Xcode markieren?

111

Derzeit arbeite ich an einer iOS-basierten Bildbearbeitungsaufgabe.

Problem:

Ich arbeite an verschiedenen Modulen. Wenn ich also in Zukunft etwas in ein Modul einfügen muss, möchte ich es als Aufgabennotiz markieren. Gibt es andere Makros oder ähnliches, um eine Notiz in Xcode hinzuzufügen?

Ich habe es versucht:

Dafür benutze ich momentan #pragmawie folgt :

#pragma mark -
#pragma mark To do: Add the Image processing methods.

Ich habe:

Aber es listet im Abschnitt Methode wie folgt auf:

Machen

Was ich eigentlich brauche:

Das Problem ist, dass es unter der Methodenliste aufgeführt ist. Manchmal habe ich vergessen, dies aus dem Abschnitt zu entfernen. Außerdem ist es sehr schwierig, es im gesamten Quellcode zu finden. (Durchsuchen von # Pragma-Ergebnissen, um ganze Listen anzuzeigen)

Technische Details:

Ich verwende Xcode Version 4.6.2.

Midhun MP
quelle
Wie komme ich zu dieser bestimmten Ansicht, in der Xcode alle Methoden, Pragma-Markierungen und TODO-Anmerkungen auflistet?
Mischa
@ Mischa: Überprüfen Sie meine Antwort, es ist unter der Methodenliste Leiste.
Midhun MP
Ich habe Ihre Antwort überprüft und keinen Hinweis gefunden, wie dieses Popup angezeigt werden kann. Aber ich glaube, ich habe es jetzt gefunden: Es befindet sich oben auf dem Code-Editor in dieser "Navigations" -Leiste, oder?
Mischa
Übrigens: Gibt es eine Möglichkeit, alle TODOs des Projekts gleichzeitig anzuzeigen?
Mischa
@ Mischa: Ja, es befindet sich oben im Code-Editor, und meines Wissens gibt es keine Möglichkeit, alle Kommentare gleichzeitig anzuzeigen (anstatt das gesamte Projekt zu durchsuchen)
Midhun MP

Antworten:

133

Ich habe es verstanden.

Kommentar schreiben wie:

// TODO: Do something

Wird den Trick machen.

Ich habe so etwas wie:

MACHEN


Es gibt auch viele Optionen wie :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun
Midhun MP
quelle
16
Sie können auch // FIXME: oder #warning verwenden. Wenn Sie #warning verwenden, wird in Xcode eine Warnung angezeigt, und Sie können direkt zu diesem Teil springen.
Pinsel 51
6
Ist es nicht das, was @ Dev2rights eine Stunde vor Ihnen gepostet hat? Warum akzeptierst du seine Antwort nicht?
Trojanfoe
@trojanfoe: ja. Aber ich habe eine passendere Lösung für mich // MARK: und #warning. Deshalb habe ich es nicht akzeptiert
Midhun MP
1
Nun // FIXME, // MARKund #warningsind nicht die gleichen wie // TODOund so beantwortet das Ihre Frage nicht.
Trojanfoe
1
@Domsou: Derzeit sind keine anderen Optionen als die aufgelisteten verfügbar. Ich werde meine Antwort aktualisieren, wenn ich welche bekomme.
Midhun MP
129
// TODO: the thing todo

Zeigen Sie Aufgaben.

Dev2rights
quelle
10
Sie können auch verwenden // FIX: Everything crashes all the time, um die Rückkehr zu Teilen Ihres Codes zu vereinfachen, die mithilfe der Sprungleiste Probleme verursachen.
Maarten
Seltsamerweise zeigt dies nicht den Kommentar in XCode 5.1.1
loretoparisi
2 weitere Marker, die hier relevant erscheinen, sind #warning und #error i.imgur.com/KVjrVwG.png
Zane Helton
3
Nitpick: Setzen Sie ein Leerzeichen zwischen //und TODO:. Zum Beispiel : // TODO: Read this from prefs. Wenn Sie die Dokumentation der Sprachen Swift und Objective C lesen, wird diese Raumkonvention ziemlich konsequent befolgt.
Jeffro
43

Verwendung der

//TODO: some thing here

funktioniert, wenn Sie nur die Liste der Aufgaben in der Dropdown-Liste anzeigen möchten

Wenn Sie aufdringlich sein möchten, können Sie #warningstattdessen Markierungen verwenden:

#warning this will create a compiler warning.

Und wenn Sie die App erstellen, erhalten Sie eine Compiler-Warnung (ein gelbes Dreieck, kein Compiler-Fehler), die Sie ein wenig "in Ihrem Gesicht" daran erinnert, was Sie tun müssen.

Abizern
quelle
Ich denke, es #warningist die beste Lösung, da sie Sie beim Kompilieren warnen wird. Danke
Ente
36

Mit dem folgenden Skript können Sie alle erforderlichen Tags wie Warnungen anzeigen.

  1. Wählen Sie Ihr Projekt im Projektnavigator aus
  2. Öffnen Sie das Ziel in der Seitenleiste und wechseln Sie zur Registerkarte "Build-Phasen"
  3. Klicken Sie auf "+"
  4. Wählen Sie "New Run Script Build Phase". Skript hinzufügen
  5. Fügen Sie das folgende Skript zu "Skript ausführen" hinzu. Bereites Skript Das Skript:

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

Geben Sie hier die Bildbeschreibung ein

Die ursprüngliche Antwort wurde von hier übernommen

Eine weitere Alternative ist das XToDo- Plugin für Xcode.

Rasiermesser28
quelle
Gute Lösung, gibt es eine Möglichkeit, alle Pod-Dateien auszuschließen? Gibt es ein paar Todos oder Mixmes in meinen verwendeten Erweiterungen?
Marco Weber
Ich habe in diesem Beitrag eine Lösung gefunden. stackoverflow.com/q/37157027/6003494 Das Skript lautet:KEYWORDS="TODO:|FIXME:|\?\?\?:|\!\!\!:" find "." \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "./Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"
Marco Weber
6

Sie können das XToDo-Plugin verwenden

https://github.com/trawor/XToDo

Verwenden Sie Strg + t, um das Listenfenster ein- / auszuschalten

Verwenden Sie Strg + t, um das Listenfenster ein- / auszuschalten

Beispiel für eine Symbolleiste

Einfache Installation mit alcatraz Verwenden Sie Strg + t, um das Listenfenster ein- und auszuschalten

Leo Cavalcante
quelle
1
Wurde nach unten gescrollt, um dies vorzuschlagen, kann es nur empfehlen.
MANIAK_dobrii
6

Ich habe mit angefangen

// TODO: Implement bubble sort.

Dann schloss ich mich einem großen Projekt an und manchmal brauchte ich eine Aufgabe, um länger als ein WIP-Commit zu leben. Um meine Aufgaben von meinen Kollegen zu unterscheiden, habe ich meine Aufgabe mit meinen Initialen getrennt:

// TODO: SM: Implement bubble sort

Manchmal wollte ich mehr Sichtbarkeit, deshalb begann ich an einigen Stellen Pragma-Warnungen zu verwenden.

#warning Implement bubble sort

Eines Tages beschloss ich, den Hard-Modus -Werrorzu aktivieren, indem ich meine Flaggen hinzufügte. Leider macht dies Pragma-Warnungen nutzlos, da sie das Kompilieren verhindern. Und so habe ich wieder verwendet, // TODO:bis Jeff Nadeau mir sagte, dass ich setzen kann

-Wno-error=#warnings

in meinen Flaggen, um Pragma-Warnungen nicht als Fehler zu behandeln. Also jetzt #warningund -Werrorkann nebeneinander leben.

Steve Moser
quelle
3

Ich neige dazu, genau zu schreiben // TODO: Bla bla bla

Dann mache ich einfach ein COMMAND-SHIFT-F und suche nach "// TODO".

Wenn Sie das Dropdown-Menü "Dateikontur" verwenden, werden nur TODOs für die aktuelle Datei angezeigt. Ich möchte jedoch den TODO-Status meines Projekts anzeigen.

Grobe Lösung, aber es macht seinen Job.

nenchev
quelle
2

Ich habe die erkannten Token für meinen eigenen Gebrauch in Warnungen und Fehler aufgeteilt und dachte, ich würde sie hier teilen:

KEYWORDS="STUB:|WARNING:|TODO:|FIXME:|DevTeam:|\?\?\?:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: warning: \$1/"

KEYWORDS="ERROR:|XXX:|\!\!\!:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"
ERROR_OUTPUT=`find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"`

exit ${#ERROR_OUTPUT}
Darren Ehlers
quelle
0

Eine andere einfache Methode, die etwas außerhalb des Rahmens liegt, wenn Sie die Methodenlistenleiste nicht überladen möchten, besteht darin, eine Konvention in Kommentaren wie zu verwenden, //Todo:und wenn Sie sie massenweise ansprechen möchten, wählen Sie einfach den Navigator suchen, Groß- / Kleinschreibung suchen und suchen nach//Todo:

Ich bevorzuge dies, da mir die Dropdown-Methoden nicht gefallen und wie Spagetti-Code aussehen. Und ja, ich habe oft viele Todo: 's;)

zeichnete ..
quelle
0
#error

und

#warning

werden auch in der C-Programmierung verwendet

Deepraj Chowrasia
quelle