Jak oznaczyć komentarze „Do zrobienia” w Xcode?

111

Obecnie pracuję nad zadaniem manipulacji obrazem opartym na systemie iOS.

Problem:

Pracuję nad różnymi modułami. Więc jeśli w przyszłości będę musiał dodać coś do modułu, chcę oznaczyć to jako notatkę do zrobienia. Czy są jakieś inne makra lub podobne do dodania notatki do zrobienia w Xcode?

Próbowałem:

Do tego obecnie używam #pragma:

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

Mam:

Ale zawiera listę w sekcji Metoda, na przykład:

Do zrobienia

Czego właściwie potrzebuję:

Problem polega na tym, że jest wymieniony na liście metod, więc czasami zapomniałem usunąć to z sekcji, a także bardzo trudno jest go znaleźć w całym kodzie źródłowym. (Wyszukiwanie #pragma results, aby wyświetlić całe listy)

Szczegóły techniczne:

Używam Xcode w wersji 4.6.2.

Midhun MP
źródło
Jak dostać się do tego konkretnego widoku, w którym Xcode wyświetla wszystkie metody, oznaczenia pragma i adnotacje do zrobienia?
Mischa
@Mischa: Sprawdź moją odpowiedź, jest pod paskiem listy metod.
Midhun MP
Sprawdziłem twoją odpowiedź i nie znalazłem wskazówki, jak wyświetlić to wyskakujące okienko. Ale myślę, że znalazłem to teraz: jest na górze edytora kodu na pasku „nawigacji”, prawda?
Mischa
Btw: Czy jest jakiś sposób, aby pokazać wszystkie zadania do wykonania projektu naraz?
Mischa
@Mischa: Tak, jest na szczycie edytora kodu i według mojej wiedzy nie ma możliwości wyświetlenia wszystkich komentarzy naraz (Zamiast przeszukiwać cały projekt)
Midhun MP

Odpowiedzi:

133

Mam to.

Pisanie komentarza takiego jak:

// TODO: Do something

Da rade.

Mam coś takiego:

DO ZROBIENIA


Istnieje również wiele opcji, takich jak :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun
Midhun MP
źródło
16
możesz też użyć // FIXME: lub #warning. kiedy używasz #warning, otrzymałeś ostrzeżenie w Xcode i możesz przejść bezpośrednio do tej części.
szczotka51
6
Czy to nie to, co @ Dev2rights opublikował godzinę przed tobą? Dlaczego nie przyjmiesz jego odpowiedzi?
trojanfoe
@trojanfoe: tak. Ale mam dla mnie bardziej trafne rozwiązanie // MARK: i #warning. Dlatego go nie zaakceptowałem
Midhun MP
1
Cóż // FIXME, // MARKi #warningto nie to samo, co // TODOi, więc to nie odpowiada na twoje pytanie.
trojanfoe
1
@Domsou: Obecnie nie ma innych dostępnych opcji poza wymienionymi. Zaktualizuję odpowiedź, jeśli ją otrzymam.
Midhun MP,
129
// TODO: the thing todo

To sposób, w jaki pokazujesz zadania do wykonania.

Dev2rights
źródło
10
Możesz również użyć, // FIX: Everything crashes all the timeaby ułatwić powrót do części kodu, które generują problemy, za pomocą paska przeskoku.
Maarten
Dziwne użycie tego nie pokazuje komentarza w XCode 5.1.1
loretoparisi.
2 kolejne znaczniki, które wydają się tutaj istotne, to #warning i #error i.imgur.com/KVjrVwG.png
Zane Helton
3
Nitpick: Umieść spację między //a TODO:. Na przykład: // TODO: Read this from prefs. Jeśli przejrzysz dokumentację języków Swift i Objective C, ta konwencja kosmiczna jest dość konsekwentnie przestrzegana.
Jeffro
43

Używając

//TODO: some thing here

działa, jeśli wszystko, co chcesz zrobić, to spojrzeć na listę rzeczy do zrobienia w menu rozwijanym

Jeśli chcesz być uciążliwy, możesz #warningzamiast tego użyć znaków:

#warning this will create a compiler warning.

A kiedy zbudujesz aplikację, otrzymasz ostrzeżenie kompilatora (żółty trójkąt, a nie błąd kompilatora), które jest trochę bardziej „na twarz”, przypominające ci o rzeczach, które musisz zrobić.

Abizern
źródło
Myślę, że #warningto najlepsze rozwiązanie, ponieważ ostrzeże Cię w czasie kompilacji. Dzięki
Duck
36

Dzięki poniższemu skryptowi możesz zobaczyć wszystkie wymagane tagi, takie jak ostrzeżenia.

  1. Wybierz projekt w Nawigatorze projektu
  2. Otwórz cel na pasku bocznym i przejdź do zakładki „Fazy budowy”
  3. Kliknij znak „+”
  4. Wybierz „Faza budowy nowego skryptu uruchamiania” Dodanie skryptu
  5. Dodaj poniższy skrypt do „Uruchom skrypt” Gotowy skrypt . Skrypt:

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

wprowadź opis obrazu tutaj

Oryginalna odpowiedź została zaczerpnięta stąd

Inną alternatywą jest wtyczka XToDo dla Xcode.

brzytwa28
źródło
świetne rozwiązanie, czy istnieje sposób na wykluczenie wszystkich plików pod? w moich używanych rozszerzeniach jest kilka Todos oder Mixmes?
Marco Weber
znalazłem rozwiązanie samodzielnie w tym poście stackoverflow.com/q/37157027/6003494, scenariusz to: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

Możesz użyć wtyczki XToDo

https://github.com/trawor/XToDo

użyj ctrl + t, aby włączyć / wyłączyć okno listy

użyj ctrl + t, aby włączyć / wyłączyć okno listy

Przykład paska narzędzi

Łatwa instalacja z alcatraz użyj ctrl + t, aby włączyć / wyłączyć okno listy

Leo Cavalcante
źródło
1
Przewijałem w dół, aby to zasugerować, całkowicie polecam.
MANIAK_dobrii
6

Zacząłem od

// TODO: Implement bubble sort.

Potem dołączyłem do dużego projektu i czasami potrzebowałem rzeczy do zrobienia, aby żyć dłużej niż zatwierdzenie WIP, więc aby odróżnić moje rzeczy do zrobienia od moich rówieśników, których nazwałem, oddzieliłem zadanie od inicjałów:

// TODO: SM: Implement bubble sort

Czasami potrzebowałem większej widoczności, więc w niektórych miejscach zacząłem używać ostrzeżeń pragmy.

#warning Implement bubble sort

Pewnego dnia zdecydowałem się włączyć tryb trudny, dodając -Werrordo moich cflagów. Niestety, sprawia to, że ostrzeżenia pragmy są bezużyteczne, ponieważ uniemożliwiają kompilację. Więc wróciłem do używania, // TODO:dopóki Jeff Nadeau nie powiedział mi, że mogę położyć

-Wno-error=#warnings

w moich cflags, aby nie traktować ostrzeżeń pragmy jako błędów. Więc teraz #warningi -Werrormogą żyć obok siebie.

Steve Moser
źródło
3

Zwykle piszę dokładnie // TODO: Bla, bla, bla

Następnie po prostu wykonuję COMMAND-SHIFT-F i szukam „// TODO”.

Korzystanie z listy rozwijanej konspektu pliku spowoduje wyświetlenie tylko zadań do wykonania dla bieżącego pliku, ale zazwyczaj chcę zobaczyć stan zadań do wykonania w moim projekcie.

Szorstkie rozwiązanie, ale spełnia swoje zadanie.

nenchev
źródło
2

Podzieliłem rozpoznane tokeny na ostrzeżenia i błędy do własnego użytku, pomyślałem, że udostępnię to tutaj:

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
źródło
0

Inną prostą metodą, nieco poza polem, jeśli nie chcesz zaśmiecać paska listy metod, jest użycie konwencji w komentarzach, takich jak //Todo: i kiedy chcesz zająć się nimi masowo, po prostu wybierz Find Navigator, match case i wyszukaj//Todo:

Wolę to, ponieważ nie podoba mi się lista metod, która wygląda jak kod spagetti. I tak, często mam wiele rzeczy do zrobienia: 's;)

rysował..
źródło
0
#error

i

#warning

są również używane w programowaniu w C.

Deepraj Chowrasia
źródło