Какие исходные комментарии Xcode распознает как теги? - PullRequest
37 голосов
/ 29 сентября 2011

Это в основном ради любопытства.Я давно знаю, что 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 может понять, чтобы улучшить навигацию по проекту?

Ответы [ 2 ]

34 голосов
/ 29 сентября 2011

Существует также 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 и его бесплатном брате TextWrangler .

22 голосов
/ 29 сентября 2011

Похоже,

// 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...