Xcode с использованием FIXME, TODO, ???,? - PullRequest
39 голосов
/ 05 мая 2011

Я начал использовать теги FIXME, TODO, ??? и !!! в XCode, но мне неприятно, что он не распознает теги, когда они находятся внутри функции.Теги распознаются только за пределами данной функции.

Как я могу распознать эти теги внутри функции (поскольку именно здесь есть ошибки)?

Ответы [ 8 ]

50 голосов
/ 03 сентября 2011

В xcode 4.1 (не знаю, работает ли это в предыдущих версиях) я пишу

#warning TODO: fix this later...

чтобы получить предупреждение о компиляции или

#error FIXME: fix now!

чтобы получить ошибку компиляции.

Я также добавляю их в библиотеку фрагментов кода, чтобы упростить добавление задач.

37 голосов
/ 04 июня 2011

Обходной путь - использовать скрипт сборки, который помечает их как предупреждения:

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

Кредит Бенджамин Рагхеб .

19 голосов
/ 05 июля 2012

Отредактировано 2016-02-02

Xcode теперь поддерживает // MARK :, // TODO: и // FIXME: ориентиры для аннотирования вашего кода и перечисления их в панели переходов.


Чтобы найти эти специальные разметки (и фактически любые разметки, которые вы указываете сами), вы можете использовать поисковый навигатор, ввести следующую строку и затем выбрать «В проекте, соответствие регулярному выражению» ... », игнорировать регистр»:

(//FIXME|//!!!|//\?\?\?|//TODO)

Это будет искать в вашем проекте все эти специальные наценки. Вы можете даже добавить любую разметку, которую хотите, например, Msgstr "ОБЗОР: пожалуйста, просмотрите следующий код". Это будет следующая строка поиска:

(//FIXME|//!!!|//\?\?\?|//TODO|//REVIEW)

Я создал вкладку в моей рабочей области, в которой всегда открыт поисковый навигатор, заполненный этой строкой. К сожалению, XCode иногда удаляет эту строку из окна поиска, поэтому вы должны иметь ее готовую для копирования и вставки в любое время.

8 голосов
/ 11 июля 2012

FIXME :, TODO :, ???: и !!!: работает в 4.3.3 внутри и снаружи функций.

Вы можете иметь любое количество пробелов до или после двойной косой черты,но вы должны использовать верхний регистр и следовать тегу с двоеточием.

Просто чтобы прояснить - все это работает:

//          FIXME: This works.
  //TODO: This works.
    //                  !!!: Working.
// // //???: Works as well.
4 голосов
/ 20 декабря 2013

как насчет этого плагина XCode?-> https://github.com/trawor/XToDo

3 голосов
/ 23 июля 2014

xCode 6 beta 4 должен поддерживать ориентиры MARK, TODO и FIXME.

Xcode теперь поддерживает ориентиры // MARK :, // TODO: и // FIXME, чтобы комментировать ваш код и перечисляет их в панели переходов. (14768427)!

2 голосов
/ 25 октября 2013

Просто на голову, но я заметил, что TODO: не работают внутри блоков любого вида. Просто переместите его прямо над или под вашим блоком.

0 голосов
/ 23 апреля 2018

Это скрипт, который я использую в качестве дополнительной фазы сборки, обратите внимание, что он исключает файлы, извлекаемые через Карфаген (очень неприятно получать их, в противном случае, поскольку это не «ваш» код):

TAGS="WARNING:|TODO:"
echo "searching ${SRCROOT} for ${TAGS}"
find "${SRCROOT}" \( -name "*.swift" \) -not -path "${SRCROOT}/Carthage/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/"

Хорошо работает на xCode 9.3 с Swift 4

...