Xcode将哪些源注释识别为标记?

Xcode将哪些源注释识别为标记?,xcode,comments,Xcode,Comments,这主要是出于好奇。我知道Xcode能够识别//TODO形式的注释:这是我现在不想做的事情。将该行添加到文件源将导致TODO注释显示在Xcode的导航栏中: 我最近还发现,形式为//MARK:Something的注释可以达到与#pragma MARK的注释相同的效果。因此,我可以写一条如下的评论: // MARK: - // MARK: Future Improvements: // TODO: Make something better // TODO: Fix some bug Xcode

这主要是出于好奇。我知道Xcode能够识别
//TODO形式的注释:这是我现在不想做的事情。将该行添加到文件源将导致TODO注释显示在Xcode的导航栏中:

我最近还发现,形式为
//MARK:Something
的注释可以达到与
#pragma MARK
的注释相同的效果。因此,我可以写一条如下的评论:

// MARK: -
// MARK: Future Improvements:
// TODO: Make something better
// TODO: Fix some bug
Xcode将以如下方式呈现:


这让我想知道:Xcode还能理解其他类型的注释来改进项目导航吗?

还有
标记
修复
,例如

// FIXME: this bug needs to be fixed

您可以看到在
/Applications/Xcode.app/Contents/OtherFrameworks/XcodeEdit.framework/Versions/A/Resources/BaseSupport.xclangspec
(对于旧版本的Xcode,则在
/Developer/Library/privateframes/XcodeEdit.framework/Resources/BaseSupport.xclangspec>中定义了这些内容)。如果你想的话,你也可以在这里添加你自己的标签,但我还没有尝试过。以下是
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";
    };
},
文本编辑器及其免费软件同级也支持这些标记。

看起来像

// MARK:
// TODO:
// FIXME:
// ???:
// !!!:
所有这些都被翻译成类似普拉加的标记

看来他们代表的是

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

您可以使用//标记:-和以下标记,如Apple示例所示

// MARK: UICollectionViewDataSourcePrefetching

    /// - Tag: Prefetching

您可以在Xcode 4的一行中使用
//Mark:-Something
,有人能告诉我如何访问此定义文件吗?@shinnyWhack:在最新版本的Xcode中,.xclangspec文件隐藏在Xcode.app包中的框架内。在Swift中,
从Xcode 8.2.1开始似乎不起作用(它们仍然适用于Objective-C)@JeremyP:可能值得提交一份文件。@PaulR好主意。我以前从来没有这样做过,因为直到今天我在Xcode邮件列表上被提到时,我才意识到这些标记实际上是存在的(我确实知道MARK和TODO)
// MARK: UICollectionViewDataSourcePrefetching

    /// - Tag: Prefetching