Як я можу позначити коментарі "робити" у Xcode?


111

В даний час я працюю над завданням на маніпуляції зображеннями на основі iOS.

Проблема:

Я працюю над різними модулями. Отже, якщо мені потрібно буде щось додати в модулі в майбутньому, я хочу позначити це як примітку. Чи є інші макроси чи подібні, щоб додати примітку до Xcode?

Я намагався:

Для цього я зараз використовую #pragma:

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

Я отримав:

Але в розділі Метод він перелічується як:

Робити

Що мені насправді потрібно:

Проблема полягає в тому, що він вказаний у списку методів, тому іноді я забув видалити це з розділу, і його дуже важко знайти у всьому вихідному коді. (Пошук за результатами #pragma для показу цілих списків)

Технічні деталі:

Я використовую Xcode версії 4.6.2.


Як мені дістатися до конкретного представлення, де Xcode перераховує всі методи, позначки прагми та TODO-примітки?
Міща

@Mischa: Перевір мою відповідь, це знаходиться під рядком списку методів.
Мідхун МП

Я перевірив вашу відповідь і не знайшов підказки, як показати це спливаюче вікно. Але я думаю, я знайшов це зараз: це поверх редактора коду в тій "навігаційній" панелі, правда?
Міща

Btw: Чи є спосіб показати відразу всі TODO проекту?
Міща

@Mischa: Так, він знаходиться вгорі редактора коду, і, наскільки мені відомо, немає способу відобразити всіх, щоб робити коментарі одразу (Замість того, щоб шукати весь проект)
Мідхун MP

Відповіді:


133

Зрозумів.

Написання коментарів, як:

// TODO: Do something

Зробимо трюк.

У мене щось таке:

РОБИТИ


Також існує маса варіантів, таких як :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun

16
ви також можете використовувати // FIXME: або # попередження. коли ви використовуєте #warning, ви отримали попередження в Xcode і можете перейти безпосередньо до цієї частини.
щітка51

6
Хіба це не те, що @ Dev2rights розмістив за годину до вас? Чому ви не приймаєте його відповідь?
trojanfoe

@trojanfoe: так. Але я отримав для мене більш влучне рішення // MARK: і #warning. Тому я його не прийняв
Мідхун, депутат

1
Ну // FIXME, // MARKі #warningне такі, як // TODOі так, що не відповідають на ваше запитання.
trojanfoe

1
@Domsou: В даний час немає інших варіантів, крім перерахованих. Я оновлю свою відповідь, якщо отримаю.
Мідхун МП

129
// TODO: the thing todo

Як ви показуєте завдання з todo.


10
Ви також можете скористатися, // FIX: Everything crashes all the timeщоб легше повернутися до частин вашого коду, які генерують проблеми за допомогою панелі стрибків.
Маартен

Як це дивно не використовувати коментар не показує коментар у XCode 5.1.1
loretoparisi

Ще 2 маркери, які здаються актуальними тут, є #warning та #error i.imgur.com/KVjrVwG.png
Зейн Хелтон,

3
Нітпік: Поставте пробіл між //і TODO:. Наприклад: // TODO: Read this from prefs. Якщо ви переглянете документацію мов Swift та Objective C, ця космічна конвенція досить послідовно дотримується.
Джеффро

43

Використання

//TODO: some thing here

працює, якщо все, що ви хочете зробити, - це переглянути список тодосів у спадному меню

Якщо ви хочете бути нав'язливим, #warningзамість цього можете використовувати позначки:

#warning this will create a compiler warning.

А під час створення програми ви отримаєте попередження про компілятор (жовтий трикутник, а не помилка компілятора), яке трохи більше "вам в обличчя" про нагадування про те, що вам потрібно зробити.


Я думаю, що #warningце найкраще рішення, оскільки воно попередить вас під час компіляції. Спасибі
Качка

36

У нижченаведеному сценарії ви можете побачити всі необхідні теги, наприклад попередження.

  1. Виберіть проект у Навігаторі проектів
  2. Відкрийте ціль на бічній панелі та перейдіть на вкладку «Фази побудови»
  3. Натисніть на знак "+"
  4. Виберіть "Нова фаза збірки сценаріїв" Додавання сценарію
  5. Додати нижче сценарій до "Запустити сценарій" Готовий сценарій Сценарій:

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

введіть тут опис зображення

Оригінальна відповідь була взята звідси

Ще одна альтернатива - плагін XToDo для Xcode.


чудове рішення, чи є спосіб виключити всі файли стручка? У моїх використаних розширеннях є пара Todos oder Mixmes?
Марко Вебер

Я знайшов рішення в цій публікації stackoverflow.com/q/37157027/6003494 сценарій: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/"
Марко Вебер

6

Ви можете використовувати плагін XToDo

https://github.com/trawor/XToDo

використовувати ctrl + t, щоб запустити / вимкнути вікно списку

використовувати ctrl + t, щоб запустити / вимкнути вікно списку

Приклад панелі інструментів

Проста установка за допомогою alcatraz використовуйте ctrl + t, щоб запускати / вимикати вікно списку


1
Прокручується вниз, щоб запропонувати це, повністю рекомендую.
MANIAK_dobrii

6

Я почав з

// TODO: Implement bubble sort.

Тоді я приєднався до великого проекту, і іноді мені потрібен був тодо, щоб жити довше, ніж зобов’язання WIP, і так, щоб відрізнити моїх тодосів від своїх однолітків, я називаю, що розставив мою тодо моїми ініціалами:

// TODO: SM: Implement bubble sort

Іноді мені хотілося більшої видимості, тому я почав використовувати попередження про прагму в деяких місцях.

#warning Implement bubble sort

Одного разу я вирішив включити жорсткий режим, додавши -Werror до своїх cflags. На жаль, це робить попередження прагми марними, оскільки вони перешкоджають складанню. І тому я повернувся до використання, // TODO:поки Джефф Надо не сказав мені, що можу поставити

-Wno-error=#warnings

в моїх cflags, щоб не сприймати попередження прагми як помилки. Так що тепер#warning і -Werrorможуть жити поряд один з одним.


3

Я схильний писати саме // TODO: Bla bla bla bla

Тоді я просто роблю COMMAND-SHIFT-F і шукаю "// TODO".

Використання спадного контуру файлу покаже лише TODO для поточного файлу, але я, як правило, хочу побачити статус TODO мого проекту.

Грубе рішення, але це робить свою роботу.


2

Я розділив розпізнані жетони на попередження та помилки для власного використання, думав, що поділюсь ними тут:

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

Ще один простий метод, трохи поза полем, якщо ви не хочете захаращувати рядок списку методів, - це використовувати конвенцію в коментарях, таких як //Todo: і коли ви хочете звертатися до них масово, просто виберіть «Знайти навігатор, випадок відповідності» і шукати//Todo:

Я вважаю за краще це, оскільки мені не подобається, як методи, що падають, виглядають як спагетті-код. І так, у мене часто багато Todo: 's;)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.