Xcode с помощью FIXME, TODO,?

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

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

8 ответов


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

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


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

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

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

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

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


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

#warning TODO: fix this later...

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

#error FIXME: fix now!

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

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


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

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

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


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

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

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

//          FIXME: This works.
  //TODO: This works.
    //                  !!!: Working.
// // //???: Works as well.

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


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

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


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


это скрипт, который я использую в качестве добавленной фазы сборки, обратите внимание, что он исключает файлы, втянутые через Carthage (очень раздражает, чтобы получить их, а иначе, так как это не " ваш " код):

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