Xcode将哪些源注释识别为标记?
这主要是出于好奇。我知道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
//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