Как я могу пометить комментарии «To Do» в Xcode?

111

В настоящее время я работаю над задачей обработки изображений на базе iOS.

Проблема:

Работаю над разными модулями. Поэтому, если мне нужно будет что-то добавить в модуль в будущем, я хочу отметить это как заметку «Сделать». Есть ли какие-либо другие макросы или аналогичные для добавления заметки в Xcode?

Я попытался:

Для этого в настоящее время я использую #pragma:

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

Я получил:

Но он перечислен в разделе «Метод», например:

Делать

Что мне действительно нужно:

Проблема в том, что он указан в списке методов, поэтому иногда я забываю удалить его из раздела, также очень сложно найти его во всем исходном коде. (Поиск результатов #pragma для отображения целых списков)

Технические подробности:

Я использую Xcode версии 4.6.2.

Midhun MP
источник
Как мне перейти к тому конкретному представлению, где Xcode перечисляет все методы, прагматические метки и аннотации TODO?
Миша
@Mischa: Проверьте мой ответ, он находится под панелью списка методов.
Midhun MP
Я проверил ваш ответ и не нашел подсказки, как показать это всплывающее окно. Но я думаю, что нашел его сейчас: он находится в верхней части редактора кода в этой «навигационной» панели, верно?
Миша
Кстати: есть ли способ показать сразу все TODO проекта?
Миша
@Mischa: Да, он находится в верхней части редактора кода, и, насколько мне известно, нет способа отобразить все, чтобы делать комментарии сразу (вместо поиска по всему проекту)
Midhun MP

Ответы:

133

Я понял.

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

// TODO: Do something

Сделаем свое дело.

Получилось что-то вроде:

ДЕЛАТЬ


Также есть много таких вариантов, как :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun
Midhun MP
источник
16
вы также можете использовать // FIXME: или #warning. когда вы используете #warning, вы получаете предупреждение в Xcode, и вы можете перейти непосредственно к этой части.
brush51
6
Разве это не то, что @ Dev2rights опубликовал за час до вас? Почему ты не принимаешь его ответ?
trojanfoe
@trojanfoe: да. Но у меня есть более подходящее решение // MARK: и #warning. Вот почему я не принял это
Midhun MP
1
Ну // FIXME, // MARKи #warningэто не то же самое, что // TODOи так, это не отвечает на ваш вопрос.
trojanfoe
1
@Domsou: В настоящее время нет других доступных вариантов, кроме перечисленных. Я обновлю свой ответ, если получу.
Midhun MP
129
// TODO: the thing todo

Это то, как вы показываете задачи todo.

Dev2rights
источник
10
Вы также можете использовать, // FIX: Everything crashes all the timeчтобы упростить возврат к частям вашего кода, которые создают проблемы, с помощью панели перехода.
Maarten
Как ни странно, использование этого не показывает комментарий в XCode 5.1.1
loretoparisi 01
Еще 2 маркера, которые кажутся актуальными здесь: #warning и #error i.imgur.com/KVjrVwG.png
Зейн Хелтон
3
Nitpick: поставьте пробел между //и TODO:. Например: // TODO: Read this from prefs. Если вы просмотрите документацию по языкам Swift и Objective C, то это соглашение о пространстве довольно последовательно соблюдается.
Джеффро
43

Используя

//TODO: some thing here

работает, если все, что вам нужно, - это посмотреть список задач в раскрывающемся списке

Если вы хотите быть навязчивым, вы можете #warningвместо этого использовать метки:

#warning this will create a compiler warning.

И когда вы создадите приложение, вы получите предупреждение компилятора (желтый треугольник, а не ошибка компилятора), которое немного больше «в лицо» напоминает вам о том, что вам нужно сделать.

Abizern
источник
Я думаю, что #warningэто лучшее решение, потому что оно предупредит вас во время компиляции. Спасибо
Duck
36

С помощью сценария ниже вы можете увидеть все необходимые теги, например предупреждения.

  1. Выберите свой проект в Project Navigator
  2. Откройте цель на боковой панели и перейдите на вкладку «Build Phases».
  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.

бритва28
источник
отличное решение, есть ли способ исключить все файлы pod? в моих используемых расширениях есть пара Todos или 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: Бла-бла-бла

Затем я просто нажимаю 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;)

нарисовался..
источник
0
#error

и

#warning

также используются в программировании на C

Дипрадж Човразия
источник