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.


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

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.


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ć.


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.


ś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

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.


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.


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}

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;)


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.