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