Подтвердить что ты не робот

Какие исходные комментарии Xcode распознают как теги?

Это в основном ради любопытства. Я знаю, что Xcode способен распознавать комментарии в форме // TODO: Something I don't feel like doing now. Добавление этой строки в источник файла приведет к тому, что комментарий TODO появится на панели навигации Xcode:

enter image description here

Недавно я также обнаружил, что комментарии формы // MARK: Something могут достичь того же эффекта, что и #pragma mark что-то. Поэтому я могу написать комментарий, который выглядит так:

// MARK: -
// MARK: Future Improvements:
// TODO: Make something better
// TODO: Fix some bug

И Xcode выведет его вот так:

enter image description here

Это заставляет меня задаться вопросом: есть ли другие комментарии, которые Xcode может понять для улучшения навигации по проекту?

4b9b3361

Ответ 1

Существует также MARK, FIXME, !!! и ???, например

// FIXME: this bug needs to be fixed

и

// ???: WTF ???

Вы можете видеть, где они определены в /Applications/Xcode.app/Contents/OtherFrameworks/XcodeEdit.framework/Versions/A/Resources/BaseSupport.xclangspec (или /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Resources/BaseSupport.xclangspec для более старых версий Xcode). Предположительно, вы могли бы также добавить свои собственные теги здесь, если хотите, но я на самом деле не пробовал это. Вот соответствующий раздел в BaseSupport.xclangspec:

{
    Identifier = "xcode.lang.comment.mark";
    Syntax = {
        StartChars = "MTF!?";
        Match = (
            "^MARK:[ \t]+\(.*\)$",
            "^\(TODO:[ \t]+.*\)$",       // include "TODO: " in the markers list
            "^\(FIXME:[ \t]+.*\)$",      // include "FIXME: " in the markers list
            "^\(!!!:.*\)$",              // include "!!!:" in the markers list
            "^\(\\?\\?\\?:.*\)$"         // include "???:" in the markers list
        );
        // This is the order of captures. All of the match strings above need the same order.
        CaptureTypes = (
            "xcode.syntax.mark"
        );
        Type = "xcode.syntax.comment";
    };
},

Эти теги также поддерживаются в текстовом редакторе BBEdit и его бесплатном sibling TextWrangler.

Ответ 2

Похож на

// MARK:
// TODO:
// FIXME:
// ???:
// !!!:

все переводятся на # pramga-подобные маркеры.

Кажется, что они стоят за

// Mark, as in pragma
// To Do note
// Known bug marker
// Serious question about form, content, or function
// Serious concern about form, content, or function